cryptlib
cryptlib is an open-source cross-platform software security toolkit library. It is distributed under the Sleepycat License,[2] a free software license compatible with the GNU General Public License.[3] Alternatively, cryptlib is available under a proprietary license for those preferring to use it under proprietary terms.[4]
Developer(s) | Peter Gutmann |
---|---|
Initial release | 1995 |
Stable release | 3.4.5 (2019[1]) [±] |
Written in | C |
Type | Security library |
License | Sleepycat (Berkeley Database) License[2][3] |
Website | www |
Features
cryptlib is a security toolkit library that allows programmers to incorporate encryption and authentication services to software. It provides a high-level interface so strong security capabilities can be added to an application without needing to know many of the low-level details of encryption or authentication algorithms. It comes with an over 400 page programming manual.[5]
At the highest level, cryptlib provides implementations of complete security services such as S/MIME and PGP/OpenPGP secure enveloping, SSL/TLS and SSH secure sessions, CA services such as CMP, SCEP, RTCS, and OCSP, and other security operations such as secure timestamping. Since cryptlib uses industry-standard X.509, S/MIME, PGP/OpenPGP, and SSH/SSL/TLS data formats, the resulting encrypted or signed data can be easily transported to other systems and processed there, and cryptlib itself runs on many operating systems—all Windows versions and most Unix/Linux systems. This allows email, files, and EDI transactions to be authenticated with digital signatures and encrypted in an industry-standard format.
cryptlib provides other capabilities including full X.509/PKIX certificate handling (all X.509 versions from X.509v1 to X.509v4) with support for SET, Microsoft AuthentiCode, Identrus, SigG, S/MIME, SSL, and Qualified certificates, PKCS #7 certificate chains, handling of certification requests and CRLs (certificate revocation lists) including automated checking of certificates against CRLs and online checking using RTCS and OCSP, and issuing and revoking certificates using CMP and SCEP. It also implements a full range of certification authority (CA) functions provides complete CMP, SCEP, RTCS, and OCSP server implementations to handle online certificate enrolment/issue/revocation and certificate status checking. Alongside the certificate handling, it provides a sophisticated key storage interface that allows the use of a wide range of key database types ranging from PKCS #11 devices, PKCS #15 key files, and PGP/OpenPGP key rings through to commercial-grade RDBMS' and LDAP directories with optional SSL protection.
cryptlib can make use of the crypto capabilities of a variety of external crypto devices such as hardware crypto accelerators, Fortezza cards, PKCS #11 devices, hardware security modules (HSMs), and crypto smart cards. It can be used with a variety of crypto devices that have received FIPS 140 or ITSEC/Common Criteria certification. The crypto device interface also provides a general-purpose plug-in capability for adding new functionality that can be used by cryptlib.
cryptlib is written in C and supports BeOS, DOS, IBM MVS, Mac OS X, OS/2, Tandem, a variety of Unix versions (including AIX, Digital Unix, DGUX, FreeBSD/NetBSD/OpenBSD, HP-UX, IRIX, Linux, MP-RAS, OSF/1, QNX, SCO/UnixWare, Solaris, SunOS, Ultrix, and UTS4), VM/CMS, Windows 3.x, Windows 95/98/ME, Windows CE/PocketPC/SmartPhone and Windows NT/2000/XP/Vista. It is designed to be portable to other embedded system environments. It is available as a standard Windows DLL. Language bindings are available for C / C++, C# / .NET, Delphi,[6] Java, Python, and Visual Basic (VB).
Algorithm support
Algorithm | Key size | Block size |
---|---|---|
AES | 128/192/256 | 128 |
Blowfish | 448 | 64 |
CAST-128 | 128 | 64 |
DES [7] | 56 | 64 |
Triple DES | 112 / 168 | 64 |
IDEA [8] | 128 | 64 |
RC2 [9] | 1024 | 64 |
RC4 [9] | 2048 | 8 |
RC5 [8] | 832 | 64 |
Skipjack [9] | 80 | 64 |
Algorithm | Digest size |
---|---|
MD2 [7][9] | 128 |
MD4 [7][9] | 128 |
MD5 [7] | 128 |
RIPEMD-160 | 160 |
SHA-1 | 160 |
SHA-2 / SHA-256 | 256 |
Algorithm | Key size | Digest size |
---|---|---|
HMAC-MD5 | 128 | 128 |
HMAC-RIPEMD-160 | 160 | 160 |
HMAC-SHA-1 | 160 | 160 |
HMAC-SHA-2 | 256 | 256 |
Algorithm | Key size |
---|---|
Diffie–Hellman | 4096 |
DSA | 4096 |
ECDSA | 521 |
ECDH | 521 |
Elgamal | 4096 |
RSA | 4096 |
Release History
- cryptlib 3.4.5 was released on March 8, 2019 .
- cryptlib 3.4.4.1 was released on August 21, 2018 .[10]
- cryptlib 3.4.4 was released on January 10, 2018 .[11]
- cryptlib 3.4.3 was released on March 25, 2016 .[12]
- cryptlib 3.4.2 was released on December 17, 2012 .[13]
- cryptlib 3.4.1 was released on July 27, 2011 .[14]
- cryptlib 3.4.0 was released on October 6, 2010 .[15]
- cryptlib 3.3.2 was released on July 3, 2008 .[16]
- cryptlib 3.3.1 was released on February 1, 2007 .[17]
- cryptlib 3.3 was released on September 13, 2006 .[18]
- cryptlib 3.2.3a was released on August 29, 2006 .[19]
- cryptlib 3.2.3 was released on July 10, 2006 .[20]
- cryptlib 3.2.2 was released on September 6, 2005 .[21]
- cryptlib 3.2.1 was released on August 9, 2005 .[22]
- cryptlib 3.2 was released on April 18, 2005 .[23]
- cryptlib 3.1 was released on December 13, 2003 .[24]
See also
- OpenSSL
- GnuTLS
- Network Security Services
- Libgcrypt
- MatrixSSL
- mbed TLS (previously PolarSSL)
- wolfSSL (previously CyaSSL)
- Comparison of TLS implementations
- Comparison of cryptography libraries
References
- Gutmann, Peter (2019). "Downloading". cryptlib. University of Auckland School of Computer Science. Retrieved 2019-08-07.
- "{title}". Archived from the original on 2018-06-29. Retrieved 2018-11-02.
- "{title}". Archived from the original on 2009-07-16. Retrieved 2018-11-02.
- "{title}". Archived from the original on 2011-06-08. Retrieved 2011-02-05.
- https://www.cryptlib.com/downloads/manual.pdf
- "Cryptlib AddOn's for Delphi programmers". cryptlib.sogot.de. Archived from the original on 2008-03-17. Retrieved 2008-04-07.
- Disabled by default due to its insecurity
- Disabled by default due to it being patented
- Disabled by default due to it being obsolete
- Gutmann, Peter (August 21, 2018). "cryptlib 3.4.4 update 1 released". cryptlib@mbsks.franken.de (Mailing list). Retrieved 2019-08-07.
- Gutmann, Peter (January 10, 2018). "cryptlib 3.4.4 released". cryptlib@mbsks.franken.de (Mailing list). Retrieved 2019-08-07.
- Gutmann, Peter (March 25, 2016). "cryptlib 3.4.3 released". cryptlib@mbsks.franken.de (Mailing list). Retrieved 2019-08-07.
- Gutmann, Peter (December 17, 2012). "cryptlib 3.4.2 released". cryptlib@mbsks.franken.de (Mailing list). Retrieved 2019-08-07.
- Gutmann, Peter (July 27, 2011). "cryptlib 3.4.1 released". cryptlib@mbsks.franken.de (Mailing list). Retrieved 2019-08-07.
- Gutmann, Peter (October 6, 2010). "cryptlib 3.4.0 released". cryptlib@mbsks.franken.de (Mailing list). Retrieved 2019-08-07.
- Gutmann, Peter (July 3, 2008). "cryptlib 3.3.2 released". cryptlib@mbsks.franken.de (Mailing list). Retrieved 2019-08-07.
- Gutmann, Peter (February 1, 2007). "cryptlib 3.3.1 released". cryptlib@mbsks.franken.de (Mailing list). Retrieved 2019-08-07.
- Gutmann, Peter (September 13, 2006). "cryptlib 3.3 released". cryptlib@mbsks.franken.de (Mailing list). Retrieved 2019-08-07.
- Gutmann, Peter (August 29, 2006). "cryptlib 3.2.3a released". cryptlib@mbsks.franken.de (Mailing list). Retrieved 2019-08-07.
- Gutmann, Peter (July 10, 2006). "cryptlib 3.2.3 released". cryptlib@mbsks.franken.de (Mailing list). Retrieved 2019-08-07.
- Gutmann, Peter (September 6, 2005). "cryptlib 3.2.2 released". cryptlib@mbsks.franken.de (Mailing list). Retrieved 2019-08-07.
- Gutmann, Peter (August 9, 2005). "cryptlib 3.2.1 released". cryptlib@mbsks.franken.de (Mailing list). Retrieved 2019-08-07.
- Gutmann, Peter (April 18, 2005). "cryptlib 3.2 released". cryptlib@mbsks.franken.de (Mailing list). Retrieved 2019-08-07.
- Gutmann, Peter (December 13, 2003). "cryptlib 3.1 released". cryptlib@mbsks.franken.de (Mailing list). Retrieved 2019-08-07.
External links
- Official website
- Cryptlib - Encryption Security Software Development Toolkit by Digital Data Security Limited