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