diff options
-rw-r--r-- | ChangeLog | 138 |
1 files changed, 138 insertions, 0 deletions
@@ -28,6 +28,144 @@ history is also available from Git. | |||
28 | 28 | ||
29 | LibreSSL Portable Release Notes: | 29 | LibreSSL Portable Release Notes: |
30 | 30 | ||
31 | 3.6.0 - Development release | ||
32 | |||
33 | * Internal improvements | ||
34 | - Avoid expensive RFC 3779 checks during cert verification. | ||
35 | - The templated ASN.1 decoder has been cleaned up, refactored, | ||
36 | modernized with parts rewritten using CBB and CBS. | ||
37 | - The ASN.1 time parser has been rewritten. | ||
38 | - Rewrite and fix ASN1_STRING_to_UTF8(). | ||
39 | - Use asn1_abs_set_unused_bits() rather than inlining it. | ||
40 | - Simplify ec_asn1_group2curve(). | ||
41 | - First pass at a clean up of ASN1_item_sign_ctx() | ||
42 | - ssl_txt.c was cleaned up. | ||
43 | - Internal function arguments and struct member have been changed | ||
44 | to size_t. | ||
45 | - Lots of missing error checks of EVP API were added. | ||
46 | - Clean up and clarify BN_kronecker(). | ||
47 | - Simplify ASN1_INTEGER_cmp() | ||
48 | - Rewrite ASN1_INTEGER_{get,set}() using CBS and CBB and reuse | ||
49 | the ASN1_INTEGER functions for ASN1_ENUMERATED. | ||
50 | - Use ASN1_INTEGER to parse and build {Z,}LONG_it | ||
51 | - Refactored and cleaned up group (elliptic curve) handling in | ||
52 | t1_lib.c. | ||
53 | - Simplify certificate list handling code in the legacy server. | ||
54 | - Make CBB_finish() fail if *out_data is not NULL. | ||
55 | - Remove tls_buffer_set_data() and remove/revise callers. | ||
56 | - Rewrite SSL{_CTX,}_set_alpn_protos() using CBS. | ||
57 | - Simplify tlsext_supported_groups_server_parse(). | ||
58 | - Remove redundant length checks in tlsext parse functions. | ||
59 | - Simplify tls13_server_encrypted_extensions_recv(). | ||
60 | - Add read and write support to tls_buffer. | ||
61 | - Convert TLS transcript from BUF_MEM to tls_buffer. | ||
62 | - Clear key on exit in PKCS12_gen_mac(). | ||
63 | - Minor fixes in PKCS12_parse(). | ||
64 | - Provide and use a primitive clear function for BIGNUM_it. | ||
65 | - Use ASN1_INTEGER to encode/decode BIGNUM_it. | ||
66 | - Add stack frames to AES-NI x86_64 assembly. | ||
67 | - Use named initialisers for BIGNUMs. | ||
68 | - Tidy up some of BN_nist_mod_*. | ||
69 | - Expand BLOCK_CIPHER_* and related macros. | ||
70 | - Avoid shadowing the cbs function parameter in | ||
71 | tlsext_alpn_server_parse() | ||
72 | - Deduplicate peer certificate chain processing code. | ||
73 | - Make it possible to signal an error from an i2c_* function. | ||
74 | - Rewrite i2c_ASN1_INTEGER() using CBB/CBS. | ||
75 | - Remove UINT32_MAX limitation on ChaCha() and CRYPTO_chacha_20(). | ||
76 | - Remove bogus length checks from EVP_aead_chacha20_poly1305(). | ||
77 | - Reworked DSA_size() and ECDSA_size(). | ||
78 | - Stop using CBIGNUM_it internal to libcrypto. | ||
79 | - Provide c2i_ASN1_ENUMERATED_cbs() and call it from | ||
80 | asn1_c2i_primitive(). | ||
81 | - Ensure ASN.1 types are appropriately encoded. | ||
82 | - Avoid recycling ASN1_STRINGs when decoding ASN.1. | ||
83 | - Tidy up asn1_c2i_primitive() slightly. | ||
84 | - Mechanically expand IMPLEMENT_BLOCK_CIPHER, IMPLEMENT_CFBR, | ||
85 | BLOCK_CIPHER and the looney M_do_cipher macros. | ||
86 | - Use correct length for EVP CFB mode ciphers. | ||
87 | - Provide a version of ssl_msg_callback() that takes a CBS. | ||
88 | - Use CBS to parse TLS alerts in the legacy stack. | ||
89 | - Increment the input and output position for EVP AES CFB1. | ||
90 | - Ensure there is no trailing data for a CCS received by the | ||
91 | TLSv1.3 stack. | ||
92 | - Use CBS when procesing a CCS message in the legacy stack. | ||
93 | - Be stricter with middlebox compatibility mode in the TLSv1.3 | ||
94 | server. | ||
95 | * Compatibility changes | ||
96 | - The ASN.1 time parser has been refactored and rewritten using CBS. | ||
97 | It has been made stricter in that it now enforces the rules from | ||
98 | RFC 5280. | ||
99 | - ASN1_AFLG_BROKEN was removed. | ||
100 | - Error check tls_session_secret_cb() like OpenSSL. | ||
101 | - Added ASN1_INTEGER_{get,set}_{u,}int64() | ||
102 | - Move leaf certificate checks to the last thing after chain | ||
103 | validation. | ||
104 | - Added -s option to openssl(1) ciphers that only shows the ciphers | ||
105 | supported by the specified protocol. | ||
106 | - Use TLS_client_method() instead of TLSv1_client_method() in | ||
107 | the openssl(1) ciphers command. | ||
108 | - Validate the protocols in SSL{_CTX,}_set_alpn_protos(). | ||
109 | - Made TS and PKCS12 opaque. | ||
110 | - Per RFC 7292, safeContentsBag is a SEQUENCE OF, not a SET OF. | ||
111 | - Align PKCS12_key_gen_uni() with OpenSSL | ||
112 | - Various PKCS12 and TS accessors were added. In particular, the | ||
113 | TS_RESP_CTX_set_time_cb() function was added back. | ||
114 | - Allow a NULL header in PEM_write{,_bio}() | ||
115 | - Allow empty attribute sets in CSRs. | ||
116 | - Adjust signatures of BIO_ctrl functions. | ||
117 | - Provide additional defines for EVP AEAD. | ||
118 | - Provide OPENSSL_cleanup(). | ||
119 | - Make BIO_info_cb() identical to bio_info_cb(). | ||
120 | * Bug fixes | ||
121 | - Avoid use of uninitialized in BN_mod_exp_recp(). | ||
122 | - Fix X509_get_extension_flags() by ensuring that EXFLAG_INVALID is | ||
123 | set on X509_get_purpose() failure. | ||
124 | - Fix HMAC() with NULL key. | ||
125 | - Add ERR_load_{COMP,CT,KDF}_strings() to ERR_load_crypto_strings(). | ||
126 | - Avoid strict aliasing violations in BN_nist_mod_*(). | ||
127 | - Do not return X509_V_ERR_UNSPECIFIED from X509_check_ca(). | ||
128 | No return value of X509_check_ca() indicates failure. Application | ||
129 | code should therefore issue a checked call to X509_check_purpose() | ||
130 | before calling X509_check_ca(). | ||
131 | - Rewrite and fix X509v3_asid_subset() to avoid segfaults on some | ||
132 | valid input. | ||
133 | - Call the ASN1_OP_D2I_PRE callback after ASN1_item_ex_new(). | ||
134 | - Fix d2i_ASN1_OBJECT to advance the *der_in pointer correctly. | ||
135 | - Avoid use of uninitialized in ASN1_STRING_to_UTF8(). | ||
136 | - Do not pass uninitialized pointer to ASN1_STRING_to_UTF8(). | ||
137 | - Do not refuse valid IPv6 addresses in nc(1)'s HTTP CONNECT proxy. | ||
138 | - Do not reject primes in trial divisions. | ||
139 | - Error out on negative shifts in BN_{r,l}shift() instead of | ||
140 | accessing arrays out of bounds. | ||
141 | - Fix URI name constraints, allow for URI's with no host part. | ||
142 | - Fix the legacy verifier callback behaviour for untrusted certs. | ||
143 | - Correct serfver-side handling of TLSv1.3 key updates. | ||
144 | - Plug leak in PKCS12_setup_mac(). | ||
145 | - Plug leak in X509V3_add1_i2d(). | ||
146 | - Only print X.509 versions we know about. | ||
147 | - Avoid signed integer overflow due to unary negation | ||
148 | - Initialize readbytes in BIO_gets(). | ||
149 | - Plug memory leak in CMS_add_simple_smimecap(). | ||
150 | - Plug memory leak in X509_REQ_print_ex(). | ||
151 | - Check HMAC() return value to avoid a later use of uninitialized. | ||
152 | - Avoid potential NULL dereference in ssl_set_pkey(). | ||
153 | - Check return values in ssl_print_tmp_key(). | ||
154 | - Switch loop bounds from size_t to int in check_hosts(). | ||
155 | - Avoid division by zero if no connection was made in s_time.c. | ||
156 | - Check sk_SSL_CIPHER_push() return value | ||
157 | - Avoid out-of-bounds read in ssl_cipher_process_rulestr(). | ||
158 | - Use LONG_MAX as the limit for ciphers with long based APIs. | ||
159 | * New features | ||
160 | - EVP API for HKDF ported from OpenSSL and subsequently cleaned up. | ||
161 | - The security level API (SSL_{,CTX}_{get,set}_security_level()) is | ||
162 | now available. Callbacks and ex_data are not supported. Sane | ||
163 | software will not be using this. | ||
164 | - Experimental support for the BoringSSL QUIC API. | ||
165 | - Add initial support for TS ESSCertIDv2 verification. | ||
166 | - LibreSSL now uses the Baillie-PSW primality test instead of | ||
167 | Miller-Rabin . | ||
168 | |||
31 | 3.5.2 - Stable release | 169 | 3.5.2 - Stable release |
32 | 170 | ||
33 | * Bug fixes | 171 | * Bug fixes |