X509_NAME_HASH(3) | Library Functions Manual | X509_NAME_HASH(3)

# NAME

`X509_NAME_hash`, `X509_issuer_name_hash`, `X509_subject_name_hash`, `X509_NAME_hash_old`, `X509_issuer_name_hash_old`, `X509_subject_name_hash_old` — calculate SHA-1 or MD5 hashes of X.501 Name objects

# SYNOPSIS

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

unsigned long
`X509_NAME_hash`(X509_NAME *name);

unsigned long
`X509_issuer_name_hash`(X509 *x);

unsigned long
`X509_subject_name_hash`(X509 *x);

unsigned long
`X509_NAME_hash_old`(X509_NAME *name);

unsigned long
`X509_issuer_name_hash_old`(X509 *x);

unsigned long
`X509_subject_name_hash_old`(X509 *x);

# DESCRIPTION

`X509_NAME_hash`() calculates an SHA1(3) hash of the DER-encoded form of name. It is for example used by X509_LOOKUP_hash_dir(3) to locate certificate files in the file system.

`X509_issuer_name_hash`() and `X509_subject_name_hash`() are wrappers to calculate this hash of the issuer or subject name of x, respectively.

`X509_NAME_hash_old`(), `X509_issuer_name_hash_old`(), and `X509_subject_name_hash_old`() are variants that use MD5 instead of SHA-1.

# RETURN VALUES

These functions return the hash value or 0 if an error occurs.

# SEE ALSO

i2d_X509_NAME(3), X509_get_subject_name(3), X509_LOOKUP_new(3), X509_NAME_digest(3), X509_NAME_new(3)

# HISTORY

`X509_subject_name_hash`() first appeared in SSLeay 0.4.0, `X509_issuer_name_hash`() in SSLeay 0.5.1, and `X509_NAME_hash`() in SSLeay 0.8.0. They were switched to hashing the DER representation of the name rather than an ASCII rendering in SSLeay 0.9.0 and have all been available since OpenBSD 2.4.

They were switched to using SHA-1 instead of MD5 in OpenSSL 1.0.0 and in OpenBSD 4.9.

`X509_NAME_hash_old`(), `X509_issuer_name_hash_old`(), and `X509_subject_name_hash_old`() first appeared in OpenSSL 1.0.0 and have been available since OpenBSD 4.9.

June 8, 2025 | Debian