Next: , Up: Hashing   [Contents][Index]


7.1 Available hash algorithms

GCRY_MD_NONE

This is not a real algorithm but used by some functions as an error return value. This constant is guaranteed to have the value 0.

GCRY_MD_SHA1

This is the SHA-1 algorithm which yields a message digest of 20 bytes. Note that SHA-1 begins to show some weaknesses and it is suggested to fade out its use if strong cryptographic properties are required.

GCRY_MD_RMD160

This is the 160 bit version of the RIPE message digest (RIPE-MD-160). Like SHA-1 it also yields a digest of 20 bytes. This algorithm share a lot of design properties with SHA-1 and thus it is advisable not to use it for new protocols.

GCRY_MD_MD5

This is the well known MD5 algorithm, which yields a message digest of 16 bytes. Note that the MD5 algorithm has severe weaknesses, for example it is easy to compute two messages yielding the same hash (collision attack). The use of this algorithm is only justified for non-cryptographic application.

GCRY_MD_MD4

This is the MD4 algorithm, which yields a message digest of 16 bytes. This algorithm has severe weaknesses and should not be used.

GCRY_MD_MD2

This is an reserved identifier for MD-2; there is no implementation yet. This algorithm has severe weaknesses and should not be used.

GCRY_MD_TIGER

This is the TIGER/192 algorithm which yields a message digest of 24 bytes. Actually this is a variant of TIGER with a different output print order as used by GnuPG up to version 1.3.2.

GCRY_MD_TIGER1

This is the TIGER variant as used by the NESSIE project. It uses the most commonly used output print order.

GCRY_MD_TIGER2

This is another variant of TIGER with a different padding scheme.

GCRY_MD_HAVAL

This is an reserved value for the HAVAL algorithm with 5 passes and 160 bit. It yields a message digest of 20 bytes. Note that there is no implementation yet available.

GCRY_MD_SHA224

This is the SHA-224 algorithm which yields a message digest of 28 bytes. See Change Notice 1 for FIPS 180-2 for the specification.

GCRY_MD_SHA256

This is the SHA-256 algorithm which yields a message digest of 32 bytes. See FIPS 180-2 for the specification.

GCRY_MD_SHA384

This is the SHA-384 algorithm which yields a message digest of 48 bytes. See FIPS 180-2 for the specification.

GCRY_MD_SHA512

This is the SHA-384 algorithm which yields a message digest of 64 bytes. See FIPS 180-2 for the specification.

GCRY_MD_SHA3_224

This is the SHA3-224 algorithm which yields a message digest of 28 bytes. See FIPS 202 for the specification.

GCRY_MD_SHA3_256

This is the SHA3-256 algorithm which yields a message digest of 32 bytes. See FIPS 202 for the specification.

GCRY_MD_SHA3_384

This is the SHA3-384 algorithm which yields a message digest of 48 bytes. See FIPS 202 for the specification.

GCRY_MD_SHA3_512

This is the SHA3-384 algorithm which yields a message digest of 64 bytes. See FIPS 202 for the specification.

GCRY_MD_SHAKE128

This is the SHAKE128 extendable-output function (XOF) algorithm with 128 bit security strength. See FIPS 202 for the specification.

GCRY_MD_SHAKE256

This is the SHAKE256 extendable-output function (XOF) algorithm with 256 bit security strength. See FIPS 202 for the specification.

GCRY_MD_CRC32

This is the ISO 3309 and ITU-T V.42 cyclic redundancy check. It yields an output of 4 bytes. Note that this is not a hash algorithm in the cryptographic sense.

GCRY_MD_CRC32_RFC1510

This is the above cyclic redundancy check function, as modified by RFC 1510. It yields an output of 4 bytes. Note that this is not a hash algorithm in the cryptographic sense.

GCRY_MD_CRC24_RFC2440

This is the OpenPGP cyclic redundancy check function. It yields an output of 3 bytes. Note that this is not a hash algorithm in the cryptographic sense.

GCRY_MD_WHIRLPOOL

This is the Whirlpool algorithm which yields a message digest of 64 bytes.

GCRY_MD_GOSTR3411_94

This is the hash algorithm described in GOST R 34.11-94 which yields a message digest of 32 bytes.

GCRY_MD_STRIBOG256

This is the 256-bit version of hash algorithm described in GOST R 34.11-2012 which yields a message digest of 32 bytes.

GCRY_MD_STRIBOG512

This is the 512-bit version of hash algorithm described in GOST R 34.11-2012 which yields a message digest of 64 bytes.

GCRY_MD_BLAKE2B_512

This is the BLAKE2b-512 algorithm which yields a message digest of 64 bytes. See RFC 7693 for the specification.

GCRY_MD_BLAKE2B_384

This is the BLAKE2b-384 algorithm which yields a message digest of 48 bytes. See RFC 7693 for the specification.

GCRY_MD_BLAKE2B_256

This is the BLAKE2b-256 algorithm which yields a message digest of 32 bytes. See RFC 7693 for the specification.

GCRY_MD_BLAKE2B_160

This is the BLAKE2b-160 algorithm which yields a message digest of 20 bytes. See RFC 7693 for the specification.

GCRY_MD_BLAKE2S_256

This is the BLAKE2s-256 algorithm which yields a message digest of 32 bytes. See RFC 7693 for the specification.

GCRY_MD_BLAKE2S_224

This is the BLAKE2s-224 algorithm which yields a message digest of 28 bytes. See RFC 7693 for the specification.

GCRY_MD_BLAKE2S_160

This is the BLAKE2s-160 algorithm which yields a message digest of 20 bytes. See RFC 7693 for the specification.

GCRY_MD_BLAKE2S_128

This is the BLAKE2s-128 algorithm which yields a message digest of 16 bytes. See RFC 7693 for the specification.


Next: , Up: Hashing   [Contents][Index]