EVP_MD-COMMON(7SSL)

πŸ’– EVP_MD-COMMON(7SSL) πŸ’–

okay bestie, welcome to the EVP_MD-COMMON(7SSL) moment β€” this is the page that spills the tea on the OpenSSL EVP_MD implementations and all the stuff they have in common. it's giving "shared family group chat" energy and honestly? iconic. πŸ¦‹


✨ NAME ✨

EVP_MD-common β€” the OpenSSL EVP_MD implementations, and the common things they all agree on πŸ’…


🌸 DESCRIPTION 🌸

so like, every single OpenSSL EVP_MD implementation out there understands the OSSL_PARAM(3) entries that you can get with EVP_MD_get_params(3) β€” no cap, all of them. and on top of that, they also get these ones:

  • "blocksize" (OSSL_DIGEST_PARAM_BLOCK_SIZE) <unsigned integer> β€” okay so this is the digest block size, literally just that. the length of the "blocksize" parameter should not exceed that of a size_t, bestie, don't push it.

you can also grab this value with EVP_MD_get_block_size(3) if that's more your vibe. πŸŽ€

  • "size" (OSSL_DIGEST_PARAM_SIZE) <unsigned integer> β€” this one is the digest output size. and again, the length of the "size" parameter should not exceed that of a size_t. respect the limits fr fr.

this value can also be retrieved with EVP_MD_get_size(3). πŸ’–

  • "flags" (OSSL_DIGEST_PARAM_FLAGS) <unsigned integer> β€” a whole little collection of diverse flags that describe exceptional behaviour for the digest. very main character.

the length of the "flags" parameter should equal that of an unsigned long int. πŸ‘‘

several flags can be or'd together, so you can stack them like accessories. the available flags are:

  • EVP_MD_FLAG_ONESHOT β€” this digest method can only handle one block of input. one (1) block. that's it. periodt.
  • EVP_MD_FLAG_XOF β€” this digest method is an extensible-output function (XOF) and it supports the EVP_MD_CTRL_XOF_LEN control. slay. ✨
  • EVP_MD_FLAG_DIGALGID_NULL β€” when you're setting up a DigestAlgorithmIdentifier, this flag will have the parameter set to NULL by default. use this for PKCS#1. note: if it's combined with EVP_MD_FLAG_DIGALGID_ABSENT, the latter will override. 😭
  • EVP_MD_FLAG_DIGALGID_ABSENT β€” when setting up a DigestAlgorithmIdentifier, this flag will have the parameter be left absent by default. note: if it's combined with EVP_MD_FLAG_DIGALGID_NULL, the latter will be overridden. the drama!
  • EVP_MD_FLAG_DIGALGID_CUSTOM β€” custom DigestAlgorithmIdentifier handling via ctrl, with EVP_MD_FLAG_DIGALGID_ABSENT as default. note: if combined with EVP_MD_FLAG_DIGALGID_NULL, the latter will be overridden. currently unused, so she's just vibing in the corner. πŸ™ˆ
  • EVP_MD_FLAG_FIPS β€” this digest method is suitable for use in FIPS mode. currently unused. also just vibing. 🫢

this value can also be retrieved with EVP_MD_get_flags(3). πŸ”₯

🧚 FIPS indicator 🧚

digest implementations in the OpenSSL FIPS provider make the following parameter available with EVP_MD_CTX_get_params(3):

  • "fips-indicator" (OSSL_DIGEST_PARAM_FIPS_APPROVED_INDICATOR) <integer> β€” returns 1 if the operation is FIPS approved, or 0 otherwise. see "FIPS indicators" in fips_module(7) for more info, bestie. πŸ’œ

🌈 SEE ALSO 🌈


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


aaaaand that's the whole page, no notes πŸ’… this was EVP_MD-COMMON(7SSL) from 4.0.3, dated 2026-09-29 β€” go forth and digest, bestie, you ate πŸ“βœ¨

πŸ“¦ where this page comes from