CyaSSL 是一个适合嵌入式环境使用的 SSL 库。它使用 C 编写,轻量、可移植。对于嵌入式环境而言,它的大小、速度和特性都很有吸引力。当然,它也可以在桌面环境或服务器上使用。(尤其适合觉得 OpenSSL 不靠谱 的童鞋。)

wolf

特性

  • 支持 SSL 3.0、 TLS 1.0、1.1、1.2 和 DTLS 1.0、1.2
  • 大小为20-100kB(取决于操作系统和编译选项),是 OpenSSL 大小的 1/20
  • 内存需求:1-36kB (取决于 I/O buffer 大小,公钥算法和尺寸)
  • 比 OpenSSL 性能更佳
  • 简单的 API
  • OpenSSL 兼容层
  • 支持 OCSP 和 CRL
  • 支持以下哈希函数: MD2, MD4, MD5, SHA-1, SHA-2, SHA-256, SHA-384, SHA-512, BLAKE2b, RIPEMD-160
  • 支持以下Cipher:AES (CBC, CTR, GCM, CCM), Camellia, DES, 3DES, ARC4, RABBIT, HC-128
  • 公钥选项:RSA, DSS, DH, EDH, NTRU
  • 基于密码的密钥:HMAC, PBKDF2, PKCS#5
  • ECC 支持:ECDH-ECDSA, ECDHE-ECDSA, ECDH-RSA, ECDHE-RSA
  • RSA 密钥生成
  • 永久话会话和认证缓存
  • 支持zlib压缩
  • 支持 PEM、DER 认证
  • 基于 wolfCrypt 库开发
  • 支持 PKCS #7、PKCS #10、PKCS #8, #5, #12
  • 支持 TLS 扩展:SNI (Server Name Indication)、Maximum Fragment Length、 Truncated HMAC、 Supported Elliptic Curves
  • 认证管理
  • 支持硬件加密:Intel AES-NI、STM32F2/F4、Cavium
  • 支持 SSL Sniffer
  • 支持 IPv4 和 IPv6
  • 支持 yaSSL 嵌入式 Web 服务器
  • 支持 MySQL 集成
  • 支持 Lighttpd, GoAhead, Mongoose
  • stunnel 集成

兼容性

CyaSSL 使用 C 编写,可移植那性很好,在绝大多数操作系统上都能运行,已知兼容的系统有:

  • Win32/64,
  • Linux,
  • Mac OS X,
  • Solaris,
  • ThreadX,
  • VxWorks,
  • FreeBSD,
  • NetBSD,
  • OpenBSD, )
  • embedded Linux,
  • WinCE,
  • Haiku,
  • OpenWRT,
  • iPhone (iOS),
  • Android,
  • Nintendo Wii and Gamecube through DevKitPro,
  • QNX,
  • MontaVista,
  • OpenCL,
  • NonStop,
  • TRON/ITRON/µITRON,
  • Micrium's µC/OS,
  • FreeRTOS,
  • SafeRTOS,
  • Freescale MQX,
  • Nucleus,
  • TinyOS,
  • HP/UX,
  • ARC MQX

接口

CyaSSL 以 C 为主要接口,不过同样支持其他一些宿主语言,包括:

  • Java
  • PHP
  • Perl
  • Python

许可

CyaSSL 基于 GPLv2 开源。同时提供商业性的许可以及相应的商业支持

项目主页


编撰 SegmentFault


weakish
24.6k 声望844 粉丝

a vigorously lazy deadbeat with matured immaturity