Developer(s) | Peter Gutmann |
---|---|
Initial release | 1995 (1995) |
Stable release | 3.4.5 (2019; 6 years ago (2019)[1]) [±] |
Written in | C |
Type | Security library |
License | Sleepycat (Berkeley Database) License[2][3] |
Website | www![]() |
cryptlib is anopen-sourcecross-platform software security toolkit library. It is distributed under theSleepycat License,[2] afree software licensecompatible with theGNU General Public License.[3] Alternatively,cryptlib is available under a proprietary license for those preferring to use it under proprietary terms.[4]
cryptlib is a security toolkit library that allows programmers to incorporateencryption and authentication services to software. It provides a high-level interface, so that strong security capabilities can be added to an application without needing to know many of the low-level details of encryption or authenticationalgorithms. Extensive documentation in the form of a 400+ page programming manual is available.[5]
At the highest level, cryptlib provides implementations of complete security services such asS/MIME andPGP/OpenPGP secure enveloping,SSL/TLS andSSH secure sessions,CA services such asCMP,SCEP, RTCS,OCSP, and other security operations such as secure timestamping. Since cryptlib uses industry-standardX.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 mostUnix/Linux systems. This allows email, files, and EDI transactions to be authenticated with digital signatures and encrypted in an industry-standard format.[citation needed]
cryptlib provides other capabilities including full X.509/PKIX certificate handling (all X.509 versions from X.509v1 to X.509v4) with support forSET, 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 to commercial-gradeRDBMS andLDAP directories with optional SSL protection.[citation needed]
cryptlib can make use of the cryptographic capabilities of a variety of external cryptographic devices such as hardware cryptographic accelerators, Fortezza cards, PKCS #11 devices, hardware security modules (HSMs), and cryptographic smart cards. It can be used with a variety of cryptography devices that have received FIPS 140 or ITSEC/Common Criteria certification. The cryptographic 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 supportsBeOS,DOS,IBMMVS,Mac OS X,OS/2, Tandem, a variety ofUnix versions (includingAIX,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 otherembedded system environments. It is available as a standardDLL. Language bindings are available forC /C++,C# /.NET,Delphi,[6]Java,Python, andVisual Basic (VB).
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 |