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