Libgcrypt

Libgcrypt is a cryptography library developed as a separated module of GnuPG.[2] It can also be used independently of GnuPG, but depends on its error-reporting library Libgpg-error.[3]

Libgcrypt
Developer(s)Werner Koch
Stable release1.8.6 (July 6, 2020 (2020-07-06)[1]) [±]
Repository
Written inC
Operating systemCross-platform
TypeCryptographic library
LicenseGNU Lesser General Public License GNU General Public License
Websitegnupg.org/software/libgcrypt/

It provides functions for all fundamental cryptographic building blocks:

Primitive or OperationAlgorithms or Implementation[4]
symmetric ciphers:[5] AES (128, 192, 256 bits), DES, 3DES, IDEA, CAST5, Blowfish, Twofish (128, 256 bits), Ron's Cipher 2 / RC2 (40, 128 bits), ARCfour / RC4, SEED, Serpent (128, 192, 256 bits), Camellia (128, 192, 256 bits), Salsa20, Salsa20/12, ChaCha20, GOST 28147-89
cipher modes:[6] ECB, CFB, CBC, OFB, CTR, AES-Wrap (RFC 3394), CCM, GCM, Stream, OCB, EAX, XTS
public key algorithms:[7][8] RSA, ElGamal, DSA, ECDSA, EdDSA, DH, EDH, ECDH
hash algorithms:[9] 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 (as in RFC 2440), CRC-32 (as in ISO 3309), CRC-32 (as in RFC 1510), GOST R 34.11-94, GOST R 34.11-2012 (Stribog), SM3, BLAKE2b (128, 160, 224, 256 Bits), BLAKE2s (160, 256, 384, 512 Bits)
message authentication codes (MACs):[10] HMAC for all hash algorithms, CMAC for all cipher algorithms, GMAC for some cipher algorithms, Poly1305
key derivation functions (KDFs):[11] S2K (as in RFC 4880: simple, salted, iterated+salted), PBKDF2, SCRYPT
elliptic curves: NIST (P-256, P-384, P-521), SECG (secp256k1), ECC Brainpool / RFC 5639 (P256r1, P384r1, P512r1), Bernstein (Curve25519), GOST R (RFC 5832, RFC 7091)

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 (as of July 2020) since 2019-06-30[12] Libgrypt 1.8 is the only maintained, stable branch, while no releases were created from the current development branch 1.9, yet.

See also

References

  1. "Libgcrypt 1.8.6 released". dev.gnupg.org. 2020-07-06. Retrieved 2020-07-09.
  2. Koch, Werner (1998-12-04). "libgcrypt" (Mailing list). gnupg-devel. Retrieved 2017-08-30.
  3. "Libgpg-error". GnuPG software. 2017-03-22. Retrieved 2017-12-13.
  4. "src/cipher.h". 2017-06-16. Retrieved 2017-08-30.
  5. "Available ciphers". The Libgcrypt Reference Manual. 2017-08-27. Retrieved 2017-08-30.
  6. "Available cipher modes". The Libgcrypt Reference Manual. 2017-08-27. Retrieved 2017-08-30.
  7. "Available algorithms". The Libgcrypt Reference Manual. 2017-08-27. Retrieved 2017-08-30.
  8. "Cryptographic Functions". The Libgcrypt Reference Manual. 2017-08-27. Retrieved 2017-08-30.
  9. "Available hash algorithms". The Libgcrypt Reference Manual. 2017-08-27. Retrieved 2017-08-30.
  10. "Available MAC algorithms". The Libgcrypt Reference Manual. 2017-08-27. Retrieved 2017-08-30.
  11. "Key Derivation". The Libgcrypt Reference Manual. 2017-08-27. Retrieved 2017-08-30.
  12. "Libgrypt". GnuPG software. 2017-07-19. Retrieved 2017-12-13.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.