mirror of https://github.com/openssl/openssl.git
				
				
				
			
		
			
				
	
	
		
			95 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			95 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| =pod
 | |
| 
 | |
| =head1 NAME
 | |
| 
 | |
| SSL_CTX_add_extra_chain_cert,
 | |
| SSL_CTX_get_extra_chain_certs,
 | |
| SSL_CTX_get_extra_chain_certs_only,
 | |
| SSL_CTX_clear_extra_chain_certs
 | |
| - add, get or clear extra chain certificates
 | |
| 
 | |
| =head1 SYNOPSIS
 | |
| 
 | |
|  #include <openssl/ssl.h>
 | |
| 
 | |
|  long SSL_CTX_add_extra_chain_cert(SSL_CTX *ctx, X509 *x509);
 | |
|  long SSL_CTX_get_extra_chain_certs(SSL_CTX *ctx, STACK_OF(X509) **sk);
 | |
|  long SSL_CTX_get_extra_chain_certs_only(SSL_CTX *ctx, STACK_OF(X509) **sk);
 | |
|  long SSL_CTX_clear_extra_chain_certs(SSL_CTX *ctx);
 | |
| 
 | |
| =head1 DESCRIPTION
 | |
| 
 | |
| SSL_CTX_add_extra_chain_cert() adds the certificate B<x509> to the extra chain
 | |
| certificates associated with B<ctx>. Several certificates can be added one
 | |
| after another.
 | |
| 
 | |
| SSL_CTX_get_extra_chain_certs() retrieves the extra chain certificates
 | |
| associated with B<ctx>, or the chain associated with the current certificate
 | |
| of B<ctx> if the extra chain is empty.
 | |
| The returned stack should not be freed by the caller.
 | |
| 
 | |
| SSL_CTX_get_extra_chain_certs_only() retrieves the extra chain certificates
 | |
| associated with B<ctx>.
 | |
| The returned stack should not be freed by the caller.
 | |
| 
 | |
| SSL_CTX_clear_extra_chain_certs() clears all extra chain certificates
 | |
| associated with B<ctx>.
 | |
| 
 | |
| These functions are implemented as macros.
 | |
| 
 | |
| =head1 NOTES
 | |
| 
 | |
| When sending a certificate chain, extra chain certificates are sent in order
 | |
| following the end entity certificate.
 | |
| 
 | |
| If no chain is specified, the library will try to complete the chain from the
 | |
| available CA certificates in the trusted CA storage, see
 | |
| L<SSL_CTX_load_verify_locations(3)>.
 | |
| 
 | |
| The B<x509> certificate provided to SSL_CTX_add_extra_chain_cert() will be
 | |
| freed by the library when the B<SSL_CTX> is destroyed. An application
 | |
| B<should not> free the B<x509> object.
 | |
| 
 | |
| =head1 RESTRICTIONS
 | |
| 
 | |
| Only one set of extra chain certificates can be specified per SSL_CTX
 | |
| structure. Different chains for different certificates (for example if both
 | |
| RSA and DSA certificates are specified by the same server) or different SSL
 | |
| structures with the same parent SSL_CTX cannot be specified using this
 | |
| function. For more flexibility functions such as SSL_add1_chain_cert() should
 | |
| be used instead.
 | |
| 
 | |
| =head1 RETURN VALUES
 | |
| 
 | |
| SSL_CTX_add_extra_chain_cert() and SSL_CTX_clear_extra_chain_certs() return
 | |
| 1 on success and 0 for failure. Check out the error stack to find out the
 | |
| reason for failure.
 | |
| 
 | |
| =head1 SEE ALSO
 | |
| 
 | |
| L<ssl(7)>,
 | |
| L<SSL_CTX_use_certificate(3)>,
 | |
| L<SSL_CTX_set_client_cert_cb(3)>,
 | |
| L<SSL_CTX_load_verify_locations(3)>
 | |
| L<SSL_CTX_set0_chain(3)>
 | |
| L<SSL_CTX_set1_chain(3)>
 | |
| L<SSL_CTX_add0_chain_cert(3)>
 | |
| L<SSL_CTX_add1_chain_cert(3)>
 | |
| L<SSL_set0_chain(3)>
 | |
| L<SSL_set1_chain(3)>
 | |
| L<SSL_add0_chain_cert(3)>
 | |
| L<SSL_add1_chain_cert(3)>
 | |
| L<SSL_CTX_build_cert_chain(3)>
 | |
| L<SSL_build_cert_chain(3)>
 | |
| 
 | |
| =head1 COPYRIGHT
 | |
| 
 | |
| Copyright 2000-2018 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
 |