MatrixSSL is an embedded SSL and TLS implementation designed for small footprint devices and applications requiring low overhead per connection. The library is less than 50Kb on disk with cipher suites. It includes client and server support through TLS 1.2, mutual authentication, session resumption, and implementations of RSA, ECC, AES, 3DES, ARC4, SHA2, SHA1, and MD5. The source is well documented and contains portability layers for additional operating systems, cipher suites, and cryptography providers.
The CyaSSL embedded SSL library is a lightweight SSL library written in ANSI C and targeted for embedded and RTOS environments, primarily because of its small size, speed, and feature set. It is commonly used in standard operating environments and cloud services as well because of its royalty-free pricing and excellent cross platform support. CyaSSL supports industry standards up to the current TLS 1.2 and DTLS 1.2 levels, is up to 20 times smaller than OpenSSL, and offers progressive ciphers such as HC-128, RABBIT, and NTRU.
yaSSL is a C++ based SSL library for embedded and RTOS environments, designed for individuals who prefer to use the C++ language. For a C-based solution, please see CyaSSL. yaSSL supports the industry standards up to TLS 1.2, and also includes an OpenSSL compatibility interface.
Botan is a crypto library written in C++. It provides a variety of cryptographic algorithms, including common ones such as AES, MD5, SHA, HMAC, RSA, Diffie-Hellman, DSA, and ECDSA, as well as many others that are more obscure or specialized. It also offers SSL/TLS (client and server), X.509v3 certificates and CRLs, and PKCS #10 certificate requests. A message processing system that uses a filter/pipeline metaphor allows for many common cryptographic tasks to be completed with just a few lines of code. Assembly and SIMD optimizations for common CPUs offers speedups for critical algorithms like AES and SHA-1.
GNU SASL is an implementation of the Simple Authentication and Security Layer framework and a few common SASL mechanisms. SASL is used by network servers such as IMAP and SMTP to request authentication from clients, and in clients to authenticate against servers. The library includes support for the SASL framework (with authentication functions and application data privacy and integrity functions) and at least partial support for the CRAM-MD5, EXTERNAL, GSSAPI, ANONYMOUS, PLAIN, SECURID, DIGEST-MD5, LOGIN, NTLM, and KERBEROS_V5 mechanisms.
OpenSC provides a set of libraries and utilities to work with smart cards. Its main focus is on cards that support cryptographic operations, and facilitates their use in security applications such as authentication, mail encryption, and digital signatures. OpenSC implements the PKCS#11 API so that applications supporting this API (such as Mozilla Firefox and Thunderbird) can use it. On the card, OpenSC implements the PKCS#15 standard, and aims to be compatible with every software/card that does so.
SILC Crypto Toolkit (SCT) is a high performance multipurpose cryptographic toolkit for application programmers. It provides ciphers, hash functions, public key cryptosystems, MAC algorithms, multi-precision integers, cryptographic accelerators, an ASN.1 encoder and decoder, and many other features.
TaoCrypt is a portable, fast, cryptographic library for most needs. Its features include one way hash functions: SHA-1, MD2, MD4, MD5, RIPEMD-160; message authentication codes: HMAC; block ciphers: DES, Triple-DES, AES, Blowfish, Twofish; stream ciphers: ARC4; public key cryptography: RSA, DSA, Diffie-Hellman; password based key derivation: PBKDF2 from PKCS #5; a pseudo random number generator and large integer support. There is also support for Base 16/64 encoding/decoding, DER encoding/decoding, and X.509 processing.