Question

En quoi consiste exactement une paire BIO dans OpenSSL et comment est-elle destinée à être utilisée? J'ai déjà vérifié la documentation OpenSSL, mais les détails sont rares.

Était-ce utile?

La solution

Un BIO dans OpenSSL est similaire à un handle de fichier. Vous en utilisez une paire pour communiquer en toute sécurité, comme vous le feriez avec deux sockets. La meilleure explication que j'ai trouvée est ici .

J'ai aussi beaucoup utilisé le le site de Herong Yang il y a quelques mois. dû écrire une application en utilisant OpenSSL. Les sections sur la création et la signature de certificats à l'aide d'OpenSSL et de keytool ont été d'une aide précieuse pour le test de mon application.

Autres conseils

Une paire BIO est deux BIO source / puits qui sont liés ensemble. Tout ce qui est écrit à l'un peut être lu à partir de l'autre. Si vous avez déjà deux BIOS, vous pouvez les joindre en utilisant BIO_make_bio_pair. Vous pouvez également créer une nouvelle paire BIO avec BIO_new_bio_pair.

Une des utilisations mentionnées dans le manuel Network Security with OpenSSL (voir page 115) est que la paire peut être liée à un moteur SSL. Tout ce qui est écrit dans la paire BIO sera lu par le moteur SSL. Tout ce qui est écrit dans la paire BIO peut être lu. OpenSSL en a un exemple (voir ssl / ssltest.c)

J'ai découvert que la meilleure façon de connaître OpenSSL était de lire " Sécurité réseau avec OpenSSL ". par John Viega, Matt Messier et Pravir Chandra, ISBN 059600270X. Ils ont toute une section sur la façon de créer et d’utiliser la paire BIO avec un exemple de code.

Dans un effort de documentation, OpenSSL Foundation gère un wiki de communauté qui peut bien sûr être amélioré. BIO est couvert ici: http://wiki.openssl.org/index.php/BIO.

J'ai écrit sur les paires BIO OpenSSL dans le cadre de réponse générale sur les BIO OpenSSL :

  

A "bio" BIO ( BIO_s_bio ). C'est un BIO en forme de pipe. Une paire de ces BIO peut être créée. Les données écrites sur un BIO de la paire seront placées pour être lues sur le second BIO de la paire. Et vice versa. Il est similaire à la mémoire BIO, mais la mémoire BIO se place sur les données et redirige le BIO vers le BIO auquel elle est associée.

Et aussi ici :

  

Mais il existe en outre un BIO appelé BIO_s_bio qui a une fonctionnalité semblable à celle d'un tuyau. Une paire de ces BIO peut être créée. Toutes les données écrites sur la première BIO dans la paire d'objets BIO_s_bio seront lues à partir de la deuxième BIO de la paire. Et inversement: l'écriture de données dans le second BIO entraîne la lecture de ces données depuis le premier BIO. Ainsi, BIO_s_bio peut être utilisé à la place de BIO_s_mem . Passer une seule instance d'objet BIO_s_bio à la fonction SSL_set_bio serait suffisant. L'application reçoit des données et les écrit dans son BIO dans la paire BIO_s_bio . OpenSSL obtiendra alors ces données de son BIO dans la paire. OpenSSL écrit les données sur son BIO dans la paire et l’application les récupère à son tour.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top