summaryrefslogtreecommitdiff
path: root/lib/libcrypto/man/X509_new.3
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libcrypto/man/X509_new.3')
-rw-r--r--lib/libcrypto/man/X509_new.374
1 files changed, 69 insertions, 5 deletions
diff --git a/lib/libcrypto/man/X509_new.3 b/lib/libcrypto/man/X509_new.3
index 705f4b2816d..c451485f609 100644
--- a/lib/libcrypto/man/X509_new.3
+++ b/lib/libcrypto/man/X509_new.3
@@ -1,6 +1,54 @@
-.\" $OpenBSD: X509_new.3,v 1.3 2016/12/03 13:36:03 jmc Exp $
+.\" $OpenBSD: X509_new.3,v 1.4 2016/12/05 18:26:16 schwarze Exp $
+.\" OpenSSL 3a59ad98 Dec 11 00:36:06 2015 +0000
.\"
-.Dd $Mdocdate: December 3 2016 $
+.\" This file was written by Dr. Stephen Henson <steve@openssl.org>.
+.\" Copyright (c) 2002, 2006, 2015 The OpenSSL Project. All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\"
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\"
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in
+.\" the documentation and/or other materials provided with the
+.\" distribution.
+.\"
+.\" 3. All advertising materials mentioning features or use of this
+.\" software must display the following acknowledgment:
+.\" "This product includes software developed by the OpenSSL Project
+.\" for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
+.\"
+.\" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+.\" endorse or promote products derived from this software without
+.\" prior written permission. For written permission, please contact
+.\" openssl-core@openssl.org.
+.\"
+.\" 5. Products derived from this software may not be called "OpenSSL"
+.\" nor may "OpenSSL" appear in their names without prior written
+.\" permission of the OpenSSL Project.
+.\"
+.\" 6. Redistributions of any form whatsoever must retain the following
+.\" acknowledgment:
+.\" "This product includes software developed by the OpenSSL Project
+.\" for use in the OpenSSL Toolkit (http://www.openssl.org/)"
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+.\" EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
+.\" ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+.\" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+.\" OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.Dd $Mdocdate: December 5 2016 $
.Dt X509_NEW 3
.Os
.Sh NAME
@@ -15,24 +63,37 @@
.Fo X509_free
.Fa "X509 *a"
.Fc
+.Ft int
+.Fo X509_up_ref
+.Fa "X509 *a"
+.Fc
.Sh DESCRIPTION
The X509 ASN.1 allocation routines allocate and free an
.Vt X509
structure, which represents an X509 certificate.
.Pp
.Fn X509_new
-allocates and initializes a X509 structure.
+allocates and initializes a X509 structure with reference count 1.
.Pp
.Fn X509_free
-frees up the
+decrements the reference count of the
.Vt X509
structure
-.Fa a .
+.Fa a
+and frees it up if the reference count reaches 0.
If
.Fa a
is a
.Dv NULL
pointer, no action occurs.
+.Pp
+.Fn X509_up_ref
+increments the reference count of
+.Fa a .
+This function is useful if a certificate structure is being used
+by several different operations each of which will free it up after
+use: this avoids the need to duplicate the entire certificate
+structure.
.Sh RETURN VALUES
If the allocation fails,
.Fn X509_new
@@ -41,6 +102,9 @@ returns
and sets an error code that can be obtained by
.Xr ERR_get_error 3 .
Otherwise it returns a pointer to the newly allocated structure.
+.Pp
+.Fn X509_up_ref
+returns 1 for success or 0 for failure.
.Sh SEE ALSO
.Xr d2i_X509 3 ,
.Xr ERR_get_error 3