1X509_NEW(3)                         OpenSSL                        X509_NEW(3)
2
3
4

NAME

6       X509_chain_up_ref, X509_new, X509_free, X509_up_ref - X509 certificate
7       ASN1 allocation functions
8

SYNOPSIS

10        #include <openssl/x509.h>
11
12        X509 *X509_new(void);
13        void X509_free(X509 *a);
14        int X509_up_ref(X509 *a);
15        STACK_OF(X509) *X509_chain_up_ref(STACK_OF(X509) *x);
16

DESCRIPTION

18       The X509 ASN1 allocation routines, allocate and free an X509 structure,
19       which represents an X509 certificate.
20
21       X509_new() allocates and initializes a X509 structure with reference
22       count 1.
23
24       X509_free() decrements the reference count of X509 structure a and
25       frees it up if the reference count is zero. If a is NULL nothing is
26       done.
27
28       X509_up_ref() increments the reference count of a.
29
30       X509_chain_up_ref() increases the reference count of all certificates
31       in chain x and returns a copy of the stack.
32

NOTES

34       The function X509_up_ref() if useful if a certificate structure is
35       being used by several different operations each of which will free it
36       up after use: this avoids the need to duplicate the entire certificate
37       structure.
38
39       The function X509_chain_up_ref() doesn't just up the reference count of
40       each certificate it also returns a copy of the stack, using
41       sk_X509_dup(), but it serves a similar purpose: the returned chain
42       persists after the original has been freed.
43

RETURN VALUES

45       If the allocation fails, X509_new() returns NULL and sets an error code
46       that can be obtained by ERR_get_error(3).  Otherwise it returns a
47       pointer to the newly allocated structure.
48
49       X509_up_ref() returns 1 for success and 0 for failure.
50
51       X509_chain_up_ref() returns a copy of the stack or NULL if an error
52       occurred.
53

SEE ALSO

55       d2i_X509(3), ERR_get_error(3), X509_CRL_get0_by_serial(3),
56       X509_get0_signature(3), X509_get_ext_d2i(3),
57       X509_get_extension_flags(3), X509_get_pubkey(3),
58       X509_get_subject_name(3), X509_get_version(3),
59       X509_NAME_add_entry_by_txt(3), X509_NAME_ENTRY_get_object(3),
60       X509_NAME_get_index_by_NID(3), X509_NAME_print_ex(3), X509_sign(3),
61       X509V3_get_d2i(3), X509_verify_cert(3)
62
64       Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved.
65
66       Licensed under the OpenSSL license (the "License").  You may not use
67       this file except in compliance with the License.  You can obtain a copy
68       in the file LICENSE in the source distribution or at
69       <https://www.openssl.org/source/license.html>.
70
71
72
731.1.1q                            2023-07-20                       X509_NEW(3)
Impressum