• T
    Add SSL/SSL_CTX_use_cert_and_key() · 37933acb
    Todd Short 提交于
    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: NTim Hudson <tjh@openssl.org>
    Reviewed-by: NBen Kaduk <kaduk@mit.edu>
    (Merged from https://github.com/openssl/openssl/pull/1130)
    37933acb
ssl.h 102.8 KB