]> git.ipfire.org Git - thirdparty/openssl.git/blame - CHANGES
PR: 2658
[thirdparty/openssl.git] / CHANGES
CommitLineData
81a6c781 1
f1c236f8 2 OpenSSL CHANGES
651d0aff
RE
3 _______________
4
7b3a9b00 5 Changes between 1.0.1 and 1.1.0 [xx XXX xxxx]
aaf35f11 6
2ca873e8
DSH
7 *) Transparently support X9.42 DH parameters when calling
8 PEM_read_bio_DHparameters. This means existing applications can handle
9 the new parameter format automatically.
10 [Steve Henson]
11
afb14cda
DSH
12 *) Initial experimental support for X9.42 DH parameter format: mainly
13 to support use of 'q' parameter for RFC5114 parameters.
14 [Steve Henson]
15
20bee968
DSH
16 *) Add DH parameters from RFC5114 including test data to dhtest.
17 [Steve Henson]
18
a98b8ce6
DSH
19 *) Update fips_test_suite to support multiple command line options. New
20 test to induce all self test errors in sequence and check expected
21 failures.
22 [Steve Henson]
23
f4324e51
DSH
24 *) Add FIPS_{rsa,dsa,ecdsa}_{sign,verify} functions which digest and
25 sign or verify all in one operation.
26 [Steve Henson]
27
3ec9dceb
DSH
28 *) Add fips_algvs: a multicall fips utility incorporaing all the algorithm
29 test programs and fips_test_suite. Includes functionality to parse
30 the minimal script output of fipsalgest.pl directly.
f4324e51 31 [Steve Henson]
3ec9dceb 32
5e4eb995
DSH
33 *) Add authorisation parameter to FIPS_module_mode_set().
34 [Steve Henson]
35
2bfeb7dc
DSH
36 *) Add FIPS selftest for ECDH algorithm using P-224 and B-233 curves.
37 [Steve Henson]
38
4420b3b1 39 *) Use separate DRBG fields for internal and external flags. New function
cb71870d
DSH
40 FIPS_drbg_health_check() to perform on demand health checking. Add
41 generation tests to fips_test_suite with reduced health check interval to
4420b3b1
DSH
42 demonstrate periodic health checking. Add "nodh" option to
43 fips_test_suite to skip very slow DH test.
44 [Steve Henson]
45
15094852
DSH
46 *) New function FIPS_get_cipherbynid() to lookup FIPS supported ciphers
47 based on NID.
48 [Steve Henson]
49
a11f06b2
DSH
50 *) More extensive health check for DRBG checking many more failure modes.
51 New function FIPS_selftest_drbg_all() to handle every possible DRBG
52 combination: call this in fips_test_suite.
53 [Steve Henson]
54
7fdcb457
DSH
55 *) Add support for Dual EC DRBG from SP800-90. Update DRBG algorithm test
56 and POST to handle Dual EC cases.
57 [Steve Henson]
58
f55f5f77
DSH
59 *) Add support for canonical generation of DSA parameter 'g'. See
60 FIPS 186-3 A.2.3.
61
7fdcb457
DSH
62 *) Add support for HMAC DRBG from SP800-90. Update DRBG algorithm test and
63 POST to handle HMAC cases.
20f12e63
DSH
64 [Steve Henson]
65
01a9a759
DSH
66 *) Add functions FIPS_module_version() and FIPS_module_version_text()
67 to return numberical and string versions of the FIPS module number.
68 [Steve Henson]
69
c2fd5989
DSH
70 *) Rename FIPS_mode_set and FIPS_mode to FIPS_module_mode_set and
71 FIPS_module_mode. FIPS_mode and FIPS_mode_set will be implmeneted
72 outside the validated module in the FIPS capable OpenSSL.
73 [Steve Henson]
74
e0d1a2f8
DSH
75 *) Minor change to DRBG entropy callback semantics. In some cases
76 there is no mutiple of the block length between min_len and
77 max_len. Allow the callback to return more than max_len bytes
78 of entropy but discard any extra: it is the callback's responsibility
79 to ensure that the extra data discarded does not impact the
80 requested amount of entropy.
81 [Steve Henson]
82
cac4fb58
DSH
83 *) Add PRNG security strength checks to RSA, DSA and ECDSA using
84 information in FIPS186-3, SP800-57 and SP800-131A.
85 [Steve Henson]
86
b5dd1787
DSH
87 *) CCM support via EVP. Interface is very similar to GCM case except we
88 must supply all data in one chunk (i.e. no update, final) and the
89 message length must be supplied if AAD is used. Add algorithm test
90 support.
23916810
DSH
91 [Steve Henson]
92
ac892b7a
DSH
93 *) Initial version of POST overhaul. Add POST callback to allow the status
94 of POST to be monitored and/or failures induced. Modify fips_test_suite
95 to use callback. Always run all selftests even if one fails.
96 [Steve Henson]
97
06b7e5a0
DSH
98 *) XTS support including algorithm test driver in the fips_gcmtest program.
99 Note: this does increase the maximum key length from 32 to 64 bytes but
100 there should be no binary compatibility issues as existing applications
101 will never use XTS mode.
32a2d8dd
DSH
102 [Steve Henson]
103
05e24c87
DSH
104 *) Extensive reorganisation of FIPS PRNG behaviour. Remove all dependencies
105 to OpenSSL RAND code and replace with a tiny FIPS RAND API which also
106 performs algorithm blocking for unapproved PRNG types. Also do not
107 set PRNG type in FIPS_mode_set(): leave this to the application.
108 Add default OpenSSL DRBG handling: sets up FIPS PRNG and seeds with
d7a3ce98 109 the standard OpenSSL PRNG: set additional data to a date time vector.
05e24c87
DSH
110 [Steve Henson]
111
cab0595c
DSH
112 *) Rename old X9.31 PRNG functions of the form FIPS_rand* to FIPS_x931*.
113 This shouldn't present any incompatibility problems because applications
114 shouldn't be using these directly and any that are will need to rethink
115 anyway as the X9.31 PRNG is now deprecated by FIPS 140-2
116 [Steve Henson]
117
96ec46f7
DSH
118 *) Extensive self tests and health checking required by SP800-90 DRBG.
119 Remove strength parameter from FIPS_drbg_instantiate and always
120 instantiate at maximum supported strength.
121 [Steve Henson]
122
8857b380
DSH
123 *) Add ECDH code to fips module and fips_ecdhvs for primitives only testing.
124 [Steve Henson]
125
11e80de3
DSH
126 *) New algorithm test program fips_dhvs to handle DH primitives only testing.
127 [Steve Henson]
128
129 *) New function DH_compute_key_padded() to compute a DH key and pad with
130 leading zeroes if needed: this complies with SP800-56A et al.
131 [Steve Henson]
132
591cbfae
DSH
133 *) Initial implementation of SP800-90 DRBGs for Hash and CTR. Not used by
134 anything, incomplete, subject to change and largely untested at present.
135 [Steve Henson]
136
eead69f5
DSH
137 *) Modify fipscanisteronly build option to only build the necessary object
138 files by filtering FIPS_EX_OBJ through a perl script in crypto/Makefile.
139 [Steve Henson]
140
017bc57b
DSH
141 *) Add experimental option FIPSSYMS to give all symbols in
142 fipscanister.o and FIPS or fips prefix. This will avoid
5d439d69
DSH
143 conflicts with future versions of OpenSSL. Add perl script
144 util/fipsas.pl to preprocess assembly language source files
145 and rename any affected symbols.
017bc57b
DSH
146 [Steve Henson]
147
25c65429
DSH
148 *) Add selftest checks and algorithm block of non-fips algorithms in
149 FIPS mode. Remove DES2 from selftests.
150 [Steve Henson]
151
fe26d066
DSH
152 *) Add ECDSA code to fips module. Add tiny fips_ecdsa_check to just
153 return internal method without any ENGINE dependencies. Add new
25c65429 154 tiny fips sign and verify functions.
fe26d066
DSH
155 [Steve Henson]
156
b3310161
DSH
157 *) New build option no-ec2m to disable characteristic 2 code.
158 [Steve Henson]
159
30b56225
DSH
160 *) New build option "fipscanisteronly". This only builds fipscanister.o
161 and (currently) associated fips utilities. Uses the file Makefile.fips
162 instead of Makefile.org as the prototype.
163 [Steve Henson]
164
b3d8022e
DSH
165 *) Add some FIPS mode restrictions to GCM. Add internal IV generator.
166 Update fips_gcmtest to use IV generator.
167 [Steve Henson]
168
bdaa5415
DSH
169 *) Initial, experimental EVP support for AES-GCM. AAD can be input by
170 setting output buffer to NULL. The *Final function must be
171 called although it will not retrieve any additional data. The tag
172 can be set or retrieved with a ctrl. The IV length is by default 12
173 bytes (96 bits) but can be set to an alternative value. If the IV
174 length exceeds the maximum IV length (currently 16 bytes) it cannot be
175 set before the key.
176 [Steve Henson]
177
3da0ca79
DSH
178 *) New flag in ciphers: EVP_CIPH_FLAG_CUSTOM_CIPHER. This means the
179 underlying do_cipher function handles all cipher semantics itself
180 including padding and finalisation. This is useful if (for example)
181 an ENGINE cipher handles block padding itself. The behaviour of
182 do_cipher is subtly changed if this flag is set: the return value
183 is the number of characters written to the output buffer (zero is
184 no longer an error code) or a negative error code. Also if the
d45087c6 185 input buffer is NULL and length 0 finalisation should be performed.
3da0ca79
DSH
186 [Steve Henson]
187
2b3936e8
DSH
188 *) If a candidate issuer certificate is already part of the constructed
189 path ignore it: new debug notification X509_V_ERR_PATH_LOOP for this case.
190 [Steve Henson]
191
7c2d4fee
BM
192 *) Improve forward-security support: add functions
193
194 void SSL_CTX_set_not_resumable_session_callback(SSL_CTX *ctx, int (*cb)(SSL *ssl, int is_forward_secure))
195 void SSL_set_not_resumable_session_callback(SSL *ssl, int (*cb)(SSL *ssl, int is_forward_secure))
196
197 for use by SSL/TLS servers; the callback function will be called whenever a
198 new session is created, and gets to decide whether the session may be
199 cached to make it resumable (return 0) or not (return 1). (As by the
200 SSL/TLS protocol specifications, the session_id sent by the server will be
201 empty to indicate that the session is not resumable; also, the server will
202 not generate RFC 4507 (RFC 5077) session tickets.)
203
204 A simple reasonable callback implementation is to return is_forward_secure.
205 This parameter will be set to 1 or 0 depending on the ciphersuite selected
206 by the SSL/TLS server library, indicating whether it can provide forward
207 security.
208