1=pod 2 3=head1 NAME 4 5X509_get_serialNumber, 6X509_get0_serialNumber, 7X509_set_serialNumber, 8X509_ACERT_get0_serialNumber, 9X509_ACERT_set1_serialNumber 10- get or set certificate serial number 11 12=head1 SYNOPSIS 13 14 #include <openssl/x509.h> 15 16 ASN1_INTEGER *X509_get_serialNumber(X509 *x); 17 const ASN1_INTEGER *X509_get0_serialNumber(const X509 *x); 18 int X509_set_serialNumber(X509 *x, ASN1_INTEGER *serial); 19 20 #include <openssl/x509_acert.h> 21 22 ASN1_INTEGER *X509_ACERT_get0_serialNumber(X509_ACERT *x); 23 int X509_ACERT_set1_serialNumber(X509_ACERT *x, ASN1_INTEGER *serial); 24 25=head1 DESCRIPTION 26 27X509_get_serialNumber() returns the serial number of certificate B<x> as an 28B<ASN1_INTEGER> structure which can be examined or initialised. The value 29returned is an internal pointer which B<MUST NOT> be freed up after the call. 30 31X509_get0_serialNumber() is the same as X509_get_serialNumber() except it 32accepts a const parameter and returns a const result. 33 34X509_set_serialNumber() sets the serial number of certificate B<x> to 35B<serial>. A copy of the serial number is used internally so B<serial> should 36be freed up after use. 37 38X509_ACERT_get0_serialNumber() performs the same operation as 39X509_get_serialNumber() for attribute certificates. 40 41X509_ACERT_set1_serialNumber() performs the same operation as 42X509_set_serialNumber() for attribute certificates. 43 44=head1 RETURN VALUES 45 46X509_get_serialNumber(), X509_get0_serialNumber() and 47X509_ACERT_get0_serialNumber() return a pointer to an B<ASN1_INTEGER> structure. 48 49X509_set_serialNumber() and X509_ACERT_set1_serialNumber() return 1 for success 50and 0 for failure. 51 52=head1 SEE ALSO 53 54L<d2i_X509(3)>, 55L<ERR_get_error(3)>, 56L<X509_CRL_get0_by_serial(3)>, 57L<X509_get0_signature(3)>, 58L<X509_get_ext_d2i(3)>, 59L<X509_get_extension_flags(3)>, 60L<X509_get_pubkey(3)>, 61L<X509_get_subject_name(3)>, 62L<X509_NAME_add_entry_by_txt(3)>, 63L<X509_NAME_ENTRY_get_object(3)>, 64L<X509_NAME_get_index_by_NID(3)>, 65L<X509_NAME_print_ex(3)>, 66L<X509_new(3)>, 67L<X509_sign(3)>, 68L<X509V3_get_d2i(3)>, 69L<X509_verify_cert(3)> 70 71=head1 HISTORY 72 73The X509_get_serialNumber() and X509_set_serialNumber() functions are 74available in all versions of OpenSSL. 75The X509_get0_serialNumber() function was added in OpenSSL 1.1.0. 76The X509_ACERT_get0_serialNumber() and X509_ACERT_set1_serialNumber() 77functions were added in OpenSSL 3.4. 78 79=head1 COPYRIGHT 80 81Copyright 2016-2024 The OpenSSL Project Authors. All Rights Reserved. 82 83Licensed under the Apache License 2.0 (the "License"). You may not use 84this file except in compliance with the License. You can obtain a copy 85in the file LICENSE in the source distribution or at 86L<https://www.openssl.org/source/license.html>. 87 88=cut 89