EVP_SHA3_224(3ossl)
β¨ EVP_SHA3_224 β¨
okay so bestie, you found the 3ossl page for the SHA-3 family in OpenSSL, and honestly? it's giving cryptographic royalty π. Let's get into it π
π NAME π
EVP_sha3_224, EVP_sha3_256, EVP_sha3_384, EVP_sha3_512, EVP_shake128, EVP_shake256 β SHA-3 For EVP π¦
πΈ SYNOPSIS πΈ
#include <openssl/evp.h>
const EVP_MD *EVP_sha3_224(void);
const EVP_MD *EVP_sha3_256(void);
const EVP_MD *EVP_sha3_384(void);
const EVP_MD *EVP_sha3_512(void);
const EVP_MD *EVP_shake128(void);
const EVP_MD *EVP_shake256(void);
π DESCRIPTION π
SHA-3 (Secure Hash Algorithm 3) is a whole family of cryptographic hash functions, standardized in NIST FIPS 202 and first published in 2015. It's based on the Keccak algorithm β like, the origin story of this whole squad π.
π§ EVP_sha3_224(), EVP_sha3_256(), EVP_sha3_384(), EVP_sha3_512()
These are the SHA-3-224, SHA-3-256, SHA-3-384, and SHA-3-512 algorithms respectively β one per size, no cap. They produce 224, 256, 384 and 512 bits of output from a given input. Pick your vibe, pick your bit count β¨
π«Ά EVP_shake128(), EVP_shake256()
These two are the SHAKE-128 and SHAKE-256 Extendable Output Functions (XOF) β yes, XOF, the main character acronym π₯ β and they can generate a variable hash length. Obsessed, honestly.
Specifically: EVP_shake128 gives you an overall security of 128 bits, while EVP_shake256 gives you that of 256 bits. Different strengths, same slay π
β οΈ NOTES β οΈ
bestie, please read this part, i'm literally begging π
Developers should be aware of the negative performance implications of calling these functions multiple times, and should consider using EVP_MD_fetch(3) with EVP_MD-SHA3(7) or EVP_MD-SHAKE(7) instead. See "Performance" in crypto(7) for further information β it's the glow-up your hot path deserves π
π« RETURN VALUES π«
These functions return an EVP_MD structure that contains the implementation of the message digest. See EVP_MD_meth_new(3) for details of the EVP_MD structure. That's it, that's the return π
π CONFORMING TO π
NIST FIPS 202. periodt. β
π¦ SEE ALSO π¦
go read them, iykyk π
π COPYRIGHT π
Copyright 2017-2023 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>.
k that's the whole page bestie, go hash something gorgeous πβ¨ this was OpenSSL 3.5.0, dated 2026-09-25, signing off β mwah π«Άπ
π¦ where this page comes from
- opensuse-leap 16.0: openssl-3-doc 3.5.0-160000.11.1 Β· Apache-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms