Openssl 如果客户端使用BIO_*调用,是否需要对服务器进行BIO_*调用?

Openssl 如果客户端使用BIO_*调用,是否需要对服务器进行BIO_*调用?,openssl,server,tcp,c,client,Openssl,Server,Tcp,C,Client,我正在尝试用C实现一个简单的OpenSSL客户机/服务器模型,并且对BIO_*调用的使用感到好奇,与原始SSL_*调用相比,BIO_*调用允许一些不错的特性 我对这一点比较陌生,所以我可能完全错了,但是有可能在客户端使用BIO_*调用,而不在服务器上使用吗?或者,要建立连接,必须在客户端和服务器上同时进行BIO握手?首先,有许多类型的BIO。BIOs可用于访问本地磁盘文件(或其他操作系统文件,如串行端口)、普通(TCP或UDP)套接字或内存缓冲区,就像它们是文件一样(例如,用于PEM格式但不在文

我正在尝试用C实现一个简单的OpenSSL客户机/服务器模型,并且对BIO_*调用的使用感到好奇,与原始SSL_*调用相比,BIO_*调用允许一些不错的特性


我对这一点比较陌生,所以我可能完全错了,但是有可能在客户端使用BIO_*调用,而不在服务器上使用吗?或者,要建立连接,必须在客户端和服务器上同时进行BIO握手?

首先,有许多类型的BIO。BIOs可用于访问本地磁盘文件(或其他操作系统文件,如串行端口)、普通(TCP或UDP)套接字或内存缓冲区,就像它们是文件一样(例如,用于PEM格式但不在文件中的内容),在线程之间通信,以及通过加密、哈希和编码来“过滤”数据。您的问题似乎只涉及SSL类型的BIOs


是的,SSL BIO只是一个包装。您可以通过SSL BIO上的BIO_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu;使用BIO的端点可以与使用或不使用BIO的端点进行完全相同的通信,就像OpenSSL端点(BIO或非BIO)可以与使用不同SSL/TLS实现而不是任何类型的OpenSSL的端点进行通信一样。

这看起来像是一个特定于C的问题,这在StackOverflow上会更好。我将尝试一下。谢谢