]> git.ipfire.org Git - thirdparty/openssl.git/commit
Add SSL/SSL_CTX_use_cert_and_key()
authorTodd Short <tshort@akamai.com>
Mon, 28 Dec 2015 14:13:20 +0000 (09:13 -0500)
committerBen Kaduk <kaduk@mit.edu>
Fri, 9 Mar 2018 16:28:04 +0000 (10:28 -0600)
commit37933acbeafef6db9a5c5681c1b5174cd91494bc
tree68baa103ddb6b721bca122931479a107e4266273
parent5936e8884bc6f3b9ff9abf8ebbeb772809882f92
Add SSL/SSL_CTX_use_cert_and_key()

Add functions that will do the work of assigning certificate, privatekey
and chain certs to an SSL or SSL_CTX. If no privatekey is given, use the
publickey. This will permit the keys to pass validation for both ECDSA
and RSA. If a private key has already been set for the certificate, it
is discarded. A real private key can be set later.

This is an all-or-nothing setting of these parameters. Unlike the
SSL/SSL_CTX_use_certificate() and SSL/SSL_CTX_use_PrivateKey() functions,
the existing cert or privatekey is not modified (i.e. parameters copied).
This permits the existing cert/privatekey to be replaced.

It replaces the sequence of:
* SSL_use_certificate()
* SSL_use_privatekey()
* SSL_set1_chain()
And may actually be faster, as multiple checks are consolidated.

The private key can be NULL, if so an ENGINE module needs to contain the
actual private key that is to be used.

Note that ECDH (using the certificate's ECDSA key) ciphers do not work
without the private key being present, based on how the private key is
used in ECDH. ECDH does not offer PFS; ECDHE ciphers should be used instead.

Reviewed-by: Tim Hudson <tjh@openssl.org>
Reviewed-by: Ben Kaduk <kaduk@mit.edu>
(Merged from https://github.com/openssl/openssl/pull/1130)
crypto/err/openssl.txt
doc/man3/SSL_CTX_use_certificate.pod
doc/man7/ssl.pod
include/openssl/ssl.h
include/openssl/sslerr.h
ssl/ssl_err.c
ssl/ssl_rsa.c
util/libssl.num