99 lines
3 KiB
Groff
99 lines
3 KiB
Groff
.\" $OpenBSD: X509_get_pubkey_parameters.3,v 1.2 2021/11/26 13:35:10 schwarze Exp $
|
|
.\"
|
|
.\" Copyright (c) 2021 Ingo Schwarze <schwarze@openbsd.org>
|
|
.\"
|
|
.\" Permission to use, copy, modify, and distribute this software for any
|
|
.\" purpose with or without fee is hereby granted, provided that the above
|
|
.\" copyright notice and this permission notice appear in all copies.
|
|
.\"
|
|
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
.\"
|
|
.Dd $Mdocdate: November 26 2021 $
|
|
.Dt X509_GET_PUBKEY_PARAMETERS 3
|
|
.Os
|
|
.Sh NAME
|
|
.Nm X509_get_pubkey_parameters
|
|
.Nd copy public key parameters from a chain
|
|
.Sh SYNOPSIS
|
|
.In openssl/x509.h
|
|
.Ft int
|
|
.Fo X509_get_pubkey_parameters
|
|
.Fa "EVP_PKEY *pkey"
|
|
.Fa "STACK_OF(X509) *chain"
|
|
.Fc
|
|
.Sh DESCRIPTION
|
|
.Fn X509_get_pubkey_parameters
|
|
copies public key parameters from the first appropriate certificate in the
|
|
.Fa chain .
|
|
.Pp
|
|
If
|
|
.Fa pkey
|
|
is not
|
|
.Dv NULL
|
|
and already contains complete public key parameters or uses an
|
|
algorithm that does not use any parameters, no action occurs and
|
|
the function indicates success without inspecting the existing
|
|
parameters, without inspecting the
|
|
.Fa chain ,
|
|
and without comparing any parameters.
|
|
.Pp
|
|
Otherwise, all public key parameters are copied
|
|
from the first certificate in the
|
|
.Fa chain
|
|
that contains complete public key parameters
|
|
to each certificate preceding it in the
|
|
.Fa chain .
|
|
Unless
|
|
.Fa pkey
|
|
is a
|
|
.Dv NULL
|
|
pointer, the same parameters are also copied to
|
|
.Fa pkey .
|
|
.Sh RETURN VALUES
|
|
.Fn X509_get_pubkey_parameters
|
|
returns 1 for success or 0 for failure.
|
|
.Sh ERRORS
|
|
The following diagnostics can be retrieved with
|
|
.Xr ERR_get_error 3 ,
|
|
.Xr ERR_GET_REASON 3 ,
|
|
and
|
|
.Xr ERR_reason_error_string 3 :
|
|
.Bl -tag -width Ds
|
|
.It Dv X509_R_UNABLE_TO_GET_CERTS_PUBLIC_KEY Qq unable to get certs public key
|
|
Retrieving the public key from a certificate in the
|
|
.Fa chain
|
|
failed before a certificate containing complete public key parameters
|
|
could be found.
|
|
.It Xo
|
|
.Dv X509_R_UNABLE_TO_FIND_PARAMETERS_IN_CHAIN
|
|
.Qq unable to find parameters in chain
|
|
.Xc
|
|
None of the certificates in the chain
|
|
contain complete public key parameters.
|
|
.El
|
|
.Sh SEE ALSO
|
|
.Xr EVP_PKEY_copy_parameters 3 ,
|
|
.Xr EVP_PKEY_new 3 ,
|
|
.Xr X509_get_pubkey 3 ,
|
|
.Xr X509_new 3
|
|
.Sh HISTORY
|
|
.Fn X509_get_pubkey_parameters
|
|
first appeared in SSLeay 0.8.0 and has been available since
|
|
.Ox 2.4 .
|
|
.Sh CAVEATS
|
|
If
|
|
.Fn X509_get_pubkey_parameters
|
|
fails and returns 0, a part of the parameters may or may not have
|
|
been copied before the failure was detected, whereas other parts of
|
|
.Fa pkey
|
|
and
|
|
.Fa chain
|
|
may remain unchanged.
|
|
So in case of failure, the state of the arguments may change
|
|
and possibly become inconsistent.
|