]>
Commit | Line | Data |
---|---|---|
651d0aff | 1 | |
f1c236f8 | 2 | OpenSSL CHANGES |
651d0aff RE |
3 | _______________ |
4 | ||
c90341a1 | 5 | Changes between 0.9.5a and 0.9.6 [xx XXX 2000] |
bbb72003 | 6 | |
948d0125 RL |
7 | *) Major change in util/mkdef.pl to include extra information |
8 | about each symbol, as well as presentig variables as well | |
9 | as functions. This change means that there's n more need | |
10 | to rebuild the .num files when some algorithms are excluded. | |
11 | [Richard Levitte] | |
12 | ||
bbb72003 DSH |
13 | *) Allow the verify time to be set by an application, |
14 | rather than always using the current time. | |
15 | [Steve Henson] | |
2f043896 | 16 | |
bbb72003 DSH |
17 | *) Phase 2 verify code reorganisation. The certificate |
18 | verify code now looks up an issuer certificate by a | |
19 | number of criteria: subject name, authority key id | |
20 | and key usage. It also verifies self signed certificates | |
21 | by the same criteria. The main comparison function is | |
22 | X509_check_issued() which performs these checks. | |
2f043896 | 23 | |
bbb72003 DSH |
24 | Lot of changes were necessary in order to support this |
25 | without completely rewriting the lookup code. | |
2f043896 | 26 | |
bbb72003 | 27 | Authority and subject key identifier are now cached. |
2f043896 | 28 | |
bbb72003 DSH |
29 | The LHASH 'certs' is X509_STORE has now been replaced |
30 | by a STACK_OF(X509_OBJECT). This is mainly because an | |
31 | LHASH can't store or retrieve multiple objects with | |
32 | the same hash value. | |
c90341a1 | 33 | |
bbb72003 DSH |
34 | As a result various functions (which were all internal |
35 | use only) have changed to handle the new X509_STORE | |
36 | structure. This will break anything that messed round | |
37 | with X509_STORE internally. | |
2f043896 | 38 | |
bbb72003 DSH |
39 | The functions X509_STORE_add_cert() now checks for an |
40 | exact match, rather than just subject name. | |
2f043896 | 41 | |
bbb72003 DSH |
42 | The X509_STORE API doesn't directly support the retrieval |
43 | of multiple certificates matching a given criteria, however | |
44 | this can be worked round by performing a lookup first | |
45 | (which will fill the cache with candidate certificates) | |
46 | and then examining the cache for matches. This is probably | |
47 | the best we can do without throwing out X509_LOOKUP | |
48 | entirely (maybe later...). | |
2f043896 | 49 | |
bbb72003 | 50 | The X509_VERIFY_CTX structure has been enhanced considerably. |
2f043896 | 51 | |
bbb72003 DSH |
52 | All certificate lookup operations now go via a get_issuer() |
53 | callback. Although this currently uses an X509_STORE it | |
54 | can be replaced by custom lookups. This is a simple way | |
55 | to bypass the X509_STORE hackery necessary to make this | |
56 | work and makes it possible to use more efficient techniques | |
57 | in future. A very simple version which uses a simple | |
58 | STACK for its trusted certificate store is also provided | |
59 | using X509_STORE_CTX_trusted_stack(). | |
2f043896 | 60 | |
bbb72003 DSH |
61 | The verify_cb() and verify() callbacks now have equivalents |
62 | in the X509_STORE_CTX structure. | |
2f043896 | 63 | |
bbb72003 DSH |
64 | X509_STORE_CTX also has a 'flags' field which can be used |
65 | to customise the verify behaviour. | |
66 | [Steve Henson] | |
2f043896 | 67 | |
34216c04 DSH |
68 | *) Add new PKCS#7 signing option PKCS7_NOSMIMECAP which |
69 | excludes S/MIME capabilities. | |
70 | [Steve Henson] | |
71 | ||
72 | *) When a certificate request is read in keep a copy of the | |
73 | original encoding of the signed data and use it when outputing | |
74 | again. Signatures then use the original encoding rather than | |
75 | a decoded, encoded version which may cause problems if the | |
76 | request is improperly encoded. | |
77 | [Steve Henson] | |
78 | ||
affadbef BM |
79 | *) For consistency with other BIO_puts implementations, call |
80 | buffer_write(b, ...) directly in buffer_puts instead of calling | |
81 | BIO_write(b, ...). | |
22c7ea40 BM |
82 | |
83 | In BIO_puts, increment b->num_write as in BIO_write. | |
affadbef BM |
84 | [Peter.Sylvester@EdelWeb.fr] |
85 | ||
bbb8de09 BM |
86 | *) Fix BN_mul_word for the case where the word is 0. (We have to use |
87 | BN_zero, we may not return a BIGNUM with an array consisting of | |
88 | words set to zero.) | |
89 | [Bodo Moeller] | |
90 | ||
91 | *) Avoid calling abort() from within the library when problems are | |
92 | detected, except if preprocessor symbols have been defined | |
93 | (such as REF_CHECK, BN_DEBUG etc.). | |
94 | [Bodo Moeller] | |
95 | ||
bd08a2bd DSH |
96 | *) New openssl application 'rsautl'. This utility can be |
97 | used for low level RSA operations. DER public key | |
98 | BIO/fp routines also added. | |
99 | [Steve Henson] | |
100 | ||
a545c6f6 BM |
101 | *) New Configure entry and patches for compiling on QNX 4. |
102 | [Andreas Schneider <andreas@ds3.etech.fh-hamburg.de>] | |
103 | ||
7049ef5f BL |
104 | *) A demo state-machine implementation was sponsored by |
105 | Nuron (http://www.nuron.com/) and is now available in | |
106 | demos/state_machine. | |
107 | [Ben Laurie] | |
108 | ||
7df1c720 DSH |
109 | *) New options added to the 'dgst' utility for signature |
110 | generation and verification. | |
111 | [Steve Henson] | |
112 | ||
d096b524 DSH |
113 | *) Unrecognized PKCS#7 content types are now handled via a |
114 | catch all ASN1_TYPE structure. This allows unsupported | |
115 | types to be stored as a "blob" and an application can | |
116 | encode and decode it manually. | |
117 | [Steve Henson] | |
118 | ||
7df1c720 | 119 | *) Fix various signed/unsigned issues to make a_strex.c |
469938cb DSH |
120 | compile under VC++. |
121 | [Oscar Jacobsson <oscar.jacobsson@celocom.com>] | |
122 | ||
123 | *) ASN1 fixes. i2d_ASN1_OBJECT was not returning the correct | |
124 | length if passed a buffer. ASN1_INTEGER_to_BN failed | |
125 | if passed a NULL BN and its argument was negative. | |
126 | [Steve Henson, pointed out by Sven Heiberg <sven@tartu.cyber.ee>] | |
127 | ||
eaa28181 DSH |
128 | *) Modification to PKCS#7 encoding routines to output definite |
129 | length encoding. Since currently the whole structures are in | |
130 | memory there's not real point in using indefinite length | |
131 | constructed encoding. However if OpenSSL is compiled with | |
132 | the flag PKCS7_INDEFINITE_ENCODING the old form is used. | |
133 | [Steve Henson] | |
134 | ||
e6629837 RL |
135 | *) Added BIO_vprintf() and BIO_vsnprintf(). |
136 | [Richard Levitte] | |
137 | ||
6fd5a047 RL |
138 | *) Added more prefixes to parse for in the the strings written |
139 | through a logging bio, to cover all the levels that are available | |
140 | through syslog. The prefixes are now: | |
141 | ||
142 | PANIC, EMERG, EMR => LOG_EMERG | |
143 | ALERT, ALR => LOG_ALERT | |
144 | CRIT, CRI => LOG_CRIT | |
145 | ERROR, ERR => LOG_ERR | |
146 | WARNING, WARN, WAR => LOG_WARNING | |
147 | NOTICE, NOTE, NOT => LOG_NOTICE | |
148 | INFO, INF => LOG_INFO | |
149 | DEBUG, DBG => LOG_DEBUG | |
150 | ||
151 | and as before, if none of those prefixes are present at the | |
152 | beginning of the string, LOG_ERR is chosen. | |
153 | ||
154 | On Win32, the LOG_* levels are mapped according to this: | |
155 | ||
156 | LOG_EMERG, LOG_ALERT, LOG_CRIT, LOG_ERR => EVENTLOG_ERROR_TYPE | |
157 | LOG_WARNING => EVENTLOG_WARNING_TYPE | |
158 | LOG_NOTICE, LOG_INFO, LOG_DEBUG => EVENTLOG_INFORMATION_TYPE | |
159 | ||
160 | [Richard Levitte] | |
161 | ||
368f8554 RL |
162 | *) Made it possible to reconfigure with just the configuration |
163 | argument "reconf" or "reconfigure". The command line arguments | |
164 | are stored in Makefile.ssl in the variable CONFIGURE_ARGS, | |
165 | and are retrieved from there when reconfiguring. | |
166 | [Richard Levitte] | |
167 | ||
3009458e | 168 | *) MD4 implemented. |
bb531a0a | 169 | [Assar Westerlund <assar@sics.se>, Richard Levitte] |
3009458e | 170 | |
88364bc2 RL |
171 | *) Add the arguments -CAfile and -CApath to the pkcs12 utility. |
172 | [Richard Levitte] | |
173 | ||
d4fbe318 DSH |
174 | *) The obj_dat.pl script was messing up the sorting of object |
175 | names. The reason was that it compared the quoted version | |
176 | of strings as a result "OCSP" > "OCSP Signing" because | |
177 | " > SPACE. Changed script to store unquoted versions of | |
178 | names and add quotes on output. It was also omitting some | |
179 | names from the lookup table if they were given a default | |
180 | value (that is if SN is missing it is given the same | |
181 | value as LN and vice versa), these are now added on the | |
182 | grounds that if an object has a name we should be able to | |
183 | look it up. Finally added warning output when duplicate | |
184 | short or long names are found. | |
185 | [Steve Henson] | |
186 | ||
2d978cbd | 187 | *) Changes needed for Tandem NSK. |
d4fbe318 | 188 | [Scott Uroff scott@xypro.com] |
2d978cbd | 189 | |
aa826d88 BM |
190 | *) Fix SSL 2.0 rollback checking: Due to an off-by-one error in |
191 | RSA_padding_check_SSLv23(), special padding was never detected | |
192 | and thus the SSL 3.0/TLS 1.0 countermeasure against protocol | |
193 | version rollback attacks was not effective. | |
194 | ||
37569e64 BM |
195 | In s23_clnt.c, don't use special rollback-attack detection padding |
196 | (RSA_SSLV23_PADDING) if SSL 2.0 is the only protocol enabled in the | |
197 | client; similarly, in s23_srvr.c, don't do the rollback check if | |
198 | SSL 2.0 is the only protocol enabled in the server. | |
199 | [Bodo Moeller] | |
200 | ||
ca1e465f RL |
201 | *) Make it possible to get hexdumps of unprintable data with 'openssl |
202 | asn1parse'. By implication, the functions ASN1_parse_dump() and | |
203 | BIO_dump_indent() are added. | |
204 | [Richard Levitte] | |
205 | ||
a657546f DSH |
206 | *) New functions ASN1_STRING_print_ex() and X509_NAME_print_ex() |
207 | these print out strings and name structures based on various | |
208 | flags including RFC2253 support and proper handling of | |
209 | multibyte characters. Added options to the 'x509' utility | |
210 | to allow the various flags to be set. | |
211 | [Steve Henson] | |
212 | ||
284ef5f3 DSH |
213 | *) Various fixes to use ASN1_TIME instead of ASN1_UTCTIME. |
214 | Also change the functions X509_cmp_current_time() and | |
215 | X509_gmtime_adj() work with an ASN1_TIME structure, | |
216 | this will enable certificates using GeneralizedTime in validity | |
217 | dates to be checked. | |
218 | [Steve Henson] | |
219 | ||
220 | *) Make the NEG_PUBKEY_BUG code (which tolerates invalid | |
221 | negative public key encodings) on by default, | |
222 | NO_NEG_PUBKEY_BUG can be set to disable it. | |
223 | [Steve Henson] | |
224 | ||
225 | *) New function c2i_ASN1_OBJECT() which acts on ASN1_OBJECT | |
226 | content octets. An i2c_ASN1_OBJECT is unnecessary because | |
227 | the encoding can be trivially obtained from the structure. | |
228 | [Steve Henson] | |
229 | ||
fa729135 BM |
230 | *) crypto/err.c locking bugfix: Use write locks (CRYPTO_w_[un]lock), |
231 | not read locks (CRYPTO_r_[un]lock). | |
232 | [Bodo Moeller] | |
233 | ||
b436a982 RL |
234 | *) A first attempt at creating official support for shared |
235 | libraries through configuration. I've kept it so the | |
236 | default is static libraries only, and the OpenSSL programs | |
237 | are always statically linked for now, but there are | |
238 | preparations for dynamic linking in place. | |
239 | This has been tested on Linux and True64. | |
240 | [Richard Levitte] | |
241 | ||
c0722725 UM |
242 | *) Randomness polling function for Win9x, as described in: |
243 | Peter Gutmann, Software Generation of Practically Strong | |
244 | Random Numbers. | |
245 |