Что такое и как использовать пары OpenSSL BIO?

Что такое БИОПАРА в OpenSSL и как она предназначена для использования? Я уже проверил документы OpenSSL, но любые детали немногочисленны и далеки друг от друга. Спасибо!

5 ответов


БИО в OpenSSL похож на дескриптор файла. Вы используете пару из них, чтобы безопасно общаться друг с другом, как с двумя розетками. Лучшее объяснение, которое я нашел-это здесь.

Я также получил много пользы из Herong Янг сайте несколько месяцев назад, когда мне пришлось написать приложение с помощью OpenSSL. Разделы по созданию и подписанию сертификатов с помощью OpenSSL и keytool были большой помощью, когда дело дошло до тестирования приложение.


БИОПАРА-это два источника / приемника BIOs, которые связаны вместе. Все, что написано можно прочитать от других. Если у вас уже есть два BIOS, вы можете объединить их вместе с помощью BIO_make_bio_pair. Или вы можете создать новую биопару с BIO_new_bio_pair.

одно использование, упомянутое в сетевой безопасности с книгой OpenSSL (см. стр. 111), заключается в том, что пара может быть привязана к движку SSL. Все, что написано в BIO pair, будет прочитано механизмом SSL. Все, что написано БИОПАРА можно прочитать от. OpenSSL имеет пример этого (см. ssl / ssltest.c)


Я нашел лучший способ узнать об OpenSSL, чтобы прочитать"сетевая безопасность с OpenSSL " by John Viega, Matt Messier and Pravir Chandra, ISBN 059600270X. У них есть целый раздел о том, как создать и использовать BIO pair с образцом кода.


в попытке документации openssl foundation поддерживает сообщество wiki, которое, конечно, может быть улучшено. Биография покрыта здесь:http://wiki.openssl.org/index.php/BIO.


я написал о парах OpenSSL BIO в составе общий ответ об OpenSSL BIOs:

"Био" Био (BIO_s_bio). Это трубчатая биография. Можно создать пару таких BIOs. Данные, записанные в один БИО в паре, будут помещены для чтения во второй БИО в паре. И наоборот. Он похож на memory BIO, но memory BIO помещает данные в себя и pipe BIO помещает данные в био, с которым он сопряжен.

и также здесь:

но в дополнение есть био под названием BIO_s_bio, который имеет трубообразную функциональность. Можно создать пару таких BIOs. Любые данные, записанные на первый БИО в паре BIO_s_bio объекты будут считываться из второй биографии в паре. И наоборот: запись данных во вторую биографию приведет к чтению этих данных из первой биографии. Так что BIO_s_bio можно использовать вместо BIO_s_mem. Передача одного экземпляра BIO_s_bio объект SSL_set_bio функции было бы достаточно. Приложение получает данные и записывает их в свою биографию в BIO_s_bio пара. OpenSSL затем получит эти данные из своей биографии в паре. OpenSSL записывает данные в свою биографию в паре, и приложение получает эти данные из своей биографии в свою очередь.