|  | =pod | 
|  |  | 
|  | =head1 NAME | 
|  |  | 
|  | X509V3_set_ctx, | 
|  | X509V3_set_issuer_pkey - X.509 v3 extension generation utilities | 
|  |  | 
|  | =head1 SYNOPSIS | 
|  |  | 
|  | #include <openssl/x509v3.h> | 
|  |  | 
|  | void X509V3_set_ctx(X509V3_CTX *ctx, X509 *issuer, X509 *subject, | 
|  | X509_REQ *req, X509_CRL *crl, int flags); | 
|  | int X509V3_set_issuer_pkey(X509V3_CTX *ctx, EVP_PKEY *pkey); | 
|  |  | 
|  | =head1 DESCRIPTION | 
|  |  | 
|  | X509V3_set_ctx() fills in the basic fields of I<ctx> of type B<X509V3_CTX>, | 
|  | providing details potentially needed by functions producing X509 v3 extensions. | 
|  | These may make use of fields of the certificate I<subject>, the certification | 
|  | request I<req>, or the certificate revocation list I<crl>. | 
|  | At most one of these three parameters can be non-NULL. | 
|  | When constructing the subject key identifier of a certificate by computing a | 
|  | hash value of its public key, the public key is taken from I<subject> or I<req>. | 
|  | Similarly, when constructing subject alternative names from any email addresses | 
|  | contained in a subject DN, the subject DN is taken from I<subject> or I<req>. | 
|  | If I<subject> or I<crl> is provided, I<issuer> should point to its issuer, for | 
|  | instance as a reference for generating the authority key identifier extension. | 
|  | I<issuer> may be the same pointer value as I<subject> (which usually is an | 
|  | indication that the I<subject> certificate is self-issued or even self-signed). | 
|  | In this case the fallback source for generating the authority key identifier | 
|  | extension will be taken from any value provided using X509V3_set_issuer_pkey(). | 
|  | I<flags> may be 0 | 
|  | or contain B<X509V3_CTX_TEST>, which means that just the syntax of | 
|  | extension definitions is to be checked without actually producing any extension, | 
|  | or B<X509V3_CTX_REPLACE>, which means that each X.509v3 extension added as | 
|  | defined in some configuration section shall replace any already existing | 
|  | extension with the same OID. | 
|  |  | 
|  | X509V3_set_issuer_pkey() explicitly sets the issuer private key of | 
|  | the subject certificate that has been provided in I<ctx>. | 
|  | This should be done in case the I<issuer> and I<subject> arguments to | 
|  | X509V3_set_ctx() have the same pointer value | 
|  | to provide fallback data for the authority key identifier extension. | 
|  |  | 
|  | =head1 RETURN VALUES | 
|  |  | 
|  | X509V3_set_ctx() and X509V3_set_issuer_pkey() | 
|  | return 1 on success and 0 on error. | 
|  |  | 
|  | =head1 SEE ALSO | 
|  |  | 
|  | L<X509_add_ext(3)> | 
|  |  | 
|  | =head1 HISTORY | 
|  |  | 
|  | X509V3_set_issuer_pkey() was added in OpenSSL 3.0. | 
|  |  | 
|  | CTX_TEST was deprecated in OpenSSL 3.0; use X509V3_CTX_TEST instead. | 
|  |  | 
|  | =head1 COPYRIGHT | 
|  |  | 
|  | Copyright 2015-2021 The OpenSSL Project Authors. All Rights Reserved. | 
|  |  | 
|  | Licensed under the Apache License 2.0 (the "License").  You may not use | 
|  | this file except in compliance with the License.  You can obtain a copy | 
|  | in the file LICENSE in the source distribution or at | 
|  | L<https://www.openssl.org/source/license.html>. | 
|  |  | 
|  | =cut |