2010-03-24 57 views
2

对于基于X.509证书的身份验证,OpenSSL中有没有替代SSL_set_connect_state()/ SSL_set_accept_state()的方法?使用OpenSSL基于X.509证书的身份验证(不使用套接字)

问题是,在我的应用程序中,客户端和服务器不使用套接字进行通信,并且建立它们之间的直接连接是不可能的。所以我想从OpenSSL中获得的东西就是“暴露”中间SSL上下文建立消息,然后我将它传达给另一端的聚会。

感谢您的帮助!

+0

他们如何沟通? – Pointy 2010-03-24 22:57:58

+0

这并不重要,但您可以假设他们使用XMPP进行通信。 – hartem 2010-03-25 10:29:58

回答

2

该接口可用于OpenSSL BIO

  1. 使用BIO_new_bio_pair()创建连接的BIO对。一个BIO将被SSL例程读取和写入,另一个BIO将被您的应用程序读取和写入(允许它通过任何想要的方法将数据传递到另一端)。

  2. 在一个新的SSL对象上使用SSL_set_bio()将读取和写入BIO设置为生成对中的一个BIO。

  3. 使用BIO_read()BIO_write()在另一个BIO中读取和写入SSL协议数据。

  4. 在SSL对象上正常使用SSL_accept(),SSL_connect(),SSL_read()SSL_write()

+0

我有一些代码使用'BIO'接口来允许OpenSSL与异步套接字一起使用,但'连接器'的代码可以用来将SSL流连接到任何传输。有关详细信息和代码,请参见http://www.lenholgate.com/archives/000456.html。 – 2010-03-25 01:15:05

+0

感谢您的提示!会试试看。 – hartem 2010-03-25 10:26:49

相关问题