April 25,2007

Small TLS client library

愈來愈多的網路程式需要TLS的功能. 例如你要開發一個無線網路電話, 你就可能同時實作以下功能, 它們都需要TLS client的支援

  • SIP over TLS
  • WPA-EAP (用EAP-TLS, EAP-TTLS 連到FreeRadius Server)
  • HTTPS web server
  • SNMPv3
  • Autoprovision client
  • WISPr

而大多數Open source實作TLS時都只支援openssl. 問題是openssl對Embedded system來說實在是太大了.


於是我找遍了各種不用的方案. 以下全都是號稱50KB左右的TLS library. 這裡列出來供各位參考.

Mocana Embedded SSL Client / TLS Client
要錢, 算了吧.
SSL/TLS Client librray
AES-128, AES-256, ARC4-128, DES, 3DES,
MD2, MD4, MD5, SHA1, SHA-224, SHA-256, SHA-384, SHA-512
Diffie-Hellman, RSA, PKCS #1, #1.5, #5, #7, #8, #10, #12, X.509

YaSSL
GPL/Commercial dual license
SSLv3/TLSv1/TLSv1.1 client/server library
DES, 3DES, AES, ARC4, TWOFISH, BLOWFISH
MD2, MD4, MD5, SHA-1, RIPEMD, HMAC, 
RSA, DSS, DH, PKCS#5 PBKDF2
OpenSSL compatibile layer
我測試過他比較大, 大約800KB左右. 但重點是他support OpenSSL compatibile layer. Porting比較快

MatrixSSL
GPL/Commercial dual license
SSL/TLS client/server library
RC4, DES, AES128(Commericial)
MD5, SHA,
ASN.1, X509, PKCS#1.5, PKCS#5,

AxTLS
LGPL license,
TLSv1 client/server library
RC4, AES128, AES256
MD5, SHA
RSA, ASN.1, X509v1, PKCS#8, PKCS#12

功能OK. 但原來版本不支援Non-blocking mode. x509沒有支援 v3

TLS client in WPA supplicant
BSD/GPL license
TLSv1 client library
RC4, DES, AES128, AES256
MD4, MD5, SHA
RSA, ASN.1, PKCS #1, X.509v3
沒錯. 這是著名的wpa_supplicant中的一個副函式庫. 他雖然只有TLS client. 但最重要是他BSD license的使用條款. 實在是最合我意了.


Posted by wlsloi at 樂多Roodo! │23:19 │回應(1)引用(0)Embedded System
樂多分類:網路/3C 共同主題:開放源碼 工具:編輯本文
Ads by Roodo! 

引用URL

http://cgi.blog.roodo.com/trackback/3064883
回應文章

請問每一種tls lib提供的 cryptographic method 種類上都有差異 如有些有 md5 有些沒有
這種差異會影響到如 EAP/TLS TTLS 的認證過程嗎 ?
如果我只要使用到 eap /tls ttls
我想把 openssl減肥 我能把那些 encryption method 移走呢?
Posted by abrother at October 23,2008 14:06