]> git.ipfire.org Git - thirdparty/openssl.git/blame - CHANGES
Fix Valgrind warning.
[thirdparty/openssl.git] / CHANGES
CommitLineData
81a6c781 1
f1c236f8 2 OpenSSL CHANGES
651d0aff
RE
3 _______________
4
b9115239
DSH
5 Changes between 1.0.1 and 1.0.2 [xx XXX xxxx]
6
988037fe
AP
7 *) MIPS assembly pack updates: support for MIPS32r2 and SmartMIPS ASE,
8 platform support for Linux and Android.
9 [Andy Polyakov]
10
da8512aa 11 *) Call OCSP Stapling callback after ciphersuite has been chosen, so
dc144417
DSH
12 the right response is stapled. Also change current certificate to
13 the certificate actually sent.
da8512aa
BL
14 See http://rt.openssl.org/Ticket/Display.html?id=2836.
15 [Rob Stradling <rob.stradling@comodo.com>]
16
0e05b51f
AP
17 *) Support for linux-x32, ILP32 environment in x86_64 framework.
18 [Andy Polyakov]
19
4e14996e
BL
20 *) RFC 5878 support.
21 [Emilia Kasper, Adam Langley, Ben Laurie (Google)]
22
1dded7f7
DSH
23 *) Experimental multi-implementation support for FIPS capable OpenSSL.
24 When in FIPS mode the approved implementations are used as normal,
25 when not in FIPS mode the internal unapproved versions are used instead.
26 This means that the FIPS capable OpenSSL isn't forced to use the
27 (often lower perfomance) FIPS implementations outside FIPS mode.
28 [Steve Henson]
29
c3cb0691
DSH
30 *) Transparently support X9.42 DH parameters when calling
31 PEM_read_bio_DHparameters. This means existing applications can handle
32 the new parameter format automatically.
33 [Steve Henson]
34
491734eb
DSH
35 *) Initial experimental support for X9.42 DH parameter format: mainly
36 to support use of 'q' parameter for RFC5114 parameters.
37 [Steve Henson]
38
e811eff5
DSH
39 *) Add DH parameters from RFC5114 including test data to dhtest.
40 [Steve Henson]
41
e46c807e
DSH
42 *) Support for automatic EC temporary key parameter selection. If enabled
43 the most preferred EC parameters are automatically used instead of
44 hardcoded fixed parameters. Now a server just has to call:
45 SSL_CTX_set_ecdh_auto(ctx, 1) and the server will automatically
46 support ECDH and use the most appropriate parameters.
47 [Steve Henson]
48
6b870763
DSH
49 *) Enhance and tidy EC curve and point format TLS extension code. Use
50 static structures instead of allocation if default values are used.
51 New ctrls to set curves we wish to support and to retrieve shared curves.
52 Print out shared curves in s_server. New options to s_server and s_client
53 to set list of supported curves.
54 [Steve Henson]
55
55058181
DSH
56 *) New ctrls to retrieve supported signature algorithms and
57 supported curve values as an array of NIDs. Extend openssl utility
58 to print out received values.
59 [Steve Henson]
60
a068a1d0
DSH
61 *) Add new APIs EC_curve_nist2nid and EC_curve_nid2nist which convert
62 between NIDs and the more common NIST names such as "P-256". Enhance
63 ecparam utility and ECC method to recognise the NIST names for curves.
64 [Steve Henson]
65
37b16c84
DSH
66 *) Enhance SSL/TLS certificate chain handling to support different
67 chains for each certificate instead of one chain in the parent SSL_CTX.
68 [Steve Henson]
69
c523eb98
DSH
70 *) Support for fixed DH ciphersuite client authentication: where both
71 server and client use DH certificates with common parameters.
72 [Steve Henson]
73
0ffa4997
DSH
74 *) Support for fixed DH ciphersuites: those requiring DH server
75 certificates.
76 [Steve Henson]
b9115239 77
5e145e54
DSH
78 Changes between 1.0.1c and 1.0.1d [xx XXX xxxx]
79
482f2380
DSH
80 *) Fix possible deadlock when decoding public keys.
81 [Steve Henson]
82
5e145e54
DSH
83 *) Don't use TLS 1.0 record version number in initial client hello
84 if renegotiating.
85 [Steve Henson]
86
87 Changes between 1.0.1b and 1.0.1c [10 May 2012]
a56f9a61 88
e7c84838
DSH
89 *) Sanity check record length before skipping explicit IV in TLS
90 1.2, 1.1 and DTLS to avoid DoS attack.
91
92 Thanks to Codenomicon for discovering this issue using Fuzz-o-Matic
93 fuzzing as a service testing platform.
94 (CVE-2012-2333)
95 [Steve Henson]
96
24547c23
DSH
97 *) Initialise tkeylen properly when encrypting CMS messages.
98 Thanks to Solar Designer of Openwall for reporting this issue.
99 [Steve Henson]
100
a56f9a61
DSH
101 *) In FIPS mode don't try to use composite ciphers as they are not
102 approved.
103 [Steve Henson]
104
105 Changes between 1.0.1a and 1.0.1b [26 Apr 2012]
f69abd53 106
7e0c9630 107 *) OpenSSL 1.0.0 sets SSL_OP_ALL to 0x80000FFFL and OpenSSL 1.0.1 and
a6df6702
DSH
108 1.0.1a set SSL_OP_NO_TLSv1_1 to 0x00000400L which would unfortunately
109 mean any application compiled against OpenSSL 1.0.0 headers setting
110 SSL_OP_ALL would also set SSL_OP_NO_TLSv1_1, unintentionally disablng
7e0c9630 111 TLS 1.1 also. Fix this by changing the value of SSL_OP_NO_TLSv1_1 to
a6df6702
DSH
112 0x10000000L Any application which was previously compiled against
113 OpenSSL 1.0.1 or 1.0.1a headers and which cares about SSL_OP_NO_TLSv1_1
7e0c9630
AP
114 will need to be recompiled as a result. Letting be results in
115 inability to disable specifically TLS 1.1 and in client context,
116 in unlike event, limit maximum offered version to TLS 1.0 [see below].
a6df6702
DSH
117 [Steve Henson]
118
f69abd53
AP
119 *) In order to ensure interoperabilty SSL_OP_NO_protocolX does not
120 disable just protocol X, but all protocols above X *if* there are
121 protocols *below* X still enabled. In more practical terms it means
122 that if application wants to disable TLS1.0 in favor of TLS1.1 and
123 above, it's not sufficient to pass SSL_OP_NO_TLSv1, one has to pass
0ae89cf3
AP
124 SSL_OP_NO_TLSv1|SSL_OP_NO_SSLv3|SSL_OP_NO_SSLv2. This applies to
125 client side.
f69abd53
AP
126 [Andy Polyakov]
127
d6ef8165 128 Changes between 1.0.1 and 1.0.1a [19 Apr 2012]
54543b95 129
564a503b
DSH
130 *) Check for potentially exploitable overflows in asn1_d2i_read_bio
131 BUF_mem_grow and BUF_mem_grow_clean. Refuse attempts to shrink buffer
132 in CRYPTO_realloc_clean.
133
134 Thanks to Tavis Ormandy, Google Security Team, for discovering this
135 issue and to Adam Langley <agl@chromium.org> for fixing it.
136 (CVE-2012-2110)
137 [Adam Langley (Google), Tavis Ormandy, Google Security Team]
138
bb3add20
BM
139 *) Don't allow TLS 1.2 SHA-256 ciphersuites in TLS 1.0, 1.1 connections.
140 [Adam Langley]
141
48e0f666
DSH
142 *) Workarounds for some broken servers that "hang" if a client hello
143 record length exceeds 255 bytes:
144
145 1. Do not use record version number > TLS 1.0 in initial client
146 hello: some (but not all) hanging servers will now work.
147 2. If we set OPENSSL_MAX_TLS1_2_CIPHER_LENGTH this will truncate
148 the number of ciphers sent in the client hello. This should be
149 set to an even number, such as 50, for example by passing:
150 -DOPENSSL_MAX_TLS1_2_CIPHER_LENGTH=50 to config or Configure.
151 Most broken servers should now work.
152 3. If all else fails setting OPENSSL_NO_TLS1_2_CLIENT will disable
153 TLS 1.2 client support entirely.
a6df6702 154 [Steve Henson]
48e0f666 155
54543b95
AP
156 *) Fix SEGV in Vector Permutation AES module observed in OpenSSH.
157 [Andy Polyakov]
158
f3dcae15 159 Changes between 1.0.0h and 1.0.1 [14 Mar 2012]
9472baae 160
0cd7a032
DSH
161 *) Add compatibility with old MDC2 signatures which use an ASN1 OCTET
162 STRING form instead of a DigestInfo.
163 [Steve Henson]
164
16b7c81d
DSH
165 *) The format used for MDC2 RSA signatures is inconsistent between EVP
166 and the RSA_sign/RSA_verify functions. This was made more apparent when
167 OpenSSL used RSA_sign/RSA_verify for some RSA signatures in particular
168 those which went through EVP_PKEY_METHOD in 1.0.0 and later. Detect
169 the correct format in RSA_verify so both forms transparently work.
170 [Steve Henson]
171
fc6800d1
DSH
172 *) Some servers which support TLS 1.0 can choke if we initially indicate
173 support for TLS 1.2 and later renegotiate using TLS 1.0 in the RSA
174 encrypted premaster secret. As a workaround use the maximum pemitted
175 client version in client hello, this should keep such servers happy
176 and still work with previous versions of OpenSSL.
177 [Steve Henson]
178
bd6941cf
DSH
179 *) Add support for TLS/DTLS heartbeats.
180 [Robin Seggelmann <seggelmann@fh-muenster.de>]
181
6e750fcb
DSH
182 *) Add support for SCTP.
183 [Robin Seggelmann <seggelmann@fh-muenster.de>]
184
62308f3f
DSH
185 *) Improved PRNG seeding for VOS.
186 [Paul Green <Paul.Green@stratus.com>]
187
cecafcce
AP
188 *) Extensive assembler packs updates, most notably:
189
190 - x86[_64]: AES-NI, PCLMULQDQ, RDRAND support;
191 - x86[_64]: SSSE3 support (SHA1, vector-permutation AES);
192 - x86_64: bit-sliced AES implementation;
193 - ARM: NEON support, contemporary platforms optimizations;
194 - s390x: z196 support;
195 - *: GHASH and GF(2^m) multiplication implementations;
196
197 [Andy Polyakov]
198
ca0efb75
DSH
199 *) Make TLS-SRP code conformant with RFC 5054 API cleanup
200 (removal of unnecessary code)
201 [Peter Sylvester <peter.sylvester@edelweb.fr>]
202
b1d74291
BL
203 *) Add TLS key material exporter from RFC 5705.
204 [Eric Rescorla]
205
060a38a2
BL
206 *) Add DTLS-SRTP negotiation from RFC 5764.
207 [Eric Rescorla]
208
e2809bfb
BL
209 *) Add Next Protocol Negotiation,
210 http://tools.ietf.org/html/draft-agl-tls-nextprotoneg-00. Can be
211 disabled with a no-npn flag to config or Configure. Code donated
212 by Google.
213 [Adam Langley <agl@google.com> and Ben Laurie]
214
9c37519b
BM
215 *) Add optional 64-bit optimized implementations of elliptic curves NIST-P224,
216 NIST-P256, NIST-P521, with constant-time single point multiplication on
217 typical inputs. Compiler support for the nonstandard type __uint128_t is
3d520f7c
BM
218 required to use this (present in gcc 4.4 and later, for 64-bit builds).
219 Code made available under Apache License version 2.0.
9c37519b 220
3d520f7c
BM
221 Specify "enable-ec_nistp_64_gcc_128" on the Configure (or config) command
222 line to include this in your build of OpenSSL, and run "make depend" (or
223 "make update"). This enables the following EC_METHODs:
9c37519b
BM
224
225 EC_GFp_nistp224_method()
226 EC_GFp_nistp256_method()
227 EC_GFp_nistp521_method()
228
229 EC_GROUP_new_by_curve_name() will automatically use these (while
230 EC_GROUP_new_curve_GFp() currently prefers the more flexible
231 implementations).
232