什么是OpenSSL BIO对以及如何使用OpenSSL BIO对?

什么是OpenSSL BIO对以及如何使用OpenSSL BIO对?,openssl,key-pair,Openssl,Key Pair,OpenSSL中的BIO对到底是什么?它打算如何使用?我已经检查了OpenSSL文档,但是任何细节都很少 OpenSSL中的BIO类似于文件句柄。您使用一对它们彼此安全地通信,就像使用两个插座一样。我找到的最好的解释是 几个月前,当我不得不使用OpenSSL编写应用程序时,我也得到了很大的利用。在测试我的应用程序时,有关使用OpenSSL和keytool创建和签署证书的章节对我有很大帮助。BIO对是绑定在一起的两个源/接收器BIOs。任何写给一个人的东西都可以从另一个人那里读到。如果您已经有两个

OpenSSL中的BIO对到底是什么?它打算如何使用?我已经检查了OpenSSL文档,但是任何细节都很少

OpenSSL中的BIO类似于文件句柄。您使用一对它们彼此安全地通信,就像使用两个插座一样。我找到的最好的解释是


几个月前,当我不得不使用OpenSSL编写应用程序时,我也得到了很大的利用。在测试我的应用程序时,有关使用OpenSSL和keytool创建和签署证书的章节对我有很大帮助。

BIO对是绑定在一起的两个源/接收器BIOs。任何写给一个人的东西都可以从另一个人那里读到。如果您已经有两个BIOS,您可以使用BIO_make_BIO_pair将它们连接在一起。或者您可以使用BIO_new_BIO_pair创建一个新的BIO对


《OpenSSL网络安全》一书(见第111页)中提到的一个用途是,该对可以绑定到SSL引擎。写入BIO对的任何内容都将由SSL引擎读取。任何写入BIO对的内容都可以从中读取。OpenSSL有这样一个示例(请参阅ssl/ssltest.c)

我已经将OpenSSL生物对作为以下内容的一部分编写:

“生物”生物(
bio\u s\u bio
)。这是一个管道状的生物。可以创建一对这样的BIOs。写入对中一个BIO的数据将被放置以读取对中的第二个BIO。反之亦然。它类似于memory BIO,但memory BIO将数据放置到自身,并将BIO管道将数据放置到与其配对的BIO

而且:

但除此之外,还有一个名为
BIO_s_BIO
的BIO,它具有类似管道的功能。可以创建一对这样的BIOs。写入
BIO_s_BIO
对象对中第一个BIO的任何数据都将从该对中的第二个BIO读取。反之亦然:将数据写入第二个BIO将导致从第一个BIO读取此数据。因此可以使用
BIO_s_BIO
代替
BIO_s_mem
。将
BIO\u s\u BIO
对象的单个实例传递给
SSL\u set\u BIO
函数就足够了。应用程序接收数据并将其写入
BIO\u s\u BIO
对中的BIO。然后,OpenSSL将从其BIO中获取该数据。OpenSSL将数据成对写入其BIO,应用程序依次从其BIO获取该数据


使用internet存档而不是原始页面的链接,这是一种荣誉。我永远不会想到这一点,但它完美地解决了“断链”问题。