PolarSSL is a dual licensed (GPLv2 or proprietary) implementation of the SSL and TLS protocols and the respective cryptographic algorithms and support code required. Stated on the website is that PolarSSL aims to be "easy to understand, use, integrate and expand".
PolarSSL is based on XySSL, which was written by French "white hat hacker" Christophe Devine. XySSL was first released on November 1, 2006 under GPL and BSD licenses. When Christophe Devine was no longer able to support XySSL in 2008 it was taken over by Paul Bakker who renamed it PolarSSL.
In 2011 the Dutch government approved an integration between OpenVPN and PolarSSL, which is dubbed OpenVPN-NL. This version of OpenVPN has been approved for use in protecting government communications up to the level of Restricted.
The core library (written in the C programming language) implements the basic cryptographic functions and provides various utility functions. Unlike OpenSSL and other implementations of TLS, PolarSSL is designed to fit on small embedded devices, with the minimum complete TLS stack requiring under 60KB of program space and under 64KB of RAM. It is also highly modular: each component, such as a cryptographic function, can be used independently from the rest of the framework. Versions are also available for Microsoft Windows and Linux. Because PolarSSL is written in the C programming language, without external dependencies, it works on most Operating Systems and architectures without any trouble.
PolarSSL is used in large open source projects:
PolarSSL is currently available for most Operating Systems including Linux, Microsoft Windows, OpenWrt, Android, iOS and FreeRTOS. Chipsets supported at least include ARM, x86, PowerPC, MIPS.
Major version releases
- PolarSSL 1.1.0 was released on December 22, 2011
- PolarSSL 1.0.0 was released on August 9, 2011
- PolarSSL 0.14.0 was released on August 16, 2010
- PolarSSL 0.13.1 was released on March 24, 2010
- PolarSSL 0.12.1 was released on October 4, 2009
- PolarSSL 0.12.0 was released on July 28, 2009
- PolarSSL 0.11.0 was released on May 3, 2009
PolarSSL supports a number of different cryptographic algorithms:
AES, Camellia, DES, RC4, RC5, Triple DES, XTEA
Cryptographic hash functions
MD5, MD2, MD4, SHA-1, SHA-2
- Public-key cryptography
RSA, Diffie-Hellman key exchange