EVP_BLAKE2B512(3ossl)

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

πŸ’™ EVP_BLAKE2B512 πŸ’™

okay so bestie, this is the 3ossl manual page for EVP_blake2b512 and EVP_blake2s256 β€” aka BLAKE2 For EVP ✨ like, the whole vibe of this page is "how do I get BLAKE2 into my EVP life," and honestly? iconic question. let's get into it 🫢


🌸 SYNOPSIS 🌸

#include <openssl/evp.h>

const EVP_MD *EVP_blake2b512(void);
const EVP_MD *EVP_blake2s256(void);

two little functions, both returning const EVP_MD *, both taking void (so, nothing β€” they're that low-maintenance πŸ’…). we love a no-argument queen.


πŸ¦‹ DESCRIPTION πŸ¦‹

so BLAKE2 is literally an improved version of BLAKE β€” and BLAKE was submitted to the NIST SHA-3 algorithm competition, which is a whole mood. the BLAKE2s and BLAKE2b algorithms are described in RFC 7693, no cap.

  • EVP_blake2s256() β€” the BLAKE2s algorithm that produces a 256-bit output from a given input πŸ’–
  • EVP_blake2b512() β€” the BLAKE2b algorithm that produces a 512-bit output from a given input πŸ”₯

so the s one gives you 256 bits of output, and the b one gives you 512 bits. the naming is giving "self-explanatory, actually" and we're obsessed πŸ‘‘


πŸŽ€ NOTES πŸŽ€

okay listen, this part matters:

developers should be aware of the negative performance implications of calling these functions multiple times 😭 like, calling them over and over is not the serve you think it is. instead, you should consider using EVP_MD_fetch(3) with EVP_MD-BLAKE2(7). see "Performance" in crypto(7) for further information, bestie β€” it's all spelled out there πŸ’€

also, both algorithms support a variable-length digest, but that's only available through EVP_MD-BLAKE2(7). so like… the variable-length thing is not on the menu here. not through these functions. periodt. πŸ™ˆ


⭐ RETURN VALUES ⭐

these functions return a 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 where the whole struct situation is explained iykyk.


🌈 CONFORMING TO 🌈

RFC 7693. that's it, that's the line 🧚


πŸ‘‘ SEE ALSO πŸ‘‘

go read those too, fr fr πŸ“š


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

lowkey important: the license thing is real β€” don't just vibe past it 🫢

and that's the page, bestie! πŸ“ this was 3.5.0, dated 2026-09-25, and it's an EVP_BLAKE2B512(3ossl) situation from start to finish. go hash something gorgeous πŸ’–βœ¨πŸ¦‹

πŸ“¦ where this page comes from