EVP_PKEY_get_default_digest_nid3ssl
Get default signature digest
Usage
#include <openssl/evp.h>int EVP_PKEY_get_default_digest_name(EVP_PKEY *pkey,char *mdname, size_t mdname_sz);int EVP_PKEY_get_default_digest_nid(EVP_PKEY *pkey, int *pnid);
Overview
EVP_PKEY_get_default_digest_name() fills in the default message digest name for the public key signature operations associated with key pkey into mdname, up to at most mdname_sz bytes including the ending NUL byte. The name could be "UNDEF", signifying that a digest must (for return value 2) or may (for return value 1) be left unspecified.
EVP_PKEY_get_default_digest_nid() sets pnid to the default message digest NID for the public key signature operations associated with key pkey. Note that some signature algorithms (i.e. Ed25519 and Ed448) do not use a digest during signing. In this case pnid will be set to NID_undef. This function is only reliable for legacy keys, which are keys with a EVP_PKEY_ASN1_METHOD; these keys have typically been loaded from engines, or created with EVP_PKEY_assign_RSA(3) or similar.
Notes
For all current standard OpenSSL public key algorithms SHA256 is returned.
Return values
EVP_PKEY_get_default_digest_name() and EVP_PKEY_get_default_digest_nid() both return 1 if the message digest is advisory (that is other digests can be used) and 2 if it is mandatory (other digests can not be used). They return 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.
Releases
8 releases since Debian 7 (Wheezy); the text changed 7 times.