OpenSSL is an 
open-source implementation of the 
SSL and TLS protocols. The core 
library, written 
C programming language, implements the basic 
cryptographic
 functions and provides various utility functions. Wrappers allowing the
 use of the OpenSSL library in a variety of computer languages are 
available.
in the 
Versions are available for most 
Unix-like operating systems (including 
Solaris, 
Linux, 
Mac OS X and the various open source 
BSD operating systems), 
OpenVMS and 
Microsoft Windows. IBM provides a port for the 
System i (OS/400). OpenSSL is based on 
SSLeay
 by Eric A. Young and Tim Hudson, development of which unofficially 
ended around December 1998, when Young and Hudson both started to work 
for 
RSA Security.
FIPS 140-2 compliance
As of December 2012, OpenSSL is one of two 
open source programs to be involved with validation under the 
FIPS 140-2 computer security standard by the 
National Institute of Standards and Technology's (NIST) 
Cryptographic Module Validation Program (CMVP).
 (OpenSSL itself is not validated, but a component called the OpenSSL 
FIPS Object Module, based on OpenSSL, was created to provide many of the
 same capabilities).
A certificate was first awarded in January 2006 but revoked in July 
2006 "when questions were raised about the validated module’s 
interaction with outside software." The certification was reinstated in 
February 2007.
Licensing
OpenSSL is "dual licensed" under the OpenSSL License and the SSLeay License.
 The OpenSSL License is 
Apache License 1.0 and SSLeay License is a 4-clause 
BSD License. The common usage of the term 
dual-license is that the user may pick which license they wish to use. However, OpenSSL documentation uses the term 
dual-license to mean that both licenses apply.
As the OpenSSL License is 
Apache License 1.0, but not Apache License 2.0, it requires the phrase 
This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.openssl.org/)
 to appear in advertising material and any redistributions (Sections 3 
and 6 of the OpenSSL License). Due to this restriction, the OpenSSL 
License and the Apache License are incompatible with the GPL.
 Some GPL developers have added an 
OpenSSL exception to their licenses specifically allowing OpenSSL to be used with their system. GNU 
Wget and 
climm both use such exceptions.
 Some packages (like 
Deluge) explicitely modify the GPL license by adding an extra section at the beginning of the license documenting the exception.
 Other packages use the LGPL licensed 
GnuTLS which performs the same task.
Vulnerability in the Debian implementation
In order to keep a warning from being issued by the 
Valgrind analysis tool, a maintainer of the 
Debian distribution applied a 
patch to the Debian implementation of the OpenSSL suite, which inadvertently broke its 
random number generator
 in the process. The broken version was included in the Debian release 
of September 17, 2006 (version 0.9.8c-1). Any key generated with the 
broken random number generator, as well as data encrypted with such a 
key, was compromised. The error was reported by Debian on May 13, 2008.
On the Debian 4.0 distribution (etch), these problems were fixed in 
version 0.9.8c-4etch3 and for the Debian 5.0 distribution (lenny), these
 problems were fixed in version 0.9.8g-9.