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