LibTomCrypt is a portable and modular software toolkit that provides comprehensive cryptographic solutions.
LibTomCrypt features a user manual that contains many source snippet examples, offering easy handling for developers. It is free for all purposes under the public domain, including commercial use, redistribution, and branching.
This software is written entirely in portable ISO C source, making it compatible with virtually any platform, and it builds seamlessly out of the box when GCC is used. The included user manual is over 90 pages long and presents working examples.
Block Ciphers in LibTomCrypt come with ECB encrypt/decrypt, setkey and self-test interfaces, and all ciphers have the same prototype, which makes using multiple ciphers at runtime simple. The ciphers are flexible in terms of code size and memory usage. The list of Ciphers supported include Blowfish, XTEA, RC5, RC6, SAFER+, Rijndael (aka AES), Twofish, SAFER (K64, SK64, K128, SK128), RC2, DES, 3DES, CAST5, Noekeon, Skipjack, Anubis (with optional tweak as proposed by the developers), and Khazad.
In terms of Changing Modes, Modes come with a start, encrypt/decrypt and set/get IV interfaces, and the mode supported includes ECB, CBC, OFB, CFB, and CTR. Moreover, Hashes in LibTomCrypt come with init, process, done and self-test interfaces. All hashes use the same prototypes for the interfaces. The list of Hashes supported includes MD2, MD4, MD5, SHA-1, SHA-224/256/384/512, TIGER-192, RIPE-MD 128/160, and WHIRLPOOL.
Furthermore, the software also supports Message Authentication such as FIPS-198 HMAC (supports all hashes), FIPS pending OMAC1 (supports all ciphers), and PMAC Authentication. In Message Encrypt+Authenticate Modes, EAX Mode and OCB Mode are supported.
LibTomCrypt offers Pseudo-Random Number Generators like Yarrow (based algorithm), RC4, Fortuna, SOBER-128, and also supports /dev/random, /dev/urandom, and the Win32 CSP RNG. Public Key Algorithms like RSA (using PKCS #1 v2.1 and PKCS #1 v1.5), DH (using ElGamal signatures and simple DH encryption), ECC (over Z/pZ, ElGamal Signatures, simple DH style encryption), DSA (Users make their group).
Finally, the software also adheres to Other standards such as PKCS #1 (both v1.5 and v2.0 padding), PKCS #5, ASN.1 DER for INTEGER types. With the recent release, the ECC code has been improved and cleaned, GCM was fixed, UTF8 support was added to the ASN1 code. The documentation is also improved, with the published version of the manual included
Version 1.16: N/A