]> git.ipfire.org Git - thirdparty/openssl.git/blame - CHANGES
ensure that the EVP_CIPHER_CTX object is initialized
[thirdparty/openssl.git] / CHANGES
CommitLineData
81a6c781 1
f1c236f8 2 OpenSSL CHANGES
651d0aff
RE
3 _______________
4
3c5406b3 5 Changes between 0.9.8e and 0.9.9 [xx XXX xxxx]
3ff55e96 6
357d5de5
NL
7 *) Add support for dsa-with-SHA224 and dsa-with-SHA256.
8 Use the leftmost N bytes of the signature input if the input is
9 larger than the prime q (with N being the size in bytes of q).
10 [Nils Larsch]
11
11d8cdc6
DSH
12 *) Very *very* experimental PKCS#7 streaming encoder support. Nothing uses
13 it yet and it is largely untested.
14 [Steve Henson]
15
06e2dd03
NL
16 *) Add support for the ecdsa-with-SHA224/256/384/512 signature types.
17 [Nils Larsch]
18
de121164
DSH
19 *) Initial incomplete changes to avoid need for function casts in OpenSSL
20 when OPENSSL_NO_FCAST is set: some compilers (gcc 4.2 and later) reject
21 their use. Safestack is reimplemented using inline functions: tests show
22 that these calls are typically optimized away by compilers so they have
23 no additional overhead. Update ASN1 to avoid use of legacy functions.
24 [Steve Henson]
25
3189772e
AP
26 *) Win32/64 targets are linked with Winsock2.
27 [Andy Polyakov]
28
010fa0b3
DSH
29 *) Add an X509_CRL_METHOD structure to allow CRL processing to be redirected
30 to external functions. This can be used to increase CRL handling
31 efficiency especially when CRLs are very large by (for example) storing
32 the CRL revoked certificates in a database.
33 [Steve Henson]
34
5d20c4fb
DSH
35 *) Overhaul of by_dir code. Add support for dynamic loading of CRLs so
36 new CRLs added to a directory can be used. New command line option
37 -verify_return_error to s_client and s_server. This causes real errors
38 to be returned by the verify callback instead of carrying on no matter
39 what. This reflects the way a "real world" verify callback would behave.
40 [Steve Henson]
41
42 *) GOST engine, supporting several GOST algorithms and public key formats.
43 Kindly donated by Cryptocom.
44 [Cryptocom]
45
bc7535bc
DSH
46 *) Partial support for Issuing Distribution Point CRL extension. CRLs
47 partitioned by DP are handled but no indirect CRL or reason partitioning
48 (yet). Complete overhaul of CRL handling: now the most suitable CRL is
49 selected via a scoring technique which handles IDP and AKID in CRLs.
50 [Steve Henson]
51
52 *) New X509_STORE_CTX callbacks lookup_crls() and lookup_certs() which
53 will ultimately be used for all verify operations: this will remove the
54 X509_STORE dependency on certificate verification and allow alternative
55 lookup methods. X509_STORE based implementations of these two callbacks.
56 [Steve Henson]
57
f6e7d014
DSH
58 *) Allow multiple CRLs to exist in an X509_STORE with matching issuer names.
59 Modify get_crl() to find a valid (unexpired) CRL if possible.
60 [Steve Henson]
61
edc54021
DSH
62 *) New function X509_CRL_match() to check if two CRLs are identical. Normally
63 this would be called X509_CRL_cmp() but that name is already used by
64 a function that just compares CRL issuer names. Cache several CRL
65 extensions in X509_CRL structure and cache CRLDP in X509.
66 [Steve Henson]
67
450ea834
DSH
68 *) Store a "canonical" representation of X509_NAME structure (ASN1 Name)
69 this maps equivalent X509_NAME structures into a consistent structure.
70 Name comparison can then be performed rapidly using memcmp().
71 [Steve Henson]
72
454dbbc5
DSH
73 *) Non-blocking OCSP request processing. Add -timeout option to ocsp
74 utility.
c1c6c0bf
DSH
75 [Steve Henson]
76
b7683e3a
DSH
77 *) Allow digests to supply their own micalg string for S/MIME type using
78 the ctrl EVP_MD_CTRL_MICALG.
79 [Steve Henson]
80
81 *) During PKCS7 signing pass the PKCS7 SignerInfo structure to the
82 EVP_PKEY_METHOD before and after signing via the EVP_PKEY_CTRL_PKCS7_SIGN
83 ctrl. It can then customise the structure before and/or after signing
84 if necessary.
85 [Steve Henson]
86
0ee2166c
DSH
87 *) New function OBJ_add_sigid() to allow application defined signature OIDs
88 to be added to OpenSSLs internal tables. New function OBJ_sigid_free()
89 to free up any added signature OIDs.
90 [Steve Henson]
91
5ba4bf35
DSH
92 *) New functions EVP_CIPHER_do_all(), EVP_CIPHER_do_all_sorted(),
93 EVP_MD_do_all() and EVP_MD_do_all_sorted() to enumerate internal
94 digest and cipher tables. New options added to openssl utility:
95 list-message-digest-algorithms and list-cipher-algorithms.
96 [Steve Henson]
97
48fc582f
BM
98 *) In addition to the numerical (unsigned long) thread ID, provide
99 for a pointer (void *) thread ID. This helps accomodate systems
100 that do not provide an unsigned long thread ID. OpenSSL assumes
101 it is in the same thread iff both the numerical and the pointer
102 thread ID agree; so applications are just required to define one
103 of them appropriately (e.g., by using a pointer to a per-thread
104 memory object malloc()ed by the application for the pointer-type
105 thread ID). Exactly analoguous to the existing functions
106
107 void CRYPTO_set_id_callback(unsigned long (*func)(void));
108 unsigned long (*CRYPTO_get_id_callback(void))(void);
109 unsigned long CRYPTO_thread_id(void);
110
111 we now have additional functions
112
113 void CRYPTO_set_idptr_callback(void *(*func)(void));
114 void *(*CRYPTO_get_idptr_callback(void))(void);
115 void *CRYPTO_thread_idptr(void);
116
117 also in <openssl/crypto.h>. The default value for
118 CRYPTO_thread_idptr() if the application has not provided its own
119 callback is &errno.
120 [Bodo Moeller]
121
c4e7870a
BM
122 *) Change the array representation of binary polynomials: the list
123 of degrees of non-zero coefficients is now terminated with -1.
124 Previously it was terminated with 0, which was also part of the
125 value; thus, the array representation was not applicable to
126 polynomials where t^0 has coefficient zero. This change makes
127 the array representation useful in a more general context.
128 [Douglas Stebila]
129
89bbe14c
BM
130 *) Various modifications and fixes to SSL/TLS cipher string
131 handling. For ECC, the code now distinguishes between fixed ECDH
132 with RSA certificates on the one hand and with ECDSA certificates
133 on the other hand, since these are separate ciphersuites. The
134 unused code for Fortezza ciphersuites has been removed.
135
136 For consistency with EDH, ephemeral ECDH is now called "EECDH"
137 (not "ECDHE"). For consistency with the code for DH
138 certificates, use of ECDH certificates is now considered ECDH
139 authentication, not RSA or ECDSA authentication (the latter is
140 merely the CA's signing algorithm and not actively used in the
141 protocol).
142
143 The temporary ciphersuite alias "ECCdraft" is no longer
144 available, and ECC ciphersuites are no longer excluded from "ALL"
145 and "DEFAULT". The following aliases now exist for RFC 4492
146 ciphersuites, most of these by analogy with the DH case:
147
148 kECDHr - ECDH cert, signed with RSA
149 kECDHe - ECDH cert, signed with ECDSA
150 kECDH - ECDH cert (signed with either RSA or ECDSA)
151 kEECDH - ephemeral ECDH
152 ECDH - ECDH cert or ephemeral ECDH
153
154 aECDH - ECDH cert
155 aECDSA - ECDSA cert
156 ECDSA - ECDSA cert
157
158 AECDH - anonymous ECDH
159 EECDH - non-anonymous ephemeral ECDH (equivalent to "kEECDH:-AECDH")
160
161 [Bodo Moeller]
162
fb7b3932
DSH
163 *) Add additional S/MIME capabilities for AES and GOST ciphers if supported.
164 Use correct micalg parameters depending on digest(s) in signed message.
165 [Steve Henson]
166
01b8b3c7
DSH
167 *) Add engine support for EVP_PKEY_ASN1_METHOD. Add functions to process
168 an ENGINE asn1 method. Support ENGINE lookups in the ASN1 code.
169 [Steve Henson]
de9fcfe3 170
58aa573a 171 *) Initial engine support for EVP_PKEY_METHOD. New functions to permit
c9777d26
DSH
172 an engine to register a method. Add ENGINE lookups for methods and
173 functional reference processing.
58aa573a
DSH
174 [Steve Henson]
175
91c9e621
DSH
176 *) New functions EVP_Digest{Sign,Verify)*. These are enchance versions of
177 EVP_{Sign,Verify}* which allow an application to customise the signature
178 process.
179 [Steve Henson]
180
55311921
DSH
181 *) New -resign option to smime utility. This adds one or more signers
182 to an existing PKCS#7 signedData structure. Also -md option to use an
183 alternative message digest algorithm for signing.
184 [Steve Henson]
185
a6e7fcd1
DSH
186 *) Tidy up PKCS#7 routines and add new functions to make it easier to
187 create PKCS7 structures containing multiple signers. Update smime
188 application to support multiple signers.
189 [Steve Henson]
190
121dd39f
DSH
191 *) New -macalg option to pkcs12 utility to allow setting of an alternative
192 digest MAC.
193 [Steve Henson]
194
856640b5 195 *) Initial support for PKCS#5 v2.0 PRFs other than default SHA1 HMAC.
b8f702a0 196 Reorganize PBE internals to lookup from a static table using NIDs,
6d3a1eac
DSH
197 add support for HMAC PBE OID translation. Add a EVP_CIPHER ctrl:
198 EVP_CTRL_PBE_PRF_NID this allows a cipher to specify an alternative
199 PRF which will be automatically used with PBES2.
856640b5
DSH
200 [Steve Henson]
201
34b3c72e 202 *) Replace the algorithm specific calls to generate keys in "req" with the
959e8dfe
DSH
203 new API.
204 [Steve Henson]
205
399a6f0b
DSH
206 *) Update PKCS#7 enveloped data routines to use new API. This is now
207 supported by any public key method supporting the encrypt operation. A
208 ctrl is added to allow the public key algorithm to examine or modify
209 the PKCS#7 RecipientInfo structure if it needs to: for RSA this is
210 a no op.
211 [Steve Henson]
28e4fe34 212
03919683
DSH
213 *) Add a ctrl to asn1 method to allow a public key algorithm to express
214 a default digest type to use. In most cases this will be SHA1 but some
215 algorithms (such as GOST) need to specify an alternative digest. The
216 return value indicates how strong the prefernce is 1 means optional and
217 2 is mandatory (that is it is the only supported type). Modify
218 ASN1_item_sign() to accept a NULL digest argument to indicate it should
219 use the default md. Update openssl utilities to use the default digest
220 type for signing if it is not explicitly indicated.
221 [Steve Henson]
222
ee1d9ec0
DSH
223 *) Use OID cross reference table in ASN1_sign() and ASN1_verify(). New
224 EVP_MD flag EVP_MD_FLAG_PKEY_METHOD_SIGNATURE. This uses the relevant
225 signing method from the key type. This effectively removes the link
226 between digests and public key types.
227 [Steve Henson]
228
d2027098
DSH
229 *) Add an OID cross reference table and utility functions. Its purpose is to
230 translate between signature OIDs such as SHA1WithrsaEncryption and SHA1,
231 rsaEncryption. This will allow some of the algorithm specific hackery
232 needed to use the correct OID to be removed.
233 [Steve Henson]
234
492a9e24
DSH
235 *) Remove algorithm specific dependencies when setting PKCS7_SIGNER_INFO
236 structures for PKCS7_sign(). They are now set up by the relevant public
237 key ASN1 method.
238 [Steve Henson]
239
9ca7047d
DSH
240 *) Add provisional EC pkey method with support for ECDSA and ECDH.
241 [Steve Henson]
242
ffb1ac67
DSH
243 *) Add support for key derivation (agreement) in the API, DH method and
244 pkeyutl.
245 [Steve Henson]
246
3ba0885a
DSH
247 *) Add DSA pkey method and DH pkey methods, extend DH ASN1 method to support
248 public and private key formats. As a side effect these add additional
249 command line functionality not previously available: DSA signatures can be
250 generated and verified using pkeyutl and DH key support and generation in
251 pkey, genpkey.
252 [Steve Henson]
253
4700aea9
UM
254 *) BeOS support.
255 [Oliver Tappe <zooey@hirschkaefer.de>]
256
257 *) New make target "install_html_docs" installs HTML renditions of the
258 manual pages.
259 [Oliver Tappe <zooey@hirschkaefer.de>]
260
f5cda4cb
DSH
261 *) New utility "genpkey" this is analagous to "genrsa" etc except it can
262 generate keys for any algorithm. Extend and update EVP_PKEY_METHOD to
263 support key and parameter generation and add initial key generation
264 functionality for RSA.
265 [Steve Henson]
266
f733a5ef
DSH
267 *) Add functions for main EVP_PKEY_method operations. The undocumented
268 functions EVP_PKEY_{encrypt,decrypt} have been renamed to
269 EVP_PKEY_{encrypt,decrypt}_old.
270 [Steve Henson]
271
0b6f3c66
DSH
272 *) Initial definitions for EVP_PKEY_METHOD. This will be a high level public
273 key API, doesn't do much yet.
274 [Steve Henson]
275
0b33dac3
DSH
276 *) New function EVP_PKEY_asn1_get0_info() to retrieve information about
277 public key algorithms. New option to openssl utility:
278 "list-public-key-algorithms" to print out info.
279 [Steve Henson]
280
33273721
BM
281 *) Implement the Supported Elliptic Curves Extension for
282 ECC ciphersuites from draft-ietf-tls-ecc-12.txt.
283 [Douglas Stebila]
284
246e0931
DSH
285 *) Don't free up OIDs in OBJ_cleanup() if they are in use by EVP_MD or
286 EVP_CIPHER structures to avoid later problems in EVP_cleanup().
287 [Steve Henson]
288
3e4585c8 289 *) New utilities pkey and pkeyparam. These are similar to algorithm specific
f5cda4cb 290 utilities such as rsa, dsa, dsaparam etc except they process any key
3e4585c8 291 type.
3e84b6e1
DSH
292 [Steve Henson]
293
35208f36
DSH
294 *) Transfer public key printing routines to EVP_PKEY_ASN1_METHOD. New
295 functions EVP_PKEY_print_public(), EVP_PKEY_print_private(),
296 EVP_PKEY_print_param() to print public key data from an EVP_PKEY
297 structure.
298 [Steve Henson]
299
448be743
DSH
300 *) Initial support for pluggable public key ASN1.
301 De-spaghettify the public key ASN1 handling. Move public and private
302 key ASN1 handling to a new EVP_PKEY_ASN1_METHOD structure. Relocate
303 algorithm specific handling to a single module within the relevant
304 algorithm directory. Add functions to allow (near) opaque processing
305 of public and private key structures.
306 [Steve Henson]
307
36ca4ba6
BM
308 *) Implement the Supported Point Formats Extension for
309 ECC ciphersuites from draft-ietf-tls-ecc-12.txt.
310 [Douglas Stebila]
311
ddac1974
NL
312 *) Add initial support for RFC 4279 PSK TLS ciphersuites. Add members
313 for the psk identity [hint] and the psk callback functions to the
314 SSL_SESSION, SSL and SSL_CTX structure.
315
316 New ciphersuites:
317 PSK-RC4-SHA, PSK-3DES-EDE-CBC-SHA, PSK-AES128-CBC-SHA,
318 PSK-AES256-CBC-SHA
319
320 New functions:
321 SSL_CTX_use_psk_identity_hint
322 SSL_get_psk_identity_hint
323 SSL_get_psk_identity
324 SSL_use_psk_identity_hint
325
326 [Mika Kousa and Pasi Eronen of Nokia Corporation]
327
c7235be6
UM
328 *) Add RFC 3161 compliant time stamp request creation, response generation
329 and response verification functionality.
330