2010-03-24 55 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

相關問題