]> git.ipfire.org Git - thirdparty/openssl.git/blame - CHANGES
Add docs for BIO_find_type() and friends.
[thirdparty/openssl.git] / CHANGES
CommitLineData
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