RIPEMD160(3) | Library Functions Manual | RIPEMD160(3)

# NAME

`RIPEMD160`, `RIPEMD160_Init`, `RIPEMD160_Update`, `RIPEMD160_Final` — RIPEMD-160 hash function

# SYNOPSIS

library “libcrypto”
`#include <openssl/ripemd.h>`

unsigned char *
`RIPEMD160`(const unsigned char *d, unsigned long n, unsigned char *md);

int
`RIPEMD160_Init`(RIPEMD160_CTX *c);

int
`RIPEMD160_Update`(RIPEMD160_CTX *c, const void *data, unsigned long len);

int
`RIPEMD160_Final`(unsigned char *md, RIPEMD160_CTX *c);

# DESCRIPTION

RIPEMD-160 is a cryptographic hash function with a 160-bit output.

`RIPEMD160`() computes the RIPEMD-160 message digest of the n bytes at d and places it in md, which must have space for `RIPEMD160_DIGEST_LENGTH` == 20 bytes of output.

The following functions may be used if the message is not completely stored in memory:

`RIPEMD160_Init`() initializes a RIPEMD160_CTX structure.

`RIPEMD160_Update`() can be called repeatedly with chunks of the message to be hashed (len bytes at data).

`RIPEMD160_Final`() places the message digest in md, which must have space for `RIPEMD160_DIGEST_LENGTH` == 20 bytes of output, and erases the RIPEMD160_CTX.

Applications should use the higher level functions EVP_DigestInit(3) etc. instead of calling the hash functions directly.

# RETURN VALUES

`RIPEMD160`() returns a pointer to the hash value.

`RIPEMD160_Init`(), `RIPEMD160_Update`(), and `RIPEMD160_Final`() return 1 for success or 0 otherwise.

# SEE ALSO

EVP_DigestInit(3), HMAC(3)

# STANDARDS

    ISO/IEC 10118-3:2004/Cor 1:2011
    Hash-functions — Part 3: Dedicated hash-functions
    Clause 7: RIPEMD-160

# HISTORY

`RIPEMD160`(), `RIPEMD160_Init`(), `RIPEMD160_Update`(), and `RIPEMD160_Final`() first appeared in SSLeay 0.9.0 and have been available since OpenBSD 2.4.

# CAVEATS

Other implementations allow md in `RIPEMD160`() to be `NULL` and return a static array, which is not thread safe.

June 8, 2025 | Debian