The OpenSSL Project is a collaborative effort to develop a robust, commercial-grade, full-featured, and open source toolkit implementing the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) protocols as well as a full-strength general purpose cryptography library.
Changes between 1.0.0 and 1.1.0
- New -sigopt option to the ca, req and x509 utilities. Additional signature parameters can be passed using this option and in particular PSS.
- Add RSA PSS signing function. This will generate and set the appropriate AlgorithmIdentifiers for PSS based on those in the corresponding EVP_MD_CTX structure. No application support yet.
- Support for companion algorithm specific ASN1 signing routines. New function ASN1_item_sign_ctx() signs a pre-initialised EVP_MD_CTX structure and sets AlgorithmIdentifiers based on the appropriate parameters.
- Add new algorithm specific ASN1 verification initialisation function to EVP_PKEY_ASN1_METHOD: this is not in EVP_PKEY_METHOD since the ASN1 handling will be the same no matter what EVP_PKEY_METHOD is used. Add a PSS handler to support verification of PSS signatures: checked against a number of sample certificates.
- Add signature printing for PSS. Add PSS OIDs.
- Add algorithm specific signature printing. An individual ASN1 method can now print out signatures instead of the standard hex dump.
- Add -trusted_first option which attempts to find certificates in the trusted store even if an untrusted chain is also supplied.
- Initial experimental support for explicitly trusted non-root CAs. OpenSSL still tries to build a complete chain to a root but if an intermediate CA has a trust setting included that is used. The first setting is used: whether to trust or reject.
- New -verify_name option in command line utilities to set verification parameters by name.
- Initial CMAC implementation. WARNING: EXPERIMENTAL, API MAY CHANGE. Add CMAC pkey methods.
- Experiemental regnegotiation in s_server -www mode. If the client browses /reneg connection is renegotiated. If /renegcert it is renegotiated requesting a certificate.
- Add an “external” session cache for debugging purposes to s_server. This should help trace issues which normally are only apparent in deployed multi-process servers.
- Initial TLSv1.1 support.
- Experiemental password based recipient info support for CMS library: implementing RFC3211.
- Split password based encryption into PBES2 and PBKDF2 functions. This neatly separates the code into cipher and PBE sections and is required for some algorithms that split PBES2 into separate pieces (such as password based CMS).
- Extensive audit of libcrypto with DEBUG_UNUSED. Fix many cases where return value is ignored. NB. The functions RAND_add(), RAND_seed(), BIO_set_cipher() and some obscure PEM functions were changed so they can now return an error. The RAND changes required a change to the RAND_METHOD structure.