]> git.ipfire.org Git - thirdparty/openssl.git/blame - CHANGES
Fix the S/MIME code so it now works again and
[thirdparty/openssl.git] / CHANGES
CommitLineData
f1c236f8 1 OpenSSL CHANGES
651d0aff
RE
2 _______________
3
c5e8580e
RL
4 Changes between 0.9.6 and 0.9.7 [xx XXX 2000]
5
ec5add87
DSH
6 *) Fix the PKCS#7 (S/MIME) code to work with new ASN1. Two new
7 ASN1_ITEM structures help with sign and verify. PKCS7_ATTR_SIGN
8 uses the special reorder version of SET OF to sort the attributes
9 and reorder them to match the encoded order. This resolves a long
10 standing problem: a verify on a PKCS7 structure just after signing
11 it used to fail because the attribute order did not match the
12 encoded order. PKCS7_ATTR_VERIFY does not reorder the attributes:
13 it uses the received order. This is necessary to tolerate some broken
14 software that does not order SET OF. This is handled by encoding
15 as a SEQUENCE OF but using implicit tagging (with UNIVERSAL class)
16 to produce the required SET OF.
17 [Steve Henson]
18
a6574c21
RL
19 *) Have mk1mf.pl generate the macros OPENSSL_BUILD_SHLIBCRYPTO and
20 OPENSSL_BUILD_SHLIBSSL and use them appropriately in the header
21 files to get correct declarations of the ASN.1 item variables.
22 [Richard Levitte]
23
ecbe0781
DSH
24 *) Rewrite of PKCS#12 code to use new ASN1 functionality. Replace many
25 PKCS#12 macros with real functions. Fix two unrelated ASN1 bugs:
26 asn1_check_tlen() would sometimes attempt to use 'ctx' when it was
27 NULL and ASN1_TYPE was not dereferenced properly in asn1_ex_c2i().
28 New ASN1 macro: DECLARE_ASN1_ITEM() which just declares the relevant
29 ASN1_ITEM and no wrapper functions.
30 [Steve Henson]
31
4e1209eb
DSH
32 *) New functions or ASN1_item_d2i_fp() and ASN1_item_d2i_bio(). These
33 replace the old function pointer based I/O routines. Change most of
34 the *_d2i_bio() and *_d2i_fp() functions to use these.
35 [Steve Henson]
36
3f07fe09
RL
37 *) Enhance mkdef.pl to be more accepting about spacing in C preprocessor
38 lines, recognice more "algorithms" that can be deselected, and make
39 it complain about algorithm deselection that isn't recognised.
40 [Richard Levitte]
41
78d3b819 42 *) New ASN1 functions to handle dup, sign, verify, digest, pack and
73e92de5
DSH
43 unpack operations in terms of ASN1_ITEM. Modify existing wrappers
44 to use new functions. Add NO_ASN1_OLD which can be set to remove
45 some old style ASN1 functions: this can be used to determine if old
46 code will still work when these eventually go away.
09ab755c
DSH
47 [Steve Henson]
48
ec558b65
DSH
49 *) New extension functions for OCSP structures, these follow the
50 same conventions as certificates and CRLs.
51 [Steve Henson]
52
57d2f217
DSH
53 *) New function X509V3_add1_i2d(). This automatically encodes and
54 adds an extension. Its behaviour can be customised with various
55 flags to append, replace or delete. Various wrappers added for
56 certifcates and CRLs.
57 [Steve Henson]
58
5755cab4
DSH
59 *) Fix to avoid calling the underlying ASN1 print routine when
60 an extension cannot be parsed. Correct a typo in the
61 OCSP_SERVICELOC extension. Tidy up print OCSP format.
62 [Steve Henson]
63
3880cd35
BM
64 *) Increase s2->wbuf allocation by one byte in ssl2_new (ssl/s2_lib.c).
65 Otherwise do_ssl_write (ssl/s2_pkt.c) will write beyond buffer limits
66 when writing a 32767 byte record.
67 [Bodo Moeller; problem reported by Eric Day <eday@concentric.net>]
68
f640ee90 69 *) In RSA_eay_public_{en,ed}crypt and RSA_eay_mod_exp (rsa_eay.c),
126fe085 70 obtain lock CRYPTO_LOCK_RSA before setting rsa->_method_mod_{n,p,q}.
f640ee90
BM
71
72 (RSA objects have a reference count access to which is protected
73 by CRYPTO_LOCK_RSA [see rsa_lib.c, s3_srvr.c, ssl_cert.c, ssl_rsa.c],
74 so they are meant to be shared between threads.)
126fe085
BM
75 [Bodo Moeller, Geoff Thorpe; original patch submitted by
76 "Reddie, Steven" <Steven.Reddie@ca.com>]
f640ee90 77
9c67ab2f
DSH
78 *) Make mkdef.pl parse some of the ASN1 macros and add apropriate
79 entries for variables.
5755cab4 80 [Steve Henson]
9c67ab2f 81
1456d186
BM
82 *) Fix a deadlock in CRYPTO_mem_leaks().
83 [Bodo Moeller]
84
3ac82faa
BM
85 *) Add functionality to apps/openssl.c for detecting locking
86 problems: As the program is single-threaded, all we have
87 to do is register a locking callback using an array for
88 storing which locks are currently held by the program.
3ac82faa
BM
89 [Bodo Moeller]
90
91 *) Use a lock around the call to CRYPTO_get_ex_new_index() in
92 SSL_get_ex_data_X509_STORE_idx(), which is used in
93 ssl_verify_cert_chain() and thus can be called at any time
94 during TLS/SSL handshakes so that thread-safety is essential.
95 Unfortunately, the ex_data design is not at all suited
96 for multi-threaded use, so it probably should be abolished.
97 [Bodo Moeller]
98
2a86064f
GT
99 *) Added Broadcom "ubsec" ENGINE to OpenSSL.
100 [Broadcom, tweaked and integrated by Geoff Thorpe]
101
2c15d426
DSH
102 *) Move common extension printing code to new function
103 X509V3_print_extensions(). Reorganise OCSP print routines and
c08523d8 104 implement some needed OCSP ASN1 functions. Add OCSP extensions.
2c15d426
DSH
105 [Steve Henson]
106
de487514
DSH
107 *) New function X509_signature_print() to remove duplication in some
108 print routines.
109 [Steve Henson]
110
06db4253
DSH
111 *) Add a special meaning when SET OF and SEQUENCE OF flags are both
112 set (this was treated exactly the same as SET OF previously). This
113 is used to reorder the STACK representing the structure to match the
114 encoding. This will be used to get round a problem where a PKCS7
115 structure which was signed could not be verified because the STACK
116 order did not reflect the encoded order.
117 [Steve Henson]
118
36f554d4
DSH
119 *) Reimplement the OCSP ASN1 module using the new code.
120 [Steve Henson]
121
2aff7727
DSH
122 *) Update the X509V3 code to permit the use of an ASN1_ITEM structure
123 for its ASN1 operations. The old style function pointers still exist
124 for now but they will eventually go away.
125 [Steve Henson]
126
9d6b1ce6 127 *) Merge in replacement ASN1 code from the ASN1 branch. This almost
5755cab4
DSH
128 completely replaces the old ASN1 functionality with a table driven
129 encoder and decoder which interprets an ASN1_ITEM structure describing
130 the ASN1 module. Compatibility with the existing ASN1 API (i2d,d2i) is
131 largely maintained. Almost all of the old asn1_mac.h macro based ASN1
132 has also been converted to the new form.
9d6b1ce6
DSH
133 [Steve Henson]
134
8dea52fa
BM
135 *) Change BN_mod_exp_recp so that negative moduli are tolerated
136 (the sign is ignored). Similarly, ignore the sign in BN_MONT_CTX_set
137 so that BN_mod_exp_mont and BN_mod_exp_mont_word work
138 for negative moduli.
139 [Bodo Moeller]
140
141 *) Fix BN_uadd and BN_usub: Always return non-negative results instead
142 of not touching the result's sign bit.
143 [Bodo Moeller]
144
80d89e6a
BM
145 *) BN_div bugfix: If the result is 0, the sign (res->neg) must not be
146 set.
147 [Bodo Moeller]
148
f1919c3d
GT
149 *) Changed the LHASH code to use prototypes for callbacks, and created
150 macros to declare and implement thin (optionally static) functions
151 that provide type-safety and avoid function pointer casting for the
152 type-specific callbacks.
153 [Geoff Thorpe]
154
1946cd8b
UM
155 *) Use better test patterns in bntest.
156