2013-11-29 19 views
0

我有TCP/IP服務器客戶端程序。 我想在TCP/IP中實現加密通信。在C++中相當於SslStream類

我知道了SSLStream是在C#中實現加密通信的一種方式。是否有任何簡單的選項在TCP/IP中實現加密?

注:我聽說IPSec可以實現在很低的水平。

+0

我會考慮GnuTLS。我發現OpenSSL相當惱人的API明智。 – CodesInChaos

回答

0

一個標準的跨平臺解決方案是OpenSSL

說明

OpenSSL的SSL庫實現安全套接字層(SSL V2/v3)和傳輸層安全性(TLS v1)協議。它提供了一個豐富的API,這裏記錄。

首先,圖書館必須初始化;請參閱SSL_library_init(3)。

然後創建一個SSL_CTX對象作爲框架來建立啓用TLS/SSL的連接(請參閱SSL_CTX_new(3))。有關證書,算法等的各種選項可以在此對象中設置。

創建網絡連接時,可將其分配給SSL對象。在使用SSL_new(3)創建SSL對象後,可以使用SSL_set_fd(3)或SSL_set_bio(3)將網絡連接與對象相關聯。

然後分別使用SSL_accept(3)或SSL_connect(3)執行TLS/SSL握手。 SSL_read(3)和SSL_write(3)用於在TLS/SSL連接上讀取和寫入數據。 SSL_shutdown(3)可用於關閉TLS/SSL連接。

+0

如何在TCP/IP程序中使用它? – Dinesh

+0

@DineshkumarPonnusamy下載源代碼並查看提供的示例。谷歌例如使用。 [這是一個](http://h71000.www7.hp.com/doc/83final/ba554_90007/ch04s03.html)。 –