EVP_MD-BLAKE2(7ossl)

πŸ“¦ version 3.5.0, in opensuse-leap 16.0

✨ EVP_MD-BLAKE2 πŸ’…

okay so bestie, this is the OpenSSL manual page for EVP_MD-BLAKE2 β€” that's the 7ossl one β€” and it's literally all about the BLAKE2 EVP_MD implementation. grab a lil snack, we're getting into it πŸ“


🌸 NAME 🌸

EVP_MD-BLAKE2 β€” the BLAKE2 EVP_MD implementation, no cap.


πŸ¦‹ SYNOPSIS πŸ¦‹

literally just read the description babe, there's no separate synopsis line here, it's giving "go straight to the vibes" ✨


πŸ’– DESCRIPTION πŸ’–

so this implementation is for computing BLAKE2 digests through the EVP_MD API. that's the whole mood. πŸŽ€

πŸ‘‘ Identities

first things first: this implementation is only available with the default provider. not the other providers, just the default one, okay? and it includes the following varieties:

  • BLAKE2S-256 β€” known names are "BLAKE2S-256" and "BLAKE2s256".
  • BLAKE2B-512 β€” known names are "BLAKE2B-512" and "BLAKE2b512".

those are the exact strings, keep them exactly like that, don't get creative with the casing or she will not be found πŸ’€

πŸ’… Settable Parameters

"BLAKE2B-512" supports the following EVP_MD_CTX_set_params() key, described in "PARAMETERS" in EVP_DigestInit(3):

  • "size" (OSSL_DIGEST_PARAM_SIZE) <unsigned integer> β€” yep, that's the one. 🌟

🧚 Gettable Parameters

this implementation supports the common gettable parameters described in EVP_MD-common(7). nothing extra, nothing wild, just the usual. 🫢

🌈 Settable Context Parameters

the implementation supports the following OSSL_PARAM(3) entries, which are settable for an EVP_MD_CTX with EVP_DigestInit_ex2(3) or EVP_MD_CTX_set_params(3):

  • "size" (OSSL_DIGEST_PARAM_SIZE) <unsigned integer> β€” sets a different digest length for the EVP_DigestFinal(3) output.
⚠️ okay listen, this part matters: the value of the "size" parameter must not exceed the default digest length of the respective BLAKE2 algorithm variants β€” that's 64 for BLAKE2B-512 and 32 for BLAKE2S-256. do not test her. πŸ™ˆ
πŸ’€ also, timing is everything: the parameter must be set with the EVP_DigestInit_ex2(3) call to have an immediate effect. when set with EVP_MD_CTX_set_params(3) it will only have an effect if the EVP_MD_CTX context is reinitialized. so like… read the room and set it at the right moment, bestie. ✨

πŸ”₯ SEE ALSO πŸ”₯

go read those too, iykyk πŸ‘‘


⭐ HISTORY ⭐

  • this functionality was added in OpenSSL 3.0.
  • the variable size support was added in OpenSSL 3.2 for BLAKE2B-512, and in OpenSSL 3.3 for BLAKE2S-256.

she's been evolving, honestly iconic 🌸


Copyright 2020-2024 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>.

like, fr fr, respect the license 🫢


and that's the whole page, bestie! this was version 3.5.0, dated 2026-09-25, and it's the EVP_MD-BLAKE2(7ossl) page β€” slay, go hash something. πŸ’œ

πŸ“¦ where this page comes from