Skip to content

EVP_MD-common

NAME

EVP_MD-common - The OpenSSL EVP_MD implementations, common things

DESCRIPTION

All the OpenSSL EVP_MD implementations understand the following OSSL_PARAM(3) entries that are gettable with EVP_MD_get_params(3), as well as these:

  • "blocksize" (OSSL_DIGEST_PARAM_BLOCK_SIZE) <unsigned integer>

    The digest block size. The length of the "blocksize" parameter should not exceed that of a size_t.

    This value can also be retrieved with EVP_MD_get_block_size(3).

  • "size" (OSSL_DIGEST_PARAM_SIZE) <unsigned integer>

    The digest output size. The length of the "size" parameter should not exceed that of a size_t.

    This value can also be retrieved with EVP_MD_get_size(3).

  • "flags" (OSSL_DIGEST_PARAM_FLAGS) <unsigned integer>

    Diverse flags that describe exceptional behaviour for the digest.

    The length of the "flags" parameter should equal that of an unsigned long int.

    Several flags can be or'd together. The available flags are:

    • EVP_MD_FLAG_ONESHOT

      This digest method can only handle one block of input.

    • EVP_MD_FLAG_XOF

      This digest method is an extensible-output function (XOF) and supports the EVP_MD_CTRL_XOF_LEN control.

    • EVP_MD_FLAG_DIGALGID_NULL

      When setting up a DigestAlgorithmIdentifier, this flag will have the parameter set to NULL by default. Use this for PKCS#1. Note: if 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 combined with EVP_MD_FLAG_DIGALGID_NULL, the latter will be overridden.

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

    • EVP_MD_FLAG_FIPS

      This digest method is suitable for use in FIPS mode. Currently unused.

    This value can also be retrieved with EVP_MD_get_flags(3).

SEE ALSO

"PARAMETERS" in EVP_DigestInit(3), EVP_MD_get_params(3), provider-digest(7)

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.