]> git.ipfire.org Git - thirdparty/openssl.git/blame - CHANGES
Remove temporary files when done.
[thirdparty/openssl.git] / CHANGES
CommitLineData
f1c236f8 1 OpenSSL CHANGES
651d0aff
RE
2 _______________
3
c5e8580e 4 Changes between 0.9.6 and 0.9.7 [xx XXX 2000]
a43cf9fa 5
acba75c5
DSH
6 *) New option -set_serial to 'req' and 'x509' this allows the serial
7 number to use to be specified on the command line. Previously self
8 signed certificates were hard coded with serial number 0 and the
9 CA options of 'x509' had to use a serial number in a file which was
10 auto incremented.
11 [Steve Henson]
12
934397ec
BM
13 *) Avoid false positives in memory leak detection code (crypto/mem_dbg.c)
14 due to incorrect handling of multi-threading:
15
16 1. Fix timing glitch in the MemCheck_off() portion of CRYPTO_mem_ctrl().
17
18 2. Fix logical glitch in is_MemCheck_on() aka CRYPTO_is_mem_check_on().
19
20 3. Count how many times MemCheck_off() has been called so that
21 nested use can be treated correctly. This also avoids
22 inband-signalling in the previous code (which relied on the
23 assumption that thread ID 0 is impossible).
24 [Bodo Moeller]
25
a6b7ffdd
DSH
26 *) New options to 'ca' utility to support V2 CRL entry extensions.
27 Currently CRL reason, invalidity date and hold instruction are
28 supported. Add new CRL extensions to V3 code and some new objects.
29 [Steve Henson]
30
f30d34f3
LJ
31 *) Add "-rand" option also to s_client and s_server.
32 [Lutz Jaenicke]
33
f2e5ca84
DSH
34 *) New function EVP_CIPHER_CTX_set_padding() this is used to
35 disable standard block padding (aka PKCS#5 padding) in the EVP
36 API, which was previously mandatory. This means that the data is
37 not padded in any way and so the total length much be a multiple
38 of the block size, otherwise an error occurs.
39 [Steve Henson]
40
cdc7b8cc
DSH
41 *) Initial (incomplete) OCSP SSL support.
42 [Steve Henson]
43
720235ee
UM
44 *) Fix CPU detection on Irix 6.x.
45 [Kurt Hockenbury <khockenb@stevens-tech.edu> and
46 "Bruce W. Forsberg" <bruce.forsberg@baesystems.com>]
47
67c18019
DSH
48 *) New function OCSP_parse_url(). This splits up a URL into its host,
49 port and path components: primarily to parse OCSP URLs. New -url
50 option to ocsp utility.
51 [Steve Henson]
52
46a58ab9
DSH
53 *) New nonce behavior. The return value of OCSP_check_nonce() now
54 reflects the various checks performed. Applications can decide
55 whether to tolerate certain situations such as an absent nonce
56 in a response when one was present in a request: the ocsp application
57 just prints out a warning. New function OCSP_add1_basic_nonce()
58 this is to allow responders to include a nonce in a response even if
59 the request is nonce-less.
60 [Steve Henson]
61
94fcd013
DSH
62 *) Use the cached encoding of an X509_NAME structure rather than
63 copying it. This is apparently the reason for the libsafe "errors"
64 but the code is actually correct.
65 [Steve Henson]
66
620cea37
BM
67 *) Disable stdin buffering in load_cert (apps/apps.c) so that no certs are
68 skipped when using openssl x509 multiple times on a single input file,
69 e.g. "(openssl x509 -out cert1; openssl x509 -out cert2) <certs".
70 [Bodo Moeller]
71
ccb08f98
DSH
72 *) Make ASN1_UTCTIME_set_string() and ASN1_GENERALIZEDTIME_set_string()
73 set string type: to handle setting ASN1_TIME structures. Fix ca
74 utility to correctly initialize revocation date of CRLs.
75 [Steve Henson]
76
836f9960
LJ
77 *) New option SSL_OP_CIPHER_SERVER_PREFERENCE allows the server to override
78 the clients preferred ciphersuites and rather use its own preferences.
79 Should help to work around M$ SGC (Server Gated Cryptography) bug in
80 Internet Explorer by ensuring unchanged hash method during stepup.
81 [Lutz Jaenicke]
82
c47c6196
DSH
83 *) Make mkdef.pl recognise all DECLARE_ASN1 macros, change rijndael
84 to aes and add a new 'exist' option to print out symbols that don't
85 appear to exist.
86 [Steve Henson]
87
8c950429
DSH
88 *) Additional options to ocsp utility to allow flags to be set and
89 additional certificates supplied.
90 [Steve Henson]
91
9235adbf
RL
92 *) Add the option -VAfile to 'openssl ocsp', so the user can give the
93 OCSP client a number of certificate to only verify the response
94 signature against.
95 [Richard Levitte]
96
57e7d3ce
UM
97 *) Add new function BN_rand_range(), and fix DSA_sign_setup() to prevent
98 Bleichenbacher's DSA attack.
35ed8cb8 99 [Ulf Moeller, Bodo Moeller]
57e7d3ce 100
deb2c1a1
DSH
101 *) Update Rijndael code to version 3.0 and change EVP AES ciphers to
102 handle the new API. Currently only ECB, CBC modes supported. Add new
103 AES OIDs. Add TLS AES ciphersuites as described in the "AES Ciphersuites
104 for TLS" draft-ietf-tls-ciphersuite-03.txt.
105 [Ben Laurie, Steve Henson]
106
9eea2be6
BM
107 *) In the NCONF_...-based implementations for CONF_... queries
108 (crypto/conf/conf_lib.c), if the input LHASH is NULL, avoid using
109 a temporary CONF structure with the data component set to NULL
110 (which gives segmentation faults in lh_retrieve).
111 Instead, use NULL for the CONF pointer in CONF_get_string and
112 CONF_get_number (which may use environment variables) and directly
113 return NULL from CONF_get_section.
114 [Bodo Moeller]
115
741a9690
UM
116 *) Fix potential buffer overrun for EBCDIC.
117 [Ulf Moeller]
118
26e083cc
DSH
119 *) New function OCSP_copy_nonce() to copy nonce value (if present) from
120 request to response.
121 [Steve Henson]
122
02e4fbed
DSH
123 *) Functions for OCSP responders. OCSP_request_onereq_count(),
124 OCSP_request_onereq_get0(), OCSP_onereq_get0_id() and OCSP_id_get0_info()
125 extract information from a certificate request. OCSP_response_create()
126 creates a response and optionally adds a basic response structure.
127 OCSP_basic_add1_status() adds a complete single response to a basic
128 reponse and returns the OCSP_SINGLERESP structure just added (to allow
129 extensions to be included for example). OCSP_basic_add1_cert() adds a
130 certificate to a basic response and OCSP_basic_sign() signs a basic
131 response with various flags. New helper functions ASN1_TIME_check()
132 (checks validity of ASN1_TIME structure) and ASN1_TIME_to_generalizedtime()
133 (converts ASN1_TIME to GeneralizedTime).
134 [Steve Henson]
135
88ce56f8
DSH
136 *) Various new functions. EVP_Digest() combines EVP_Digest{Init,Update,Final}()
137 in a single operation. X509_get0_pubkey_bitstr() extracts the public_key
138 structure from a certificate. X509_pubkey_digest() digests tha public_key
139 contents: this is used in various key identifiers.
140 [Steve Henson]
141
8cff6331
DSH
142 *) Tolerate nonRepudiation as being valid for S/MIME signing and certSign
143 keyUsage if basicConstraints absent for a CA.
144 [Steve Henson]
145
903872d6
RL
146 *) Make SMIME_write_PKCS7() write mail header values with a format that
147 is more generally accepted (no spaces before the semicolon), since
148 some programs can't parse those values properly otherwise. Also make
149 sure BIO's that break lines after each write do not create invalid
150 headers.
151 [Richard Levitte]
152
b8470240
DSH
153 *) Make sk_sort() tolerate a NULL argument.
154 [Steve Henson reported by Massimiliano Pala <madwolf@comune.modena.it>]
155
50d51991
DSH
156 *) New OCSP verify flag OCSP_TRUSTOTHER. When set the "other" certificates
157 passed by the function are trusted implicitly. If any of them signed the
158 reponse then it is assumed to be valid and is not verified.
159 [Steve Henson]
160
a342cc5a
DSH
161 *) Zero the premaster secret after deriving the master secret in
162 DH ciphersuites.
163 [Steve Henson]
164
a43cf9fa
DSH
165 *) In PKCS7_set_type() initialise content_type in PKCS7_ENC_CONTENT
166 to data. This was previously part of the PKCS7 ASN1 code. This
167 was causing problems with OpenSSL created PKCS#12 and PKCS#7 structures.
168 [Steve Henson, reported by Kenneth R. Robinette
169 <support@securenetterm.com>]
170
171 *) Add CRYPTO_push_info() and CRYPTO_pop_info() calls to new ASN1
172 routines: without these tracing memory leaks is very painful.
173 Fix leaks in PKCS12 and PKCS7 routines.
174 [Steve Henson]
175
75802000
UM
176 *) Fix for Irix with NO_ASM.
177 ["Bruce W. Forsberg" <bruce.forsberg@baesystems.com>]
178
ae0665b8
BM
179 *) Add some EVP_add_digest_alias registrations (as found in
180 OpenSSL_add_all_digests()), to SSL_library_init()
181 aka OpenSSL_add_ssl_algorithms(). This provides improved
182 compatibility with peers using X.509 certificates
183 with unconventional AlgorithmIdentifier OIDs.
184 [Bodo Moeller]
185
893b76c5
UM
186 *) ./config script fixes.
187 [Ulf Moeller, Richard Levitte]
188
ba8e2824
DSH
189 *) Make X509_time_adj() cope with the new behaviour of ASN1_TIME_new().
190 Previously it initialised the 'type' argument to V_ASN1_UTCTIME which
191 effectively meant GeneralizedTime would never be used. Now it
192 is initialised to -1 but X509_time_adj() now has to check the value
193 and use ASN1_TIME_set() if the value is not V_ASN1_UTCTIME or
194 V_ASN1_GENERALIZEDTIME, without this it always uses GeneralizedTime.
195 [Steve Henson, reported by Kenneth R. Robinette
196 <support@securenetterm.com>]
197
8e8972bb
DSH
198 *) Fixes to BN_to_ASN1_INTEGER when bn is zero. This would previously
199 result in a zero length in the ASN1_INTEGER structure which was
200 not consistent with the structure when d2i_ASN1_INTEGER() was used
201 and would cause ASN1_INTEGER_cmp() to fail. Enhance s2i_ASN1_INTEGER()
202 to cope with hex and negative integers. Fix bug in i2a_ASN1_INTEGER()
203 where it did not print out a minus for negative ASN1_INTEGER.
204 [Steve Henson]
205
57108f0a
BM
206 *) Fix 'openssl passwd -1'.
207 [Bodo Moeller]
208
73758d43
DSH
209 *) Add summary printout to ocsp utility. The various functions which
210 convert status values to strings have been renamed to:
211 OCSP_response_status_str(), OCSP_cert_status_str() and
212 OCSP_crl_reason_str() and are no longer static. New options
213 to verify nonce values and to disable verification. OCSP response
214 printout format cleaned up.
215 [Steve Henson]
216
e8af92fc
DSH
217 *) Add additional OCSP certificate checks. These are those specified
218 in RFC2560. This consists of two separate checks: the CA of the
219 certificate being checked must either be the OCSP signer certificate
220 or the issuer of the OCSP signer certificate. In the latter case the
221 OCSP signer certificate must contain the OCSP signing extended key
222 usage. This check is performed by attempting to match the OCSP
223 signer or the OCSP signer CA to the issuerNameHash and issuerKeyHash
224 in the OCSP_CERTID structures of the response.
225 [Steve Henson]
226
81f169e9
DSH
227 *) Initial OCSP certificate verification added to OCSP_basic_verify()
228 and related routines. This uses the standard OpenSSL certificate
229 verify routines to perform initial checks (just CA validity) and
230 to obtain the certificate chain. Then additional checks will be
231 performed on the chain. Currently the root CA is checked to see
232 if it is explicitly trusted for OCSP signing. This is used to set
233 a root CA as a global signing root: that is any certificate that
234 chains to that CA is an acceptable OCSP signing certificate.
235 [Steve Henson]
236
dfebac32
BM
237 *) New '-extfile ...' option to 'openssl ca' for reading X.509v3
238 extensions from a separate configuration file.
239 As when reading extensions from the main configuration file,
240 the '-extensions ...' option may be used for specifying the
241 section to use.
242 [Massimiliano Pala <madwolf@comune.modena.it>]
243
6308af19
DSH
244 *) Change PKCS12_key_gen_asc() so it can cope with non null
245 terminated strings whose length is passed in the passlen
246 parameter, for example from PEM callbacks. This was done
247 by adding an extra length parameter to asc2uni().
248 [Steve Henson, reported by <oddissey@samsung.co.kr>]
249
5782ceb2
DSH
250 *) New OCSP utility. Allows OCSP requests to be generated or
251 read. The request can be sent to a responder and the output
252 parsed, outputed or printed in text form. Not complete yet:
253 still needs to check the OCSP response validity.
254 [Steve Henson]
255
c67cdb50
BM
256 *) New subcommands for 'openssl ca':
257 'openssl ca -status <serial>' prints the status of the cert with
258 the given serial number (according to the index file).
259 'openssl ca -updatedb' updates the expiry status of certificates
260 in the index file.
261 [Massimiliano Pala <madwolf@comune.modena.it>]
262
d199858e
BM
263 *) New '-newreq-nodes' command option to CA.pl. This is like
264 '-newreq', but calls 'openssl req' with the '-nodes' option
265 so that the resulting key is not encrypted.
266 [Damien Miller <djm@mindrot.org>]
267
10a2975a
RL
268 *) New configuration for the GNU Hurd.
269 [Jonathan Bartlett <johnnyb@wolfram.com> via Richard Levitte]
270
9b4dc830
DSH
271 *) Initial code to implement OCSP basic response verify. This
272 is currently incomplete. Currently just finds the signer's
273 certificate and verifies the signature on the response.
274 [Steve Henson]
275
673b3fde
BM
276 *) New SSLeay_version code SSLEAY_DIR to determine the compiled-in
277 value of OPENSSLDIR. This is available via the new '-d' option
278 to 'openssl version', and is also included in 'openssl version -a'.
279 [Bodo Moeller]
280
c06648f7
BM
281 *) Fix C code generated by 'openssl dsaparam -C': If a BN_bin2bn
282 call failed, free the DSA structure.
283 [Bodo Moeller]
284
a5435e8b
BM
285 *) Allowing defining memory allocation callbacks that will be given
286 file name and line number information in additional arguments
287 (a const char* and an int). The basic functionality remains, as
288 well as the original possibility to just replace malloc(),
289 realloc() and free() by functions that do not know about these
290 additional arguments. To register and find out the current
291 settings for extended allocation functions, the following
292 functions are provided:
65a22e8e
RL
293
294 CRYPTO_set_mem_ex_functions
295 CRYPTO_set_locked_mem_ex_functions
296 CRYPTO_get_mem_ex_functions
297 CRYPTO_get_locked_mem_ex_functions
298
a5435e8b
BM
299 These work the same way as CRYPTO_set_mem_functions and friends.
300 CRYPTO_get_[locked_]mem_functions now writes 0 where such an
301 extended allocation function is enabled.
302 Similarly, CRYPTO_get_[locked_]mem_ex_functions writes 0 where
303 a conventional allocation function is enabled.
304 [Richard Levitte, Bodo Moeller]
65a22e8e 305
cbf0f45f
DSH
306 *) Fix to uni2asc() to cope with zero length Unicode strings.
307 These are present in some PKCS#12 files.
308 [Steve Henson]
309
3c914840
GT
310 *) Finish off removing the remaining LHASH function pointer casts.
311 There should no longer be any prototype-casting required when using
56a67adb
GT
312 the LHASH abstraction, and any casts that remain are "bugs". See
313 the callback types and macros at the head of lhash.h for details
314 (and "OBJ_cleanup" in crypto/objects/obj_dat.c as an example).
3c914840
GT
315 [Geoff Thorpe]
316
599c0353
LJ
317 *) Add automatic query of EGD sockets in RAND_poll() for the unix variant.
318 If an EGD or PRNGD is running and enough entropy is returned, automatic
319 seeding like with /dev/[u]random will be performed.
320 Positions tried are: /etc/entropy, /var/run/egd-pool.
321 [Lutz Jaenicke]
322
0c61e299 323 *) Change the Unix RAND_poll() variant to be able to poll several
361ef5f4
RL
324 random devices, as specified by DEVRANDOM, until a sufficient amount
325 of data has been collected. We spend at most 10 ms on each file
326 (select timeout) and read in non-blocking mode. DEVRANDOM now
327 defaults to the list "/dev/urandom", "/dev/random", "/dev/srandom"
328 (previously it was just the string "/dev/urandom"), so on typical
329 platforms the 10 ms delay will never occur.
330 Also separate out the Unix variant to its own file, rand_unix.c.
331 For VMS, there's a currently-empty rand_vms.c.
0c61e299
RL
332 [Richard Levitte]
333
0b33bc65
DSH
334 *) Move OCSP client related routines to ocsp_cl.c. These
335 provide utility functions which an application needing
336 to issue a request to an OCSP responder and analyse the
337 response will typically need: as opposed to those which an
338 OCSP responder itself would need which will be added later.
339
340 OCSP_request_sign() signs an OCSP request with an API similar
341 to PKCS7_sign(). OCSP_response_status() returns status of OCSP
342 response. OCSP_response_get1_basic() extracts basic response
343 from response. OCSP_resp_find_status(): finds and extracts status
344 information from an OCSP_CERTID structure (which will be created
345 when the request structure is built). These are built from lower
346 level functions which work on OCSP_SINGLERESP structures but
347 wont normally be used unless the application wishes to examine
348 extensions in the OCSP response for example.
349
350 Replace nonce routines with a pair of functions.
351 OCSP_request_add1_nonce() adds a nonce value and optionally
352 generates a random value. OCSP_check_nonce() checks the
353 validity of the nonce in an OCSP response.
354 [Steve Henson]
355
356 *) Change function OCSP_request_add() to OCSP_request_add0_id().
8e961835
DSH
357 This doesn't copy the supplied OCSP_CERTID and avoids the
358 need to free up the newly created id. Change return type
359 to OCSP_ONEREQ to return the internal OCSP_ONEREQ structure.
360 This can then be used to add extensions to the request.
361 Deleted OCSP_request_new(), since most of its functionality
362 is now in OCSP_REQUEST_new() (and the case insensitive name
363 clash) apart from the ability to set the request name which
364 will be added elsewhere.
365 [Steve Henson]
366
bf0d176e
DSH
367 *) Update OCSP API. Remove obsolete extensions argument from
368 various functions. Extensions are now handled using the new
369 OCSP extension code. New simple OCSP HTTP function which
370 can be used to send requests and parse the response.
371 [Steve Henson]
372
ec5add87
DSH
373 *) Fix the PKCS#7 (S/MIME) code to work with new ASN1. Two new
374 ASN1_ITEM structures help with sign and verify. PKCS7_ATTR_SIGN
375 uses the special reorder version of SET OF to sort the attributes
376 and reorder them to match the encoded order. This resolves a long
377 standing problem: a verify on a PKCS7 structure just after signing
378 it used to fail because the attribute order did not match the
379 encoded order. PKCS7_ATTR_VERIFY does not reorder the attributes:
380 it uses the received order. This is necessary to tolerate some broken
381 software that does not order SET OF. This is handled by encoding
382 as a SEQUENCE OF but using implicit tagging (with UNIVERSAL class)
383 to produce the required SET OF.
384 [Steve Henson]
385
a6574c21
RL
386 *) Have mk1mf.pl generate the macros OPENSSL_BUILD_SHLIBCRYPTO and
387 OPENSSL_BUILD_SHLIBSSL and use them appropriately in the header
388 files to get correct declarations of the ASN.1 item variables.
389 [Richard Levitte]
390
ecbe0781
DSH
391 *) Rewrite of PKCS#12 code to use new ASN1 functionality. Replace many
392 PKCS#12 macros with real functions. Fix two unrelated ASN1 bugs:
393 asn1_check_tlen() would sometimes attempt to use 'ctx' when it was
394 NULL and ASN1_TYPE was not dereferenced properly in asn1_ex_c2i().
395 New ASN1 macro: DECLARE_ASN1_ITEM() which just declares the relevant
396 ASN1_ITEM and no wrapper functions.
397 [Steve Henson]
398
4e1209eb
DSH
399 *) New functions or ASN1_item_d2i_fp() and ASN1_item_d2i_bio(). These
400 replace the old function pointer based I/O routines. Change most of
401 the *_d2i_bio() and *_d2i_fp() functions to use these.
402 [Steve Henson]
403
3f07fe09
RL
404 *) Enhance mkdef.pl to be more accepting about spacing in C preprocessor
405 lines, recognice more "algorithms" that can be deselected, and make
406 it complain about algorithm deselection that isn't recognised.
407 [Richard Levitte]
408
78d3b819 409 *) New ASN1 functions to handle dup, sign, verify, digest, pack and
73e92de5
DSH
410 unpack operations in terms of ASN1_ITEM. Modify existing wrappers
411 to use new functions. Add NO_ASN1_OLD which can be set to remove
412 some old style ASN1 functions: this can be used to determine if old
413 code will still work when these eventually go away.
09ab755c
DSH
414 [Steve Henson]
415
ec558b65
DSH
416 *) New extension functions for OCSP structures, these follow the
417 same conventions as certificates and CRLs.
418 [Steve Henson]
419
57d2f217
DSH
420 *) New function X509V3_add1_i2d(). This automatically encodes and
421 adds an extension. Its behaviour can be customised with various
422 flags to append, replace or delete. Various wrappers added for
423 certifcates and CRLs.
424 [Steve Henson]
425
5755cab4
DSH
426 *) Fix to avoid calling the underlying ASN1 print routine when
427 an extension cannot be parsed. Correct a typo in the
428 OCSP_SERVICELOC extension. Tidy up print OCSP format.
429 [Steve Henson]
430
3880cd35
BM
431 *) Increase s2->wbuf allocation by one byte in ssl2_new (ssl/s2_lib.c).
432 Otherwise do_ssl_write (ssl/s2_pkt.c) will write beyond buffer limits
433 when writing a 32767 byte record.
434 [Bodo Moeller; problem reported by Eric Day <eday@concentric.net>]
435
f640ee90 436 *) In RSA_eay_public_{en,ed}crypt and RSA_eay_mod_exp (rsa_eay.c),
126fe085 437 obtain lock CRYPTO_LOCK_RSA before setting rsa->_method_mod_{n,p,q}.
f640ee90
BM
438
439 (RSA objects have a reference count access to which is protected
440 by CRYPTO_LOCK_RSA [see rsa_lib.c, s3_srvr.c, ssl_cert.c, ssl_rsa.c],
441 so they are meant to be shared between threads.)
126fe085
BM
442 [Bodo Moeller, Geoff Thorpe; original patch submitted by
443 "Reddie, Steven" <Steven.Reddie@ca.com>]
f640ee90 444
9c67ab2f
DSH
445 *) Make mkdef.pl parse some of the ASN1 macros and add apropriate
446 entries for variables.
5755cab4 447 [Steve Henson]
9c67ab2f 448
1456d186
BM
449 *) Fix a deadlock in CRYPTO_mem_leaks().
450 [Bodo Moeller]
451
3ac82faa
BM
452 *) Add functionality to apps/openssl.c for detecting locking
453 problems: As the program is single-threaded, all we have
454 to do is register a locking callback using an array for
455 storing which locks are currently held by the program.
3ac82faa
BM
456 [Bodo Moeller]
457
458 *) Use a lock around the call to CRYPTO_get_ex_new_index() in
459 SSL_get_ex_data_X509_STORE_idx(), which is used in
460 ssl_verify_cert_chain() and thus can be called at any time
461 during TLS/SSL handshakes so that thread-safety is essential.
462 Unfortunately, the ex_data design is not at all suited
463 for multi-threaded use, so it probably should be abolished.
464 [Bodo Moeller]
465
2a86064f
GT
466 *) Added Broadcom "ubsec" ENGINE to OpenSSL.
467 [Broadcom, tweaked and integrated by Geoff Thorpe]
468
2c15d426
DSH
469 *) Move common extension printing code to new function
470 X509V3_print_extensions(). Reorganise OCSP print routines and
c08523d8 471 implement some needed OCSP ASN1 functions. Add OCSP extensions.
2c15d426
DSH
472 [Steve Henson]
473
de487514
DSH
474 *) New function X509_signature_print() to remove duplication in some
475 print routines.
476 [Steve Henson]
477
06db4253
DSH
478 *) Add a special meaning when SET OF and SEQUENCE OF flags are both
479 set (this was treated exactly the same as SET OF previously). This
480 is used to reorder the STACK representing the structure to match the
481 encoding. This will be used to get round a problem where a PKCS7
482 structure which was signed could not be verified because the STACK
483 order did not reflect the encoded order.
484 [Steve Henson]
485
36f554d4
DSH
486 *) Reimplement the OCSP ASN1 module using the new code.
487 [Steve Henson]
488
2aff7727
DSH
489 *) Update the X509V3 code to permit the use of an ASN1_ITEM structure
490 for its ASN1 operations. The old style function pointers still exist
491 for now but they will eventually go away.
492 [Steve Henson]
493
9d6b1ce6 494 *) Merge in replacement ASN1 code from the ASN1 branch. This almost
5755cab4
DSH
495 completely replaces the old ASN1 functionality with a table driven
496 encoder and decoder which interprets an ASN1_ITEM structure describing
497 the ASN1 module. Compatibility with the existing ASN1 API (i2d,d2i) is
498 largely maintained. Almost all of the old asn1_mac.h macro based ASN1
499 has also been converted to the new form.
9d6b1ce6
DSH
500 [Steve Henson]
501
8dea52fa
BM
502 *) Change BN_mod_exp_recp so that negative moduli are tolerated
503 (the sign is ignored). Similarly, ignore the sign in BN_MONT_CTX_set
504 so that BN_mod_exp_mont and BN_mod_exp_mont_word work
505 for negative moduli.
506 [Bodo Moeller]
507
508 *) Fix BN_uadd and BN_usub: Always return non-negative results instead
509 of not touching the result's sign bit.
510 [Bodo Moeller]
511
80d89e6a
BM
512 *) BN_div bugfix: If the result is 0, the sign (res->neg) must not be
513 set.
514 [Bodo Moeller]
515
f1919c3d
GT
516 *) Changed the LHASH code to use prototypes for callbacks, and created
517 macros to declare and implement thin (optionally static) functions
518 that provide type-safety and avoid function pointer casting for the
519 type-specific callbacks.
520 [Geoff Thorpe]
521
1946cd8b
UM
522 *) Use better test patterns in bntest.
523