]> git.ipfire.org Git - thirdparty/openssl.git/blame - CHANGES
Initial code to support distinct certificate and CRL signing keys where the
[thirdparty/openssl.git] / CHANGES
CommitLineData
81a6c781 1
f1c236f8 2 OpenSSL CHANGES
651d0aff
RE
3 _______________
4
8528128b 5 Changes between 0.9.8i and 0.9.9 [xx XXX xxxx]
3ff55e96 6
002e66c0
DSH
7 *) Add support for policy mappings extension.
8
9 This work was sponsored by Google.
10 [Steve Henson]
11
e9746e03
DSH
12 *) Fixes to pathlength constraint, self issued certificate handling,
13 policy processing to align with RFC3280 and PKITS tests.
14
15 This work was sponsored by Google.
16 [Steve Henson]
17
18 *) Support for name constraints certificate extension. DN, email, DNS
19 and URI types are currently supported.
20
21 This work was sponsored by Google.
22 [Steve Henson]
23
4c329696
GT
24 *) To cater for systems that provide a pointer-based thread ID rather
25 than numeric, deprecate the current numeric thread ID mechanism and
26 replace it with a structure and associated callback type. This
27 mechanism allows a numeric "hash" to be extracted from a thread ID in
28 either case, and on platforms where pointers are larger than 'long',
29 mixing is done to help ensure the numeric 'hash' is usable even if it
30 can't be guaranteed unique. The default mechanism is to use "&errno"
31 as a pointer-based thread ID to distinguish between threads.
32
33 Applications that want to provide their own thread IDs should now use
34 CRYPTO_THREADID_set_callback() to register a callback that will call
35 either CRYPTO_THREADID_set_numeric() or CRYPTO_THREADID_set_pointer().
36
37 (This new approach replaces the functions CRYPTO_set_idptr_callback(),
38 CRYPTO_get_idptr_callback(), and CRYPTO_thread_idptr() that existed in
39 OpenSSL 0.9.9-dev between June 2006 and August 2008. Also, if an
40 application was previously providing a numeric thread callback that
41 was inappropriate for distinguishing threads, then uniqueness might
42 have been obtained with &errno that happened immediately in the
43 intermediate development versions of OpenSSL; this is no longer the
44 case, the numeric thread callback will now override the automatic use
45 of &errno.)
46 [Geoff Thorpe, with help from Bodo Moeller]
47
5cbd2033
DSH
48 *) Initial support for different CRL issuing certificates. This covers a
49 simple case where the self issued certificates in the chain exist and
50 the real CRL issuer is higher in the existing chain.
e9746e03
DSH
51
52 This work was sponsored by Google.
5cbd2033
DSH
53 [Steve Henson]
54
5ce278a7
BL
55 *) Removed effectively defunct crypto/store from the build.
56 [Ben Laurie]
57
58 *) Revamp of STACK to provide stronger type-checking. Still to come:
59 TXT_DB, bsearch(?), OBJ_bsearch, qsort, CRYPTO_EX_DATA, ASN1_VALUE,
60 ASN1_STRING, CONF_VALUE.
61 [Ben Laurie]
62
8671b898
BL
63 *) Add a new SSL_MODE_RELEASE_BUFFERS mode flag to release unused buffer
64 RAM on SSL connections. This option can save about 34k per idle SSL.
65 [Nick Mathewson]
66
3c1d6bbc
BL
67 *) Revamp of LHASH to provide stronger type-checking. Still to come:
68 STACK, TXT_DB, bsearch, qsort.
69 [Ben Laurie]
70
8931b30d
DSH
71 *) Initial support for Cryptographic Message Syntax (aka CMS) based
72 on RFC3850, RFC3851 and RFC3852. New cms directory and cms utility,
fd47c361 73 support for data, signedData, compressedData, digestedData and
eb9d8d8c
DSH
74 encryptedData, envelopedData types included. Scripts to check against
75 RFC4134 examples draft and interop and consistency checks of many
76 content types and variants.
8931b30d
DSH
77 [Steve Henson]
78
3df93571 79 *) Add options to enc utility to support use of zlib compression BIO.
8931b30d
DSH
80 [Steve Henson]
81
73980531
DSH
82 *) Extend mk1mf to support importing of options and assembly language
83 files from Configure script, currently only included in VC-WIN32.
84 The assembly language rules can now optionally generate the source
85 files from the associated perl scripts.
86 [Steve Henson]
87
0e1dba93
DSH
88 *) Implement remaining functionality needed to support GOST ciphersuites.
89 Interop testing has been performed using CryptoPro implementations.
90 [Victor B. Wagner <vitus@cryptocom.ru>]
91
0023adb4
AP
92 *) s390x assembler pack.
93 [Andy Polyakov]
94
4c7c5ff6
AP
95 *) ARMv4 assembler pack. ARMv4 refers to v4 and later ISA, not CPU
96 "family."
97 [Andy Polyakov]
98
761772d7
BM
99 *) Implement Opaque PRF Input TLS extension as specified in
100 draft-rescorla-tls-opaque-prf-input-00.txt. Since this is not an
101 official specification yet and no extension type assignment by
102 IANA exists, this extension (for now) will have to be explicitly
103 enabled when building OpenSSL by providing the extension number
104 to use. For example, specify an option
105
106 -DTLSEXT_TYPE_opaque_prf_input=0x9527
107
108 to the "config" or "Configure" script to enable the extension,
109 assuming extension number 0x9527 (which is a completely arbitrary
110 and unofficial assignment based on the MD5 hash of the Internet
111 Draft). Note that by doing so, you potentially lose
112 interoperability with other TLS implementations since these might
113 be using the same extension number for other purposes.
114
115 SSL_set_tlsext_opaque_prf_input(ssl, src, len) is used to set the
116 opaque PRF input value to use in the handshake. This will create
117 an interal copy of the length-'len' string at 'src', and will
118 return non-zero for success.
119
120 To get more control and flexibility, provide a callback function
121 by using
122
123 SSL_CTX_set_tlsext_opaque_prf_input_callback(ctx, cb)
124 SSL_CTX_set_tlsext_opaque_prf_input_callback_arg(ctx, arg)
125
126 where
127
128 int (*cb)(SSL *, void *peerinput, size_t len, void *arg);
129 void *arg;
130
131 Callback function 'cb' will be called in handshakes, and is
132 expected to use SSL_set_tlsext_opaque_prf_input() as appropriate.
133 Argument 'arg' is for application purposes (the value as given to
134 SSL_CTX_set_tlsext_opaque_prf_input_callback_arg() will directly
135 be provided to the callback function). The callback function
136 has to return non-zero to report success: usually 1 to use opaque
137 PRF input just if possible, or 2 to enforce use of the opaque PRF
138 input. In the latter case, the library will abort the handshake
139 if opaque PRF input is not successfully negotiated.
140
141 Arguments 'peerinput' and 'len' given to the callback function
142 will always be NULL and 0 in the case of a client. A server will
143 see the client's opaque PRF input through these variables if
144 available (NULL and 0 otherwise). Note that if the server
145 provides an opaque PRF input, the length must be the same as the
146 length of the client's opaque PRF input.
147
148 Note that the callback function will only be called when creating
149 a new session (session resumption can resume whatever was
150 previously negotiated), and will not be called in SSL 2.0
151 handshakes; thus, SSL_CTX_set_options(ctx, SSL_OP_NO_SSLv2) or
152 SSL_set_options(ssl, SSL_OP_NO_SSLv2) is especially recommended
153 for applications that need to enforce opaque PRF input.
154
155 [Bodo Moeller]
156
81025661
DSH
157 *) Update ssl code to support digests other than SHA1+MD5 for handshake
158 MAC.
159
160 [Victor B. Wagner <vitus@cryptocom.ru>]
161
6434abbf
DSH
162 *) Add RFC4507 support to OpenSSL. This includes the corrections in
163 RFC4507bis. The encrypted ticket format is an encrypted encoded
164 SSL_SESSION structure, that way new session features are automatically
165 supported.
166
ba0e826d
DSH
167 If a client application caches session in an SSL_SESSION structure
168 support is transparent because tickets are now stored in the encoded
169 SSL_SESSION.
170
171 The SSL_CTX structure automatically generates keys for ticket
172 protection in servers so again support should be possible
6434abbf
DSH
173 with no application modification.
174
175 If a client or server wishes to disable RFC4507 support then the option
176 SSL_OP_NO_TICKET can be set.
177
178 Add a TLS extension debugging callback to allow the contents of any client
179 or server extensions to be examined.
ec5d7473
DSH
180
181 This work was sponsored by Google.
6434abbf
DSH
182 [Steve Henson]
183
3c07d3a3
DSH
184 *) Final changes to avoid use of pointer pointer casts in OpenSSL.
185 OpenSSL should now compile cleanly on gcc 4.2
186 [Peter Hartley <pdh@utter.chaos.org.uk>, Steve Henson]
187
b948e2c5
DSH
188 *) Update SSL library to use new EVP_PKEY MAC API. Include generic MAC
189 support including streaming MAC support: this is required for GOST
190 ciphersuite support.
191 [Victor B. Wagner <vitus@cryptocom.ru>, Steve Henson]
192
9cfc8a9d
DSH
193 *) Add option -stream to use PKCS#7 streaming in smime utility. New
194 function i2d_PKCS7_bio_stream() and PEM_write_PKCS7_bio_stream()
195 to output in BER and PEM format.
196 [Steve Henson]
197
47b71e6e
DSH
198 *) Experimental support for use of HMAC via EVP_PKEY interface. This
199 allows HMAC to be handled via the EVP_DigestSign*() interface. The
200 EVP_PKEY "key" in this case is the HMAC key, potentially allowing
2022cfe0
DSH
201 ENGINE support for HMAC keys which are unextractable. New -mac and
202 -macopt options to dgst utility.
47b71e6e
DSH
203 [Steve Henson]
204
d952c79a
DSH
205 *) New option -sigopt to dgst utility. Update dgst to use
206 EVP_Digest{Sign,Verify}*. These two changes make it possible to use
207 alternative signing paramaters such as X9.31 or PSS in the dgst
208 utility.
209 [Steve Henson]
210
fd5bc65c
BM
211 *) Change ssl_cipher_apply_rule(), the internal function that does
212 the work each time a ciphersuite string requests enabling
213 ("foo+bar"), moving ("+foo+bar"), disabling ("-foo+bar", or
214 removing ("!foo+bar") a class of ciphersuites: Now it maintains
215 the order of disabled ciphersuites such that those ciphersuites
216 that most recently went from enabled to disabled not only stay
217 in order with respect to each other, but also have higher priority
218 than other disabled ciphersuites the next time ciphersuites are
219 enabled again.
220
221 This means that you can now say, e.g., "PSK:-PSK:HIGH" to enable
222 the same ciphersuites as with "HIGH" alone, but in a specific
223 order where the PSK ciphersuites come first (since they are the
224 most recently disabled ciphersuites when "HIGH" is parsed).
225
226 Also, change ssl_create_cipher_list() (using this new
227 funcionality) such that between otherwise identical
228 cihpersuites, ephemeral ECDH is preferred over ephemeral DH in
229 the default order.
230 [Bodo Moeller]
231
0a05123a
BM
232 *) Change ssl_create_cipher_list() so that it automatically
233 arranges the ciphersuites in reasonable order before starting
234 to process the rule string. Thus, the definition for "DEFAULT"
235 (SSL_DEFAULT_CIPHER_LIST) now is just "ALL:!aNULL:!eNULL", but
236 remains equivalent to "AES:ALL:!aNULL:!eNULL:+aECDH:+kRSA:+RC4:@STRENGTH".
237 This makes it much easier to arrive at a reasonable default order
238 in applications for which anonymous ciphers are OK (meaning
239 that you can't actually use DEFAULT).
240 [Bodo Moeller; suggested by Victor Duchovni]
241
52b8dad8
BM
242 *) Split the SSL/TLS algorithm mask (as used for ciphersuite string
243 processing) into multiple integers instead of setting
244 "SSL_MKEY_MASK" bits, "SSL_AUTH_MASK" bits, "SSL_ENC_MASK",
245 "SSL_MAC_MASK", and "SSL_SSL_MASK" bits all in a single integer.
246 (These masks as well as the individual bit definitions are hidden
247 away into the non-exported interface ssl/ssl_locl.h, so this
248 change to the definition of the SSL_CIPHER structure shouldn't
249 affect applications.) This give us more bits for each of these
250 categories, so there is no longer a need to coagulate AES128 and
251 AES256 into a single algorithm bit, and to coagulate Camellia128
252 and Camellia256 into a single algorithm bit, which has led to all
253 kinds of kludges.
254
255 Thus, among other things, the kludge introduced in 0.9.7m and
256 0.9.8e for masking out AES256 independently of AES128 or masking
257 out Camellia256 independently of AES256 is not needed here in 0.9.9.
258
259 With the change, we also introduce new ciphersuite aliases that
260 so far were missing: "AES128", "AES256", "CAMELLIA128", and
261 "CAMELLIA256".
262 [Bodo Moeller]
263
357d5de5
NL
264 *) Add support for dsa-with-SHA224 and dsa-with-SHA256.
265 Use the leftmost N bytes of the signature input if the input is
266 larger than the prime q (with N being the size in bytes of q).
267 [Nils Larsch]
268
11d8cdc6
DSH
269 *) Very *very* experimental PKCS#7 streaming encoder support. Nothing uses
270 it yet and it is largely untested.
271 [Steve Henson]
272
06e2dd03
NL
273 *) Add support for the ecdsa-with-SHA224/256/384/512 signature types.
274 [Nils Larsch]
275
de121164 276 *) Initial incomplete changes to avoid need for function casts in OpenSSL
297e6f19 277 some compilers (gcc 4.2 and later) reject their use. Safestack is
a6fbcb42 278 reimplemented. Update ASN1 to avoid use of legacy functions.
de121164
DSH
279 [Steve Henson]
280
3189772e
AP
281 *) Win32/64 targets are linked with Winsock2.
282 [Andy Polyakov]
283
010fa0b3
DSH
284 *) Add an X509_CRL_METHOD structure to allow CRL processing to be redirected
285 to external functions. This can be used to increase CRL handling
286 efficiency especially when CRLs are very large by (for example) storing
287 the CRL revoked certificates in a database.
288 [Steve Henson]
289
5d20c4fb
DSH
290 *) Overhaul of by_dir code. Add support for dynamic loading of CRLs so
291 new CRLs added to a directory can be used. New command line option
292 -verify_return_error to s_client and s_server. This causes real errors
293 to be returned by the verify callback instead of carrying on no matter
294 what. This reflects the way a "real world" verify callback would behave.
295 [Steve Henson]
296
297 *) GOST engine, supporting several GOST algorithms and public key formats.
298 Kindly donated by Cryptocom.
299 [Cryptocom]
300
bc7535bc
DSH
301 *) Partial support for Issuing Distribution Point CRL extension. CRLs
302 partitioned by DP are handled but no indirect CRL or reason partitioning
303 (yet). Complete overhaul of CRL handling: now the most suitable CRL is
304 selected via a scoring technique which handles IDP and AKID in CRLs.
305 [Steve Henson]
306
307 *) New X509_STORE_CTX callbacks lookup_crls() and lookup_certs() which
308 will ultimately be used for all verify operations: this will remove the
309 X509_STORE dependency on certificate verification and allow alternative
310 lookup methods. X509_STORE based implementations of these two callbacks.
311 [Steve Henson]
312
f6e7d014
DSH
313 *) Allow multiple CRLs to exist in an X509_STORE with matching issuer names.
314 Modify get_crl() to find a valid (unexpired) CRL if possible.
315 [Steve Henson]
316
edc54021
DSH
317 *) New function X509_CRL_match() to check if two CRLs are identical. Normally
318 this would be called X509_CRL_cmp() but that name is already used by
319 a function that just compares CRL issuer names. Cache several CRL
320 extensions in X509_CRL structure and cache CRLDP in X509.
321 [Steve Henson]
322
450ea834
DSH
323 *) Store a "canonical" representation of X509_NAME structure (ASN1 Name)
324 this maps equivalent X509_NAME structures into a consistent structure.
325 Name comparison can then be performed rapidly using memcmp().
326 [Steve Henson]
327
454dbbc5
DSH
328 *) Non-blocking OCSP request processing. Add -timeout option to ocsp
329 utility.
c1c6c0bf
DSH
330 [Steve Henson]
331
b7683e3a
DSH
332 *) Allow digests to supply their own micalg string for S/MIME type using
333 the ctrl EVP_MD_CTRL_MICALG.
334 [Steve Henson]
335
336 *) During PKCS7 signing pass the PKCS7 SignerInfo structure to the
337 EVP_PKEY_METHOD before and after signing via the EVP_PKEY_CTRL_PKCS7_SIGN
338 ctrl. It can then customise the structure before and/or after signing
339 if necessary.
340 [Steve Henson]
341
0ee2166c
DSH
342 *) New function OBJ_add_sigid() to allow application defined signature OIDs
343 to be added to OpenSSLs internal tables. New function OBJ_sigid_free()
344 to free up any added signature OIDs.
345 [Steve Henson]
346
5ba4bf35
DSH
347 *) New functions EVP_CIPHER_do_all(), EVP_CIPHER_do_all_sorted(),
348 EVP_MD_do_all() and EVP_MD_do_all_sorted() to enumerate internal
349 digest and cipher tables. New options added to openssl utility:
350 list-message-digest-algorithms and list-cipher-algorithms.
351 [Steve Henson]
352
c4e7870a
BM
353 *) Change the array representation of binary polynomials: the list
354 of degrees of non-zero coefficients is now terminated with -1.
355 Previously it was terminated with 0, which was also part of the
356 value; thus, the array representation was not applicable to
357 polynomials where t^0 has coefficient zero. This change makes
358 the array representation useful in a more general context.
359 [Douglas Stebila]
360
89bbe14c
BM
361 *) Various modifications and fixes to SSL/TLS cipher string
362 handling. For ECC, the code now distinguishes between fixed ECDH
363 with RSA certificates on the one hand and with ECDSA certificates
364 on the other hand, since these are separate ciphersuites. The
365 unused code for Fortezza ciphersuites has been removed.
366
367 For consistency with EDH, ephemeral ECDH is now called "EECDH"
368 (not "ECDHE"). For consistency with the code for DH
369 certificates, use of ECDH certificates is now considered ECDH
370 authentication, not RSA or ECDSA authentication (the latter is
371 merely the CA's signing algorithm and not actively used in the
372 protocol).
373
374 The temporary ciphersuite alias "ECCdraft" is no longer
375 available, and ECC ciphersuites are no longer excluded from "ALL"
376 and "DEFAULT". The following aliases now exist for RFC 4492
377 ciphersuites, most of these by analogy with the DH case:
378
379 kECDHr - ECDH cert, signed with RSA
380 kECDHe - ECDH cert, signed with ECDSA
381 kECDH - ECDH cert (signed with either RSA or ECDSA)
382 kEECDH - ephemeral ECDH
383 ECDH - ECDH cert or ephemeral ECDH
384
385 aECDH - ECDH cert
386 aECDSA - ECDSA cert
387 ECDSA - ECDSA cert
388
389 AECDH - anonymous ECDH
390 EECDH - non-anonymous ephemeral ECDH (equivalent to "kEECDH:-AECDH")
391
392 [Bodo Moeller]
393
fb7b3932
DSH
394 *) Add additional S/MIME capabilities for AES and GOST ciphers if supported.
395 Use correct micalg parameters depending on digest(s) in signed message.
396 [Steve Henson]
397
01b8b3c7
DSH
398 *) Add engine support for EVP_PKEY_ASN1_METHOD. Add functions to process
399 an ENGINE asn1 method. Support ENGINE lookups in the ASN1 code.
400 [Steve Henson]
de9fcfe3 401
58aa573a 402 *) Initial engine support for EVP_PKEY_METHOD. New functions to permit
c9777d26
DSH
403 an engine to register a method. Add ENGINE lookups for methods and
404 functional reference processing.
58aa573a
DSH
405 [Steve Henson]
406
91c9e621
DSH
407 *) New functions EVP_Digest{Sign,Verify)*. These are enchance versions of
408 EVP_{Sign,Verify}* which allow an application to customise the signature
409 process.
410 [Steve Henson]
411
55311921
DSH
412 *) New -resign option to smime utility. This adds one or more signers
413 to an existing PKCS#7 signedData structure. Also -md option to use an
414 alternative message digest algorithm for signing.
415 [Steve Henson]
416
a6e7fcd1
DSH
417 *) Tidy up PKCS#7 routines and add new functions to make it easier to
418 create PKCS7 structures containing multiple signers. Update smime
419 application to support multiple signers.
420 [Steve Henson]
421
121dd39f
DSH
422 *) New -macalg option to pkcs12 utility to allow setting of an alternative
423 digest MAC.
424 [Steve Henson]
425
856640b5 426 *) Initial support for PKCS#5 v2.0 PRFs other than default SHA1 HMAC.
b8f702a0 427 Reorganize PBE internals to lookup from a static table using NIDs,
6d3a1eac
DSH
428 add support for HMAC PBE OID translation. Add a EVP_CIPHER ctrl:
429 EVP_CTRL_PBE_PRF_NID this allows a cipher to specify an alternative
430 PRF which will be automatically used with PBES2.
856640b5
DSH
431 [Steve Henson]
432
34b3c72e 433 *) Replace the algorithm specific calls to generate keys in "req" with the
959e8dfe
DSH
434 new API.
435 [Steve Henson]
436
399a6f0b
DSH
437 *) Update PKCS#7 enveloped data routines to use new API. This is now
438 supported by any public key method supporting the encrypt operation. A
439 ctrl is added to allow the public key algorithm to examine or modify
440 the PKCS#7 RecipientInfo structure if it needs to: for RSA this is
441 a no op.
442 [Steve Henson]
28e4fe34 443
03919683
DSH
444 *) Add a ctrl to asn1 method to allow a public key algorithm to express
445 a default digest type to use. In most cases this will be SHA1 but some
446 algorithms (such as GOST) need to specify an alternative digest. The
447 return value indicates how strong the prefernce is 1 means optional and
448 2 is mandatory (that is it is the only supported type). Modify
449 ASN1_item_sign() to accept a NULL digest argument to indicate it should
450 use the default md. Update openssl utilities to use the default digest
451 type for signing if it is not explicitly indicated.
452 [Steve Henson]
453
ee1d9ec0
DSH
454 *) Use OID cross reference table in ASN1_sign() and ASN1_verify(). New
455 EVP_MD flag EVP_MD_FLAG_PKEY_METHOD_SIGNATURE. This uses the relevant
456 signing method from the key type. This effectively removes the link
457 between digests and public key types.
458 [Steve Henson]
459
d2027098
DSH
460 *) Add an OID cross reference table and utility functions. Its purpose is to
461 translate between signature OIDs such as SHA1WithrsaEncryption and SHA1,
462 rsaEncryption. This will allow some of the algorithm specific hackery
463 needed to use the correct OID to be removed.
464 [Steve Henson]
465
492a9e24
DSH
466 *) Remove algorithm specific dependencies when setting PKCS7_SIGNER_INFO
467 structures for PKCS7_sign(). They are now set up by the relevant public
468 key ASN1 method.
469 [Steve Henson]
470
9ca7047d
DSH
471 *) Add provisional EC pkey method with support for ECDSA and ECDH.
472 [Steve Henson]
473
ffb1ac67
DSH
474 *) Add support for key derivation (agreement) in the API, DH method and
475 pkeyutl.
476 [Steve Henson]
477
3ba0885a
DSH
478 *) Add DSA pkey method and DH pkey methods, extend DH ASN1 method to support
479 public and private key formats. As a side effect these add additional
480 command line functionality not previously available: DSA signatures can be
481 generated and verified using pkeyutl and DH key support and generation in
482 pkey, genpkey.
483 [Steve Henson]
484
4700aea9
UM
485 *) BeOS support.
486 [Oliver Tappe <zooey@hirschkaefer.de>]
487
488 *) New make target "install_html_docs" installs HTML renditions of the
489 manual pages.
490 [Oliver Tappe <zooey@hirschkaefer.de>]
491
f5cda4cb
DSH
492 *) New utility "genpkey" this is analagous to "genrsa" etc except it can
493 generate keys for any algorithm. Extend and update EVP_PKEY_METHOD to
494 support key and parameter generation and add initial key generation
495 functionality for RSA.
496 [Steve Henson]
497
f733a5ef
DSH
498 *) Add functions for main EVP_PKEY_method operations. The undocumented
499 functions EVP_PKEY_{encrypt,decrypt} have been renamed to
500 EVP_PKEY_{encrypt,decrypt}_old.
501 [Steve Henson]
502
0b6f3c66
DSH
503 *) Initial definitions for EVP_PKEY_METHOD. This will be a high level public
504 key API, doesn't do much yet.
505 [Steve Henson]
506
0b33dac3
DSH
507 *) New function EVP_PKEY_asn1_get0_info() to retrieve information about
508 public key algorithms. New option to openssl utility:
509 "list-public-key-algorithms" to print out info.
510 [Steve Henson]
511
33273721
BM
512 *) Implement the Supported Elliptic Curves Extension for
513 ECC ciphersuites from draft-ietf-tls-ecc-12.txt.
514 [Douglas Stebila]
515
246e0931
DSH
516 *) Don't free up OIDs in OBJ_cleanup() if they are in use by EVP_MD or
517 EVP_CIPHER structures to avoid later problems in EVP_cleanup().
518 [Steve Henson]
519
3e4585c8 520 *) New utilities pkey and pkeyparam. These are similar to algorithm specific
f5cda4cb 521 utilities such as rsa, dsa, dsaparam etc except they process any key
3e4585c8 522 type.
3e84b6e1
DSH
523 [Steve Henson]
524
35208f36
DSH
525 *) Transfer public key printing routines to EVP_PKEY_ASN1_METHOD. New
526 functions EVP_PKEY_print_public(), EVP_PKEY_print_private(),
527 EVP_PKEY_print_param() to print public key data from an EVP_PKEY
528 structure.
529 [Steve Henson]
530
448be743
DSH
531 *) Initial support for pluggable public key ASN1.
532 De-spaghettify the public key ASN1 handling. Move public and private
533 key ASN1 handling to a new EVP_PKEY_ASN1_METHOD structure. Relocate
534 algorithm specific handling to a single module within the relevant
535 algorithm directory. Add functions to allow (near) opaque processing
536 of public and private key structures.
537 [Steve Henson]
538
36ca4ba6
BM
539 *) Implement the Supported Point Formats Extension for
540 ECC ciphersuites from draft-ietf-tls-ecc-12.txt.
541 [Douglas Stebila]
542
ddac1974
NL
543 *) Add initial support for RFC 4279 PSK TLS ciphersuites. Add members
544 for the psk identity [hint] and the psk callback functions to the
545 SSL_SESSION, SSL and SSL_CTX structure.
546
547 New ciphersuites:
548 PSK-RC4-SHA, PSK-3DES-EDE-CBC-SHA, PSK-AES128-CBC-SHA,
549 PSK-AES256-CBC-SHA
550
551 New functions:
552 SSL_CTX_use_psk_identity_hint
553 SSL_get_psk_identity_hint
554 SSL_get_psk_identity
555 SSL_use_psk_identity_hint
556
557 [Mika Kousa and Pasi Eronen of Nokia Corporation]
558
c7235be6
UM
559 *) Add RFC 3161 compliant time stamp request creation, response generation
560 and response verification functionality.
561