EVP_MD-BLAKE2(7SSL)

πŸ’– EVP_MD-BLAKE2 β€” bestie's guide to the BLAKE2 vibe πŸ’–

okay so real talk, this is the EVP_MD-BLAKE2</p> page from the OpenSSL manual, section 7SSL. it's giving "hash girlie explains her whole personality in one doc" and honestly? we ate. 🫢


✨ NAME ✨

EVP_MD-BLAKE2 β€” the BLAKE2 EVP_MD implementation. that's it, that's the name, no cap. πŸ’…


🌸 DESCRIPTION 🌸

so basically we're out here supporting computing BLAKE2 digests through the EVP_MD API. that's the whole assignment. main character behavior only. πŸ‘‘

πŸ¦‹ Identities πŸ¦‹

heads up bestie: this implementation is only available with the default provider. no other provider is invited to this party. and it includes these varieties:

  • BLAKE2S-256 β€” the known names are "BLAKE2S-256" and "BLAKE2s256". yeah she answers to both, she's versatile like that. ✨
  • BLAKE2B-512 β€” the known names are "BLAKE2B-512" and "BLAKE2b512". same energy, bigger digits. πŸ”₯

πŸŽ€ Settable Parameters πŸŽ€

"BLAKE2B-512"</p> supports the following EVP_MD_CTX_set_params() key, which is described in "PARAMETERS" in EVP_DigestInit(3):

  • "size" (OSSL_DIGEST_PARAM_SIZE) <unsigned integer>

that's the one key, periodt.

πŸ’œ Gettable Parameters πŸ’œ

this implementation supports all the common gettable parameters, and you can find those described in EVP_MD-common(7). nothing spicy to add here, she's just standard. πŸ™ˆ

🌈 Settable Context Parameters 🌈

the implementation supports the following OSSL_PARAM(3) entries, and these 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. and listen, there's a rule here: 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. βœ‹
🚨 okay this part matters, bestie, don't skip it: the parameter must be set with the EVP_DigestInit_ex2(3) call to have an immediate effect. if you set it with EVP_MD_CTX_set_params(3) instead, it will have an effect only if the EVP_MD_CTX context is reinitialized. so like… timing is everything, iykyk. πŸ’€

πŸ” SEE ALSO πŸ”

go read those too, they're the supporting cast and they understood the assignment. 🫢


⭐ 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 grew up, we love a glow-up. 🌱

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


and that's the whole page, no crumbs left. πŸ’– signing off from version 4.0.3</p>, dated 2026-09-29</p>, still serving EVP_MD-BLAKE2(7SSL) realness. slay, hydrate, and always read your license. πŸŽ€πŸ¦‹βœ¨

πŸ“¦ where this page comes from