X509_GET_SERIALNUMBER(3SSL)
π X509_GET_SERIALNUMBER π
okay bestie, so this is the OpenSSL page about peeking at (and setting!) certificate serial numbers β in the 3SSL manual, fr fr. Serial numbers are literally the lil unique ID every cert gets, and these functions are how you grab 'em or swap 'em. Let's go π¦
β¨ NAME β¨
X509_get_serialNumber, X509_get0_serialNumber, X509_set_serialNumber, X509_ACERT_get0_serialNumber, X509_ACERT_set1_serialNumber β get or set certificate serial number π
πΈ SYNOPSIS πΈ
#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);
#include <openssl/x509_acert.h>
ASN1_INTEGER *X509_ACERT_get0_serialNumber(X509_ACERT *x);
int X509_ACERT_set1_serialNumber(X509_ACERT *x, ASN1_INTEGER *serial);
π DESCRIPTION π
X509_get_serialNumber() hands you back the serial number of certificate x as an ASN1_INTEGER structure, which you can likeβ¦ examine or initialise, whatever you need. The value it returns is an internal pointer, so bestie, it MUST NOT be freed after the call. Do not free it. Leave it alone. It is not yours. π
X509_get0_serialNumber() is the exact same thing as X509_get_serialNumber() except it takes a const parameter and gives back a const result. Const-correct queen π
X509_set_serialNumber() sets the serial number of certificate x to serial. A copy of the serial number gets used internally, so serial should be freed up after use β yes, even though it's a set function, you still own your copy π
X509_ACERT_get0_serialNumber() does the same operation as X509_get_serialNumber() but for attribute certificates. Same vibes, different cert type β¨
X509_ACERT_set1_serialNumber() does the same operation as X509_set_serialNumber() but for attribute certificates. Slay π«Ά
π RETURN VALUES π
X509_get_serialNumber(),X509_get0_serialNumber()andX509_ACERT_get0_serialNumber()all return a pointer to anASN1_INTEGERstructure πX509_set_serialNumber()andX509_ACERT_set1_serialNumber()return1for success and0for failure. Two outcomes, no in-between, icons only π
π¦ SEE ALSO π¦
d2i_X509(3)ERR_get_error(3)X509_CRL_get0_by_serial(3)X509_get0_signature(3)X509_get_ext_d2i(3)X509_get_extension_flags(3)X509_get_pubkey(3)X509_get_subject_name(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)X509V3_get_d2i(3)X509_verify_cert(3)
β HISTORY β
okay so the timeline is giving lore:
X509_get_serialNumber()andX509_set_serialNumber()β available in all versions of OpenSSL. OG behavior, been here since forever, no cap πX509_get0_serialNumber()β added in OpenSSL 1.1.0 β¨X509_ACERT_get0_serialNumber()andX509_ACERT_set1_serialNumber()β added in OpenSSL 3.4, the new babies on the block πΈ
π COPYRIGHT π
Copyright 2016-2024 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy in the file LICENSE in the source distribution or at <https://www.openssl.org/source/license.html>.
bestie, that's a real license, please actually read it before you ship anything π not me being your legal conscience
mwah π that's the whole page! this gorgeousness is from OpenSSL 4.0.3, dated 2026-09-29 β go forth and read your serial numbers, main character π§π
π¦ where this page comes from
- ubuntu stonking: libssl-doc 4.0.3-1ubuntu1 Β· Apache-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms