]> git.ipfire.org Git - thirdparty/openssl.git/blame - CHANGES
crypto/ecp_nistz256.c: harmonize error codes.
[thirdparty/openssl.git] / CHANGES
CommitLineData
81a6c781 1
f1c236f8 2 OpenSSL CHANGES
651d0aff
RE
3 _______________
4
68a1e0bc 5 Changes between 1.0.1h and 1.0.2 [xx XXX xxxx]
0a9f7780 6
2102c53c
DSH
7 *) Add support for the SignedCertificateTimestampList certificate and
8 OCSP response extensions from RFC6962.
9 [Rob Stradling]
10
d5213519
BM
11 *) Fix ec_GFp_simple_points_make_affine (thus, EC_POINTs_mul etc.)
12 for corner cases. (Certain input points at infinity could lead to
13 bogus results, with non-infinity inputs mapped to infinity too.)
14 [Bodo Moeller]
15
0ae6ba18
AP
16 *) Initial support for PowerISA 2.0.7, first implemented in POWER8.
17 This covers AES, SHA256/512 and GHASH. "Initial" means that most
18 common cases are optimized and there still is room for further
19 improvements. Vector Permutation AES for Altivec is also added.
20 [Andy Polyakov]
21
22 *) Add support for little-endian ppc64 Linux target.
23 [Marcelo Cerri (IBM)]
24
25 *) Initial support for AMRv8 ISA crypto extensions. This covers AES,
26 SHA1, SHA256 and GHASH. "Initial" means that most common cases
27 are optimized and there still is room for further improvements.
28 Both 32- and 64-bit modes are supported.
29 [Andy Polyakov, Ard Biesheuvel (Linaro)]
30
31 *) Improved ARMv7 NEON support.
32 [Andy Polyakov]
33
34 *) Support for SPARC Architecture 2011 crypto extensions, first
35 implemented in SPARC T4. This covers AES, DES, Camellia, SHA1,
36 SHA256/512, MD5, GHASH and modular exponentiation.
37 [Andy Polyakov, David Miller]
38
39 *) Accelerated modular exponentiation for Intel processors, a.k.a.
40 RSAZ.
41 [Shay Gueron (Intel Corp)]
42
43 *) Support for new and upcoming Intel processors, including AVX2,
44 BMI and SHA ISA extensions. This includes additional "stitched"
45 implementations, AESNI-SHA256 and GCM, and multi-buffer support
46 for TLS encrypt.
47
48 This work was sponsored by Intel Corp.
49 [Andy Polyakov]
50
b9fa413a
DSH
51 *) Use algorithm specific chains in SSL_CTX_use_certificate_chain_file():
52 this fixes a limiation in previous versions of OpenSSL.
53 [Steve Henson]
54
25f93585
DSH
55 *) Extended RSA OAEP support via EVP_PKEY API. Options to specify digest,
56 MGF1 digest and OAEP label.
57 [Steve Henson]
58
c6f33865
DSH
59 *) Add EVP support for key wrapping algorithms, to avoid problems with
60 existing code the flag EVP_CIPHER_CTX_WRAP_ALLOW has to be set in
61 the EVP_CIPHER_CTX or an error is returned. Add AES and DES3 wrap
62 algorithms and include tests cases.
63 [Steve Henson]
64
7c23127f
DSH
65 *) Add functions to allocate and set the fields of an ECDSA_METHOD
66 structure.
67 [Douglas E. Engert, Steve Henson]
68
904348a4
DSH
69 *) New functions OPENSSL_gmtime_diff and ASN1_TIME_diff to find the
70 difference in days and seconds between two tm or ASN1_TIME structures.
71 [Steve Henson]
72
171c4da5
DSH
73 *) Add -rev test option to s_server to just reverse order of characters
74 received by client and send back to server. Also prints an abbreviated
75 summary of the connection parameters.
76 [Steve Henson]
77
04611fb0
DSH
78 *) New option -brief for s_client and s_server to print out a brief summary
79 of connection parameters.
80 [Steve Henson]
81
e27711cf
T
82 *) Add callbacks for arbitrary TLS extensions.
83 [Trevor Perrin <trevp@trevp.net> and Ben Laurie]
84
57912ed3
DSH
85 *) New option -crl_download in several openssl utilities to download CRLs
86 from CRLDP extension in certificates.
87 [Steve Henson]
88
e318431e
DSH
89 *) New options -CRL and -CRLform for s_client and s_server for CRLs.
90 [Steve Henson]
91
6a10f38d
DSH
92 *) New function X509_CRL_diff to generate a delta CRL from the difference
93 of two full CRLs. Add support to "crl" utility.
94 [Steve Henson]
95
75f53531
DSH
96 *) New functions to set lookup_crls function and to retrieve
97 X509_STORE from X509_STORE_CTX.
98 [Steve Henson]
99
2aa3ef78
DSH
100 *) Print out deprecated issuer and subject unique ID fields in
101 certificates.
102 [Steve Henson]
103
5c8d41be
DSH
104 *) Extend OCSP I/O functions so they can be used for simple general purpose
105 HTTP as well as OCSP. New wrapper function which can be used to download
106 CRLs using the OCSP API.
107 [Steve Henson]
108
15387e4c
DSH
109 *) Delegate command line handling in s_client/s_server to SSL_CONF APIs.
110 [Steve Henson]
111
49ef33fa
DSH
112 *) SSL_CONF* functions. These provide a common framework for application
113 configuration using configuration files or command lines.
114 [Steve Henson]
115
bc200e69
DSH
116 *) SSL/TLS tracing code. This parses out SSL/TLS records using the
117 message callback and prints the results. Needs compile time option
118 "enable-ssl-trace". New options to s_client and s_server to enable
119 tracing.
120 [Steve Henson]
121
78b5d89d 122 *) New ctrl and macro to retrieve supported points extensions.
1b9a59c3 123 Print out extension in s_server and s_client.
78b5d89d
DSH
124 [Steve Henson]
125
bd9fc1d6
DSH
126 *) New functions to retrieve certificate signature and signature
127 OID NID.
128 [Steve Henson]
129
1520e6c0
DSH
130 *) Add functions to retrieve and manipulate the raw cipherlist sent by a
131 client to OpenSSL.
132 [Steve Henson]
133
ccf6a19e
DSH
134 *) New Suite B modes for TLS code. These use and enforce the requirements
135 of RFC6460: restrict ciphersuites, only permit Suite B algorithms and
136 only use Suite B curves. The Suite B modes can be set by using the
137 strings "SUITEB128", "SUITEB192" or "SUITEB128ONLY" for the cipherstring.
138 [Steve Henson]
139
ba8bdea7
DSH
140 *) New chain verification flags for Suite B levels of security. Check
141 algorithms are acceptable when flags are set in X509_verify_cert.
142 [Steve Henson]
143
6660baee
DSH
144 *) Make tls1_check_chain return a set of flags indicating checks passed
145 by a certificate chain. Add additional tests to handle client
146 certificates: checks for matching certificate type and issuer name
147 comparison.
148 [Steve Henson]
149
25d4c925
DSH
150 *) If an attempt is made to use a signature algorithm not in the peer
151 preference list abort the handshake. If client has no suitable
152 signature algorithms in response to a certificate request do not
153 use the certificate.
154 [Steve Henson]
155
44adfeb6
DSH
156 *) If server EC tmp key is not in client preference list abort handshake.
157 [Steve Henson]
158
b762acad
DSH
159 *) Add support for certificate stores in CERT structure. This makes it
160 possible to have different stores per SSL structure or one store in
161 the parent SSL_CTX. Include distint stores for certificate chain
162 verification and chain building. New ctrl SSL_CTRL_BUILD_CERT_CHAIN
163 to build and store a certificate chain in CERT structure: returing
164 an error if the chain cannot be built: this will allow applications
165 to test if a chain is correctly configured.
166
167 Note: if the CERT based stores are not set then the parent SSL_CTX
168 store is used to retain compatibility with existing behaviour.
169
170 [Steve Henson]
171
b28fbdfa
DSH
172 *) New function ssl_set_client_disabled to set a ciphersuite disabled
173 mask based on the current session, check mask when sending client
174 hello and checking the requested ciphersuite.
175 [Steve Henson]
176
a897502c
DSH
177 *) New ctrls to retrieve and set certificate types in a certificate
178 request message. Print out received values in s_client. If certificate
179 types is not set with custom values set sensible values based on
180 supported signature algorithms.
181 [Steve Henson]
182
04c32cdd
DSH
183 *) Support for distinct client and server supported signature algorithms.
184 [Steve Henson]
185
623a5e24
DSH
186 *) Add certificate callback. If set this is called whenever a certificate
187 is required by client or server. An application can decide which
188 certificate chain to present based on arbitrary criteria: for example
189 supported signature algorithms. Add very simple example to s_server.
190 This fixes many of the problems and restrictions of the existing client
191 certificate callback: for example you can now clear an existing
192 certificate and specify the whole chain.
193 [Steve Henson]
194
484f8762
DSH
195 *) Add new "valid_flags" field to CERT_PKEY structure which determines what
196 the certificate can be used for (if anything). Set valid_flags field
197 in new tls1_check_chain function. Simplify ssl_set_cert_masks which used
198 to have similar checks in it.
199
200 Add new "cert_flags" field to CERT structure and include a "strict mode".
201 This enforces some TLS certificate requirements (such as only permitting
202 certificate signature algorithms contained in the supported algorithms
203 extension) which some implementations ignore: this option should be used
204 with caution as it could cause interoperability issues.
205 [Steve Henson]
206
c70a1fee
DSH
207 *) Update and tidy signature algorithm extension processing. Work out
208 shared signature algorithms based on preferences and peer algorithms
209 and print them out in s_client and s_server. Abort handshake if no
210 shared signature algorithms.
211 [Steve Henson]
212
0b362de5
DSH
213 *) Add new functions to allow customised supported signature algorithms
214 for SSL and SSL_CTX structures. Add options to s_client and s_server
215 to support them.
216 [Steve Henson]
217
d312f7be
DSH
218 *) New function SSL_certs_clear() to delete all references to certificates
219 from an SSL structure. Before this once a certificate had been added
220 it couldn't be removed.
221 [Steve Henson]
222
70cd3c6b
DSH
223 *) Integrate hostname, email address and IP address checking with certificate
224 verification. New verify options supporting checking in opensl utility.
225 [Steve Henson]
226
45da1efc
DSH
227 *) Fixes and wildcard matching support to hostname and email checking
228 functions. Add manual page.
229 [Florian Weimer (Red Hat Product Security Team)]
230
231 *) New functions to check a hostname email or IP address against a
232 certificate. Add options x509 utility to print results of checks against
233 a certificate.
234 [Steve Henson]
235
d65b8b21
BL
236 *) Fix OCSP checking.
237 [Rob Stradling <rob.stradling@comodo.com> and Ben Laurie]
238
8c149cfd
BM
239 *) Initial experimental support for explicitly trusted non-root CAs.
240 OpenSSL still tries to build a complete chain to a root but if an
241 intermediate CA has a trust setting included that is used. The first
242 setting is used: whether to trust (e.g., -addtrust option to the x509
243 utility) or reject.
244 [Steve Henson]
d65b8b21 245
9d2006d8
DSH
246 *) Add -trusted_first option which attempts to find certificates in the
247 trusted store even if an untrusted chain is also supplied.
248 [Steve Henson]
249
988037fe
AP
250 *) MIPS assembly pack updates: support for MIPS32r2 and SmartMIPS ASE,
251 platform support for Linux and Android.
252 [Andy Polyakov]
253
0e05b51f
AP
254 *) Support for linux-x32, ILP32 environment in x86_64 framework.
255 [Andy Polyakov]
256
1dded7f7
DSH
257 *) Experimental multi-implementation support for FIPS capable OpenSSL.
258 When in FIPS mode the approved implementations are used as normal,
259 when not in FIPS mode the internal unapproved versions are used instead.
260 This means that the FIPS capable OpenSSL isn't forced to use the
261 (often lower perfomance) FIPS implementations outside FIPS mode.
262 [Steve Henson]
263
c3cb0691
DSH
264 *) Transparently support X9.42 DH parameters when calling
265 PEM_read_bio_DHparameters. This means existing applications can handle
266 the new parameter format automatically.
267 [Steve Henson]
268
491734eb
DSH
269 *) Initial experimental support for X9.42 DH parameter format: mainly
270 to support use of 'q' parameter for RFC5114 parameters.
271 [Steve Henson]
272
e811eff5
DSH
273 *) Add DH parameters from RFC5114 including test data to dhtest.
274 [Steve Henson]
275
e46c807e
DSH
276 *) Support for automatic EC temporary key parameter selection. If enabled
277 the most preferred EC parameters are automatically used instead of
278 hardcoded fixed parameters. Now a server just has to call:
279 SSL_CTX_set_ecdh_auto(ctx, 1) and the server will automatically
280 support ECDH and use the most appropriate parameters.
281 [Steve Henson]
282
6b870763
DSH
283 *) Enhance and tidy EC curve and point format TLS extension code. Use
284 static structures instead of allocation if default values are used.
285 New ctrls to set curves we wish to support and to retrieve shared curves.
286 Print out shared curves in s_server. New options to s_server and s_client
287 to set list of supported curves.
288 [Steve Henson]
289
55058181
DSH
290 *) New ctrls to retrieve supported signature algorithms and
291 supported curve values as an array of NIDs. Extend openssl utility
292 to print out received values.
293 [Steve Henson]
294
a068a1d0
DSH
295 *) Add new APIs EC_curve_nist2nid and EC_curve_nid2nist which convert
296 between NIDs and the more common NIST names such as "P-256". Enhance
297 ecparam utility and ECC method to recognise the NIST names for curves.
298 [Steve Henson]
299
37b16c84
DSH
300 *) Enhance SSL/TLS certificate chain handling to support different
301 chains for each certificate instead of one chain in the parent SSL_CTX.
302 [Steve Henson]
303
c523eb98
DSH
304 *) Support for fixed DH ciphersuite client authentication: where both
305 server and client use DH certificates with common parameters.
306 [Steve Henson]
307
0ffa4997
DSH
308 *) Support for fixed DH ciphersuites: those requiring DH server
309 certificates.
310 [Steve Henson]
b9115239 311
68a1e0bc
RL
312 Changes between 1.0.1g and 1.0.1h [5 Jun 2014]
313
314 *) Fix for SSL/TLS MITM flaw. An attacker using a carefully crafted
315 handshake can force the use of weak keying material in OpenSSL
316 SSL/TLS clients and servers.
317
318 Thanks to KIKUCHI Masashi (Lepidum Co. Ltd.) for discovering and
319 researching this issue. (CVE-2014-0224)
320 [KIKUCHI Masashi, Steve Henson]
321
322 *) Fix DTLS recursion flaw. By sending an invalid DTLS handshake to an
323 OpenSSL DTLS client the code can be made to recurse eventually crashing
324 in a DoS attack.
325
326 Thanks to Imre Rad (Search-Lab Ltd.) for discovering this issue.
327 (CVE-2014-0221)
328 [Imre Rad, Steve Henson]
329
330 *) Fix DTLS invalid fragment vulnerability. A buffer overrun attack can
331 be triggered by sending invalid DTLS fragments to an OpenSSL DTLS
332 client or server. This is potentially exploitable to run arbitrary
333 code on a vulnerable client or server.
334
335