Add copyright to manpages
[openssl.git] / doc / crypto / X509_new.pod
1 =pod
2
3 =head1 NAME
4
5 X509_new, X509_free, X509_up_ref - X509 certificate ASN1 allocation functions
6
7 =head1 SYNOPSIS
8
9  #include <openssl/x509.h>
10
11  X509 *X509_new(void);
12  void X509_free(X509 *a);
13  int X509_up_ref(X509 *a);
14  STACK_OF(X509) *X509_chain_up_ref(STACK_OF(X509) *x);
15
16 =head1 DESCRIPTION
17
18 The X509 ASN1 allocation routines, allocate and free an
19 X509 structure, which represents an X509 certificate.
20
21 X509_new() allocates and initializes a X509 structure with reference count
22 B<1>.
23
24 X509_free() decrements the reference count of B<X509> structure B<a> and
25 frees it up if the reference count is zero. If B<a> is NULL nothing is done.
26
27 X509_up_ref() increments the reference count of B<a>.
28
29 X509_chain_up_ref() increases the reference count of all certificates in
30 chain B<x> and returns a copy of the stack.
31
32 =head1 NOTES
33
34 The function X509_up_ref() if useful if a certificate structure is being
35 used by several different operations each of which will free it up after
36 use: this avoids the need to duplicate the entire certificate structure.
37
38 The function X509_chain_up_ref() doesn't just up the reference count of
39 each certificate it also returns a copy of the stack, using sk_X509_dup(),
40 but it serves a similar purpose: the returned chain persists after the
41 original has been freed.
42
43 =head1 RETURN VALUES
44
45 If the allocation fails, X509_new() returns B<NULL> and sets an error
46 code that can be obtained by L<ERR_get_error(3)>.
47 Otherwise it returns a 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 B<NULL> if an error
52 occurred.
53
54 =head1 SEE ALSO
55
56 L<d2i_X509(3)>,
57 L<ERR_get_error(3)>,
58 L<X509_CRL_get0_by_serial(3)>,
59 L<X509_get0_signature(3)>,
60 L<X509_get_ext_d2i(3)>,
61 L<X509_get_extension_flags(3)>,
62 L<X509_get_pubkey(3)>,
63 L<X509_get_subject_name(3)>,
64 L<X509_get_version(3)>,
65 L<X509_NAME_add_entry_by_txt(3)>,
66 L<X509_NAME_ENTRY_get_object(3)>,
67 L<X509_NAME_get_index_by_NID(3)>,
68 L<X509_NAME_print_ex(3)>,
69 L<X509_sign(3)>,
70 L<X509V3_get_d2i(3)>,
71 L<X509_verify_cert(3)>
72
73 =cut
74
75 =head1 COPYRIGHT
76
77 Copyright 2002-2016 The OpenSSL Project Authors. All Rights Reserved.
78
79 Licensed under the OpenSSL license (the "License").  You may not use
80 this file except in compliance with the License.  You can obtain a copy
81 in the file LICENSE in the source distribution or at
82 L<https://www.openssl.org/source/license.html>.
83
84 =cut