2008-10-09 70 views
2

我的東西是由幾個組件組成的,其中有些組件是用C語言編寫的。由於我想添加一些安全功能,我正在考慮通過SSL/TLS層進行通信。將TLS/SSL層添加到通信..?

你能否告訴我一些很好的lib來做到這一點(如果可能)?

回答

2

我們使用axTLS,它在我們的服務器(.NET)和我們的嵌入式系統(Linux和uClinux)上都很出色。我們遇到了讓OpenSSL在uClinux上運行良好的問題。
axTLS不像OpenSSL那樣功能完整,所以請確保它在使用前滿足您的要求。

2

OpenSSL怎麼樣?

+0

警告,該許可證雖然免費,但與GPL兼容,這可能是某些應用程序的問題。 – bortzmeyer 2009-04-19 12:09:30

+0

但是,要清楚的是,它不是GPL。它使用的Apache許可證明顯不同,並且不需要發佈更改。 – ctacke 2009-04-19 14:59:10

+2

@bortzmeyer:你的意思是不兼容。是的 - 我知道這是一個拼寫錯誤,但只是爲了澄清。 – 2010-03-04 00:21:46

4

GnuTLS(請注意,它主要是LGPL非GPL所以你可以鏈接到它)。至少我認爲它是API超過OpenSSL

另外還有Mozilla的NSS

0

我建議不要花費時間試圖在您的應用中實現SSL功能。相反,您只需使用現有的SSL隧道軟件,即可在現有套接字應用程序前創建SSL隧道。

Internet --- [SSLTunnel] --- Your App 

例如,你可以告訴SSL隧道爲偵聽端口443(HTTPS)和所有解密的數據包轉發到端口80(HTTP)。對於您的自定義應用程序,它只會看到解密的數據包。

有很多免費的應用程序可以做到這一點。只需一個谷歌。

0

CyaSSL將是一個很好的選擇考慮。這是一個用C編寫的嵌入式SSL庫,針對速度和大小進行了優化。它可以比OpenSSL小20倍,並且可以快得多。

其中功能列表的最小尺寸爲30-100kb和OpenSSL兼容層。完整的功能列表可以在yaSSL網站上找到:

http://www.yassl.com/yaSSL/Products_cyassl.html

它是在開源GPLv2和商業許可(支持)下的雙重許可。它經常用新功能進行更新。我認爲其中一個很酷的功能是支持eStream項目的RABBIT和HC-128流密碼。