libressl-EVP_PKEY_get_default_digest_nid(3)

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)*pnidreturn value
EVP_PKEY_DSANID_sha1mandatory
EVP_PKEY_ECNID_sha1mandatory
EVP_PKEY_ED25519NID_undefmandatory
EVP_PKEY_HMACNID_sha1advisory
EVP_PKEY_RSANID_sha256advisory

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.

History

EVP_PKEY_get_default_digest_nid() first appeared in OpenSSL 1.0.0 and has been available since OpenBSD 4.9.

From libressl 4.4.0-1 in Arch Linux 2026-11-01. Parsed by carta from the page's mdoc source.