2000-12-08 22:29:13 +08:00
|
|
|
=pod
|
|
|
|
|
|
|
|
=head1 NAME
|
|
|
|
|
2015-06-17 08:13:40 +08:00
|
|
|
SSL_CTX_add_extra_chain_cert, SSL_CTX_clear_extra_chain_certs - add or clear
|
|
|
|
extra chain certificates
|
2000-12-08 22:29:13 +08:00
|
|
|
|
|
|
|
=head1 SYNOPSIS
|
|
|
|
|
|
|
|
#include <openssl/ssl.h>
|
|
|
|
|
2015-06-17 08:13:40 +08:00
|
|
|
long SSL_CTX_add_extra_chain_cert(SSL_CTX *ctx, X509 *x509);
|
|
|
|
long SSL_CTX_clear_extra_chain_certs(SSL_CTX *ctx);
|
2000-12-08 22:29:13 +08:00
|
|
|
|
|
|
|
=head1 DESCRIPTION
|
|
|
|
|
2015-06-17 08:13:40 +08:00
|
|
|
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_clear_extra_chain_certs() clears all extra chain certificates
|
|
|
|
associated with B<ctx>.
|
|
|
|
|
|
|
|
These functions are implemented as macros.
|
2000-12-08 22:29:13 +08:00
|
|
|
|
|
|
|
=head1 NOTES
|
|
|
|
|
2015-06-17 08:13:40 +08:00
|
|
|
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
|
2015-08-18 03:21:33 +08:00
|
|
|
L<SSL_CTX_load_verify_locations(3)>.
|
2000-12-08 22:29:13 +08:00
|
|
|
|
2015-06-17 08:13:40 +08:00
|
|
|
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.
|
2014-06-27 23:33:06 +08:00
|
|
|
|
2013-08-17 01:11:29 +08:00
|
|
|
=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.
|
|
|
|
|
2000-12-08 22:29:13 +08:00
|
|
|
=head1 RETURN VALUES
|
|
|
|
|
2015-06-17 08:13:40 +08:00
|
|
|
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.
|
2000-12-08 22:29:13 +08:00
|
|
|
|
|
|
|
=head1 SEE ALSO
|
|
|
|
|
2015-08-18 03:21:33 +08:00
|
|
|
L<ssl(3)>,
|
|
|
|
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)>
|
2000-12-08 22:29:13 +08:00
|
|
|
|
|
|
|
=cut
|