libressl-EVP_PKEY_get_default_digest_nid3
Get default signature digest
Usage
Crypto Library (libcrypto, -lcrypto)
#include <openssl/evp.h>
int
EVP_PKEY_get_default_digest_nid(EVP_PKEY *pkey, int *pnid);
Overview
The EVP_PKEY_get_default_digest_nid() function sets *pnid to the default message digest NID for the public key signature operations associated with pkey.
Some signature algorithms, for example EVP_PKEY_ED25519, do not use a digest during signing. In this case, *pnid is set to NID_undef.
Support for the following public key algorithms is built into the library:
| EVP_PKEY_base_id(3) | *pnid | return value |
| EVP_PKEY_DSA | NID_sha1 | mandatory |
| EVP_PKEY_EC | NID_sha1 | mandatory |
| EVP_PKEY_ED25519 | NID_undef | mandatory |
| EVP_PKEY_HMAC | NID_sha1 | advisory |
| EVP_PKEY_RSA | NID_sha256 | advisory |
Return values
The EVP_PKEY_get_default_digest_nid() function returns 1 if the message digest is advisory (that is other digests can be used) and 2 if it is mandatory (other digests cannot be used). It returns 0 or a negative value for failure. In particular, a return value of -2 indicates the operation is not supported by the public key algorithm.