EVP_PKEY_GET_DEFAULT_DIG(3) Library Functions ManualEVP_PKEY_GET_DEFAULT_DIG(3)
NAME
EVP_PKEY_get_default_digest_nid — get default signature digest
SYNOPSIS
#include <openssl/evp.h>
int
EVP_PKEY_get_default_digest_nid(EVP_PKEY *pkey, int *pnid);
DESCRIPTION
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_GOSTIMIT | |
NID_id_Gost28147_89_MAC | |
mandatory | |
EVP_PKEY_GOSTR01 | |
variable | |
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.
SEE ALSO
EVP_PKEY_asn1_set_ctrl(3), EVP_PKEY_CTX_ctrl(3), EVP_PKEY_CTX_new(3), EVP_PKEY_new(3), EVP_PKEY_sign(3), EVP_PKEY_verify(3), EVP_PKEY_verify_recover(3)
HISTORY
EVP_PKEY_get_default_digest_nid() first appeared in OpenSSL 1.0.0 and has been available since OpenBSD 4.9. GNU September 13, 2023EVP_PKEY_GET_DEFAULT_DIGEST_NID(3)