RIPEMD160_INIT(3SSL)

πŸ’… RIPEMD160_INIT β€” the OpenSSL manpage, bestie edition πŸŽ€

okay so this is RIPEMD160_INIT(3SSL), from the OpenSSL manual, and we're about to get into the RIPEMD-160 hash function. yes she's deprecated. no we're not ignoring her. sit down, hydrate, let's go πŸ¦‹


✨ NAME ✨

RIPEMD160, RIPEMD160_Init, RIPEMD160_Update, RIPEMD160_Final β€” the RIPEMD-160 hash function, all four of them, one happy little family 🌸


✨ SYNOPSIS ✨

#include <openssl/ripemd.h>
⚠️ real talk: the functions below have been deprecated since OpenSSL 3.0, and you can hide them entirely by defining OPENSSL_API_COMPAT with a suitable version value β€” check openssl_user_macros(7) for that.
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 ✨

okay so, headline first: all of the functions described on this page are deprecated 😭 like, every single one. applications should be using EVP_DigestInit_ex(3), EVP_DigestUpdate(3) and EVP_DigestFinal_ex(3) instead. she's retired but still gorgeous, yk?

RIPEMD-160 is a cryptographic hash function with a 160 bit output. short king. powerful king. πŸ‘‘

RIPEMD160() computes the RIPEMD-160 message digest of the n bytes at d and drops it into md β€” and md must have space for RIPEMD160_DIGEST_LENGTH == 20 bytes of output. if md is NULL, the digest goes into a static array instead (she keeps a spot for you, lowkey).

now, the following functions are for when your message isn't completely stored in memory, i.e. you're streaming it in pieces like a true main character:

  • 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.

✨ RETURN VALUES ✨

  • RIPEMD160() returns a pointer to the hash value. 🫢
  • RIPEMD160_Init(), RIPEMD160_Update() and RIPEMD160_Final() return 1 for success, 0 otherwise.

✨ NOTE ✨

applications should use the higher level functions EVP_DigestInit(3) etc. instead of calling these functions directly. i'm not saying it twice, bestie, i'm just saying it with love πŸ’–


✨ CONFORMING TO ✨

ISO/IEC 10118-3:2016 Dedicated Hash-Function 1 (RIPEMD-160). certified. standardized. iconic. periodt.


✨ SEE ALSO ✨


✨ HISTORY ✨

all of these functions were deprecated in OpenSSL 3.0. that's the whole history section. brief, but devastating πŸ’€


Copyright 2000-2020 The OpenSSL Project Authors. All Rights Reserved.

Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy in the file LICENSE in the source distribution or at <https://www.openssl.org/source/license.html>.


and that's the whole page, no cap ✨ this was OpenSSL 4.0.3, dated 2026-09-29, and it's the RIPEMD160_INIT(3SSL) manual through and through. go forth, hash responsibly, and remember: deprecated β‰  forgotten πŸ’œπŸŽ€

πŸ“¦ where this page comes from