This article has multiple issues. Please helpimprove it or discuss these issues on thetalk page.(Learn how and when to remove these messages) (Learn how and when to remove this message)
|
| wolfSSL | |
|---|---|
| Developer | Todd Ouska |
| Initial release | February 19, 2006 (2006-02-19)[1] |
| Stable release | 5.8.4[2] |
| Repository | github |
| Written in | C |
| Operating system | Multi-platform |
| Type | Cryptographylibrary |
| License | GPL-3.0-or-later orproprietary[3] |
| Website | www |
wolfSSL is a small, portable, embedded SSL/TLS library targeted for use by embedded systems developers. It is anopen source implementation ofTLS (SSL 3.0, TLS 1.0, 1.1, 1.2, 1.3, andDTLS 1.0, 1.2, and 1.3) written in theC programming language. It includes SSL/TLS client libraries and an SSL/TLS server implementation as well as support for multiple APIs, including those defined bySSL andTLS. wolfSSL also includes anOpenSSL compatibility interface with the most commonly used OpenSSL functions.[4][5]
wolfSSL is currently available forMicrosoft Windows,Linux,macOS,Solaris,ESP32,ESP8266,ThreadX,VxWorks,FreeBSD,NetBSD,OpenBSD,embedded Linux,Yocto Project,OpenEmbedded,WinCE,Haiku,OpenWrt,iPhone,Android,Wii, andGameCube through DevKitPro support,QNX,MontaVista,Tron variants,NonStop OS,OpenCL, Micrium'sMicroC/OS-II,FreeRTOS,SafeRTOS,Freescale MQX,Nucleus,TinyOS,TI-RTOS,HP-UX, uTasker, uT-kernel, embOS,INtime,mbed,RIOT, CMSIS-RTOS, FROSTED,Green Hills INTEGRITY, Keil RTX, TOPPERS, PetaLinux,Apache Mynewt, andPikeOS,[6] Deos, Azure Sphere OS, Zephyr, AIX, and Cesium.
The genesis of wolfSSL dates to 2004.OpenSSL was available at the time, and was dual licensed under theOpenSSL License and theSSLeay license.[7] yaSSL, alternatively, was developed and dual-licensed under both a commercial license and the GPL.[8] yaSSL offered a more modern API, commercial style developer support and was complete with an OpenSSL compatibility layer.[4] The first major user of wolfSSL/CyaSSL/yaSSL wasMySQL.[9] Through bundling with MySQL, yaSSL has achieved extremely high distribution volumes in the millions.
In February 2019,Daniel Stenberg, the creator ofcURL, was hired by the wolfSSL project to work on cURL.[10]
The wolfSSL lightweight SSL library implements the following protocols:[11]
Protocol Notes:
wolfSSL uses the following cryptography libraries:
By default, wolfSSL uses the cryptographic services provided by wolfCrypt.[13] wolfCrypt ProvidesRSA,DSA,ECC,DSS,Diffie–Hellman,EDH, ECDH-ECDSA, ECDHE-ECDSA, ECDH-RSA, ECDHE-RSA,NTRU (deprecated and removed),DES,Triple DES,AES (CBC, CTR, CCM, GCM, OFB, XTS, GMAC, CMAC),Camellia,IDEA,ARC4,HC-128,ChaCha20,MD2,MD4,MD5,SHA-1,SHA-2,SHA-3,BLAKE2,RIPEMD-160,Poly1305, SM2,SM3,SM4 Random Number Generation, Large Integer support, base 16/64 encoding/decoding,HMAC,PBKDF2, and post-quantum cryptographic algorithms:ML-KEM (certified under FIPS 203) and ML-DSA (certified under FIPS 204).
wolfCrypt also includes support for theX25519 andEd25519 algorithms, as well as theX448 andEd448 algorithms..
wolfCrypt acts as a back-end crypto implementation for several popular software packages and libraries, includingMIT Kerberos[14] (where it can be enabled using a build option).
wolfCrypt isFIPS validated and holds twoFIPS 140-2 certificates (#2425[15] and #3389[16]) and twoFIPS 140-3 certificates (#4718[17] and #5041[18]).
CyaSSL+ includesNTRU[19] public key encryption. The addition of NTRU in CyaSSL+ was a result of the partnership between yaSSL and Security Innovation.[19] NTRU works well in mobile and embedded environments due to the reduced bit size needed to provide the same security as other public key systems. In addition, it's not known to be vulnerable to quantum attacks. Several cipher suites utilizing NTRU are available with CyaSSL+ including AES-256, RC4, and HC-128.
wolfSSL provides support for a range of post-quantum cryptographic algorithms, including the Kyber Key Encapsulation Mechanism (KEM), hybridized with NIST-recommended ECC curves to maintain FIPS compliance. Supported ML-KEM levels include Level 1 (ML-KEM-512), Level 3 (ML-KEM-768), and Level 5 (ML-KEM-1024). For digital signatures, wolfSSL implements ML-DSA at Levels 2, 3, and 5; FALCON at Levels 1 and 5; and SLH-DSA, LMS/HSS, and XMSS/XMSS^MT. The library also supports hybrid TLS key exchange schemes, combining ECDHE with ML-KEM at corresponding security levels as well as dual-algorithm certificates and TLS 1.3 dual-algorithm authentication.
wolfSSL supports the followingSecure Elements:
wolfSSL supports the following hardware technologies:
wolfSSL is dual licensed: under both theGPL-3.0-or-later license and commercial licensing.
{{cite web}}:Missing or empty|title= (help)