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, and other security operations such as secure timestamping (TSP). In addition cryptlib implements a full range of certificate authority (CA) functions, as well as providing complete CMP, SCEP, RTCS, and OCSP server implementations to handle online certificate enrolment/issue/revocation and certificate status checking. Alongside the certificate handling, cryptlib 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.
Any hardware, any OS
In addition to its built-in capabilities, 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. 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 virtually any operating system — cryptlib doesn’t tie you to a single platform.
cryptlib is supplied as source code for general-pur?pose operating systems including BeOS, DOS, DOS32, IBM MVS, OS/2, OS X, Tandem, a variety of Unix versions (including AIX, Digital Unix, DGUX, FreeBSD/NetBSD/OpenBSD, HP-UX, IRIX, Linux, MP-RAS, OSF/1, QNX, Solaris, SunOS, Ultrix, and UTS4), VM/CMS, 16-, 32-, and 64-bit Windows, and Windows CE/PocketPC/SmartPhone.
cryptlib’s highly portable nature means that it’s also been employed in a wide range of embedded systems environments including:
- KADAK AMX, ARINC653
- Segger embOS
- iOS, µITRON, embedded Linux
- Mongoose OS
- NXP MQX
- Mentor Graphics/Siemens Nucleus
- OSEK / OSEK/VDX, PalmOS
- Express Logic ThreadX
- uClinux, Analog Devices VDK
- Wind River VxWorks
As well as bare-metal environments.
If required, the cryptlib developers can provide assistance in moving the code to any new or unusual environments.
cryptlib comes with language bindings for C / C++, C# / .NET, Delphi, Java, Perl, Python, and Visual Basic (VB).
Many of the core algorithms used in cryptlib have been implemented in assembly language in order to provide the maximum possible performance. These routines provide an unprecedented level of performance, in some cases running faster than expensive, specialised encryption hardware designed to perform the same task. In addition, cryptlib’s crypto HAL (hardware abstraction layer) provides the ability to plug in hardware-assisted crypto for those CPUs that ? allow it. This means that cryptlib can be used for high-bandwidth applications such as video/audio encryption and online network and disk encryption.