ASN1_ITEM_DIGEST(3) | Library Functions Manual | ASN1_ITEM_DIGEST(3)

# NAME

`ASN1_item_digest` — DER-encode and hash an ASN.1 value

# SYNOPSIS

library “libcrypto”
`#include <openssl/x509.h>`

int
`ASN1_item_digest`(const ASN1_ITEM *it, const EVP_MD *type, void *val_in, unsigned char *md, unsigned int *s);

# DESCRIPTION

`ASN1_item_digest`() assumes that val_in is an ASN1_VALUE of the type specified by it, encodes it into DER format by calling ASN1_item_i2d(3), hashes the resulting byte array using the digest type by calling EVP_Digest(3), places the digest value into *md, and, unless s is `NULL`, places the length in bytes of the digest into *s. Providing a buffer *md large enough to contain the digest is the responsibility of the caller; providing a buffer of `EVP_MAX_MD_SIZE` bytes is recommended.

# RETURN VALUES

`ASN1_item_digest`() returns 1 for success or 0 if encoding or hashing fails.

# SEE ALSO

ASN1_item_i2d(3), ASN1_item_sign(3), EVP_Digest(3)

# HISTORY

`ASN1_item_digest`() first appeared in OpenSSL 0.9.7 and has been available since OpenBSD 3.1.

June 8, 2025 | Debian