---
name: "libressl-RIPEMD160"
section: "3"
platform: "linux"
package: "libressl"
version: "4.4.0-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/libressl-RIPEMD160"
---

# libressl-RIPEMD160(3)

RIPEMD-160 hash function

## NAME

**RIPEMD160**, **RIPEMD160\_Init**, **RIPEMD160\_Update**, **RIPEMD160\_Final** – RIPEMD-160 hash function

## SYNOPSIS

Crypto Library (libcrypto, -lcrypto)

**#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.
