X509_GET_SERIALNUMBER(3) | Library Functions Manual | X509_GET_SERIALNUMBER(3)

# NAME

`X509_get_serialNumber`, `X509_get0_serialNumber`, `X509_set_serialNumber` — get or set certificate serial number

# SYNOPSIS

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

ASN1_INTEGER *
`X509_get_serialNumber`(X509 *x);

const ASN1_INTEGER *
`X509_get0_serialNumber`(const X509 *x);

int
`X509_set_serialNumber`(X509 *x, ASN1_INTEGER *serial);

# DESCRIPTION

`X509_get_serialNumber`() returns the serial number of certificate x as an ASN1_INTEGER structure which can be examined or initialised. The value returned is an internal pointer which must not be freed up after the call.

`X509_get0_serialNumber`() does the same except that it accepts a constant argument and returns a constant result.

`X509_set_serialNumber`() sets the serial number of certificate x to serial. A copy of the serial number is used internally so serial should be freed up after use.

# RETURN VALUES

`X509_get_serialNumber`() and `X509_get0_serialNumber`() return a pointer to an ASN1_INTEGER structure.

`X509_set_serialNumber`() returns 1 for success or 0 for failure. In some cases of failure, the reason can be determined with ERR_get_error(3).

# SEE ALSO

d2i_X509(3), X509_CRL_get0_by_serial(3), X509_get_pubkey(3), X509_NAME_add_entry_by_txt(3), X509_NAME_ENTRY_get_object(3), X509_NAME_get_index_by_NID(3), X509_NAME_print_ex(3), X509_new(3), X509_sign(3), X509_verify_cert(3), X509V3_get_d2i(3)

# HISTORY

`X509_get_serialNumber`() and `X509_set_serialNumber`() first appeared in SSLeay 0.6.5 and have been available since OpenBSD 2.4.

`X509_get0_serialNumber`() first appeared in OpenSSL 1.1.0 and has been available since OpenBSD 6.4.

June 8, 2025 | Debian