Libgcrypt


Libgcrypt is a cryptography library developed as a separated module of GnuPG.
It can also be used independently of GnuPG, but depends on its error-reporting library Libgpg-error.
It provides functions for all fundamental cryptographic building blocks:
Primitive or OperationAlgorithms or Implementation
symmetric ciphers:AES, DES, 3DES, IDEA, CAST5, Blowfish, Twofish, Ron's Cipher 2 / RC2, ARCfour / RC4, SEED, Serpent , Camellia, Salsa20, Salsa20/12, ChaCha20, GOST 28147-89
cipher modes:ECB, CFB, CBC, OFB, CTR, AES-Wrap, CCM, GCM, Stream, OCB, EAX, XTS
public key algorithms:RSA, ElGamal, DSA, ECDSA, EdDSA, DH, EDH, ECDH
hash algorithms:MD2, MD4, MD5, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, SHA3-224, SHA3-256, SHA3-384, SHA3-512, SHAKE128, SHAKE256, RIPEMD-160, TIGER/192, TIGER1, TIGER2, Whirlpool, CRC-24, CRC-32, CRC-32, GOST R 34.11-94, GOST R 34.11-2012, , BLAKE2b, BLAKE2s
message authentication codes :HMAC for all hash algorithms, CMAC for all cipher algorithms, GMAC for some cipher algorithms, Poly1305
key derivation functions :S2K, PBKDF2, SCRYPT
elliptic curves:NIST, SECG, ECC Brainpool / , Bernstein, GOST R

Libgcrypt features its own multiple precision arithmetic implementation, with assembler implementations for a variety of processors, including Alpha, AMD64, HP PA-RISC, i386, i586, M68K, MIPS 3, PowerPC, and SPARC. It also features an entropy gathering utility, coming in different versions for Unix-like and Windows machines.
As for GnuPG, regularly multiple branches of Libgcrypt are maintained in parallel, but since 2019-06-30 Libgrypt 1.8 is the only maintained, stable branch, while no releases were created from the current development branch 1.9, yet.