Libgcrypt

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
Libgcrypt
Developer(s) Werner Koch
Stable release

1.8.3 (June 13, 2018; 3 months ago (2018-06-13)[1]) [±]

1.7.10 (June 13, 2018; 3 months ago (2018-06-13)[2]) [±]
Repository Edit this at Wikidata
Written in C
Operating system Cross-platform
Type Cryptographic library
License GNU Lesser General Public License GNU General Public License
Website gnupg.org/software/libgcrypt/

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

It provides functions for all fundamental cryptographic building blocks:

Primitive or Operation Algorithms or Implementation[5]
symmetric ciphers:[6] 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:[7] ECB, CFB, CBC, OFB, CTR, AES-Wrap (RFC 3394), CCM, GCM, Stream, OCB, EAX, XTS
public key algorithms:[8][9] RSA, ElGamal, DSA, ECDSA, EdDSA, DH, EDH, ECDH
hash algorithms:[10] 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):[11] HMAC for all hash algorithms, CMAC for all cipher algorithms, GMAC for some cipher algorithms, Poly1305
key derivation functions (KDFs):[12] 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, multiple branches of Libgcrypt are maintained in parallel, currently the branch 1.8 and the branch 1.7, of which the older is announced to reach its end of life on 2019-06-30[13].

See also[edit]

References[edit]

  1. ^ "Release 1.8.3". dev.gnupg.org. 2018-06-13. Retrieved 2018-06-13. 
  2. ^ "Release 1.7.10". dev.gnupg.org. 2018-06-13. Retrieved 2018-06-13. 
  3. ^ Koch, Werner (1998-12-04). "libgcrypt" (Mailing list). gnupg-devel. Retrieved 2017-08-30. 
  4. ^ "Libgpg-error". GnuPG software. 2017-03-22. Retrieved 2017-12-13. 
  5. ^ "src/cipher.h". 2017-06-16. Retrieved 2017-08-30. 
  6. ^ "Available ciphers". The Libgcrypt Reference Manual. 2017-08-27. Retrieved 2017-08-30. 
  7. ^ "Available cipher modes". The Libgcrypt Reference Manual. 2017-08-27. Retrieved 2017-08-30. 
  8. ^ "Available algorithms". The Libgcrypt Reference Manual. 2017-08-27. Retrieved 2017-08-30. 
  9. ^ "Cryptographic Functions". The Libgcrypt Reference Manual. 2017-08-27. Retrieved 2017-08-30. 
  10. ^ "Available hash algorithms". The Libgcrypt Reference Manual. 2017-08-27. Retrieved 2017-08-30. 
  11. ^ "Available MAC algorithms". The Libgcrypt Reference Manual. 2017-08-27. Retrieved 2017-08-30. 
  12. ^ "Key Derivation". The Libgcrypt Reference Manual. 2017-08-27. Retrieved 2017-08-30. 
  13. ^ "Libgrypt". GnuPG software. 2017-07-19. Retrieved 2017-12-13.