]> git.ipfire.org Git - thirdparty/openssl.git/blame - CHANGES
Fix warning.
[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
20f12e63
DSH
7 *) Add support for HMAC DRBG from SP800-90. Update algorithm and POST
8 to handle HMAC cases.
9 [Steve Henson]
10
28dd49fa
DSH
11 *) Add GCM support to TLS library. Some custom code is needed to split
12 the IV between the fixed (from PRF) and explicit (from TLS record)
13 portions. This adds all GCM ciphersuites supported by RFC5288 and
14 RFC5289. Generalise some AES* cipherstrings to inlclude GCM and
15 add a special AESGCM string for GCM only.
16 [Steve Henson]
17
18 *) Expand range of ctrls for AES GCM. Permit setting invocation
19 field on decrypt and retrieval of invocation field only on encrypt.
20 [Steve Henson]
21
fe8aeffa
DSH
22 *) Add HMAC ECC ciphersuites from RFC5289. Include SHA384 PRF support.
23 As required by RFC5289 these ciphersuites cannot be used if for
24 versions of TLS earlier than 1.2.
25 [Steve Henson]
26
01a9a759
DSH
27 *) Add functions FIPS_module_version() and FIPS_module_version_text()
28 to return numberical and string versions of the FIPS module number.
29 [Steve Henson]
30
c2fd5989
DSH
31 *) Rename FIPS_mode_set and FIPS_mode to FIPS_module_mode_set and
32 FIPS_module_mode. FIPS_mode and FIPS_mode_set will be implmeneted
33 outside the validated module in the FIPS capable OpenSSL.
34 [Steve Henson]
35
e0d1a2f8
DSH
36 *) Minor change to DRBG entropy callback semantics. In some cases
37 there is no mutiple of the block length between min_len and
38 max_len. Allow the callback to return more than max_len bytes
39 of entropy but discard any extra: it is the callback's responsibility
40 to ensure that the extra data discarded does not impact the
41 requested amount of entropy.
42 [Steve Henson]
43
cac4fb58
DSH
44 *) Add PRNG security strength checks to RSA, DSA and ECDSA using
45 information in FIPS186-3, SP800-57 and SP800-131A.
46 [Steve Henson]
47
b5dd1787
DSH
48 *) CCM support via EVP. Interface is very similar to GCM case except we
49 must supply all data in one chunk (i.e. no update, final) and the
50 message length must be supplied if AAD is used. Add algorithm test
51 support.
23916810
DSH
52 [Steve Henson]
53
ac892b7a
DSH
54 *) Initial version of POST overhaul. Add POST callback to allow the status
55 of POST to be monitored and/or failures induced. Modify fips_test_suite
56 to use callback. Always run all selftests even if one fails.
57 [Steve Henson]
58
06b7e5a0
DSH
59 *) XTS support including algorithm test driver in the fips_gcmtest program.
60 Note: this does increase the maximum key length from 32 to 64 bytes but
61 there should be no binary compatibility issues as existing applications
62 will never use XTS mode.
32a2d8dd
DSH
63 [Steve Henson]
64
05e24c87
DSH
65 *) Extensive reorganisation of FIPS PRNG behaviour. Remove all dependencies
66 to OpenSSL RAND code and replace with a tiny FIPS RAND API which also
67 performs algorithm blocking for unapproved PRNG types. Also do not
68 set PRNG type in FIPS_mode_set(): leave this to the application.
69 Add default OpenSSL DRBG handling: sets up FIPS PRNG and seeds with
d7a3ce98 70 the standard OpenSSL PRNG: set additional data to a date time vector.
05e24c87
DSH
71 [Steve Henson]
72
cab0595c
DSH
73 *) Rename old X9.31 PRNG functions of the form FIPS_rand* to FIPS_x931*.
74 This shouldn't present any incompatibility problems because applications
75 shouldn't be using these directly and any that are will need to rethink
76 anyway as the X9.31 PRNG is now deprecated by FIPS 140-2
77 [Steve Henson]
78
96ec46f7
DSH
79 *) Extensive self tests and health checking required by SP800-90 DRBG.
80 Remove strength parameter from FIPS_drbg_instantiate and always
81 instantiate at maximum supported strength.
82 [Steve Henson]
83
8857b380
DSH
84 *) Add ECDH code to fips module and fips_ecdhvs for primitives only testing.
85 [Steve Henson]
86
11e80de3
DSH
87 *) New algorithm test program fips_dhvs to handle DH primitives only testing.
88 [Steve Henson]
89
90 *) New function DH_compute_key_padded() to compute a DH key and pad with
91 leading zeroes if needed: this complies with SP800-56A et al.
92 [Steve Henson]
93
591cbfae
DSH
94 *) Initial implementation of SP800-90 DRBGs for Hash and CTR. Not used by
95 anything, incomplete, subject to change and largely untested at present.
96 [Steve Henson]
97
eead69f5
DSH
98 *) Modify fipscanisteronly build option to only build the necessary object
99 files by filtering FIPS_EX_OBJ through a perl script in crypto/Makefile.
100 [Steve Henson]
101
017bc57b
DSH
102 *) Add experimental option FIPSSYMS to give all symbols in
103 fipscanister.o and FIPS or fips prefix. This will avoid
5d439d69
DSH
104 conflicts with future versions of OpenSSL. Add perl script
105 util/fipsas.pl to preprocess assembly language source files
106 and rename any affected symbols.
017bc57b
DSH
107 [Steve Henson]
108
25c65429
DSH
109 *) Add selftest checks and algorithm block of non-fips algorithms in
110 FIPS mode. Remove DES2 from selftests.
111 [Steve Henson]
112
fe26d066
DSH
113 *) Add ECDSA code to fips module. Add tiny fips_ecdsa_check to just
114 return internal method without any ENGINE dependencies. Add new
25c65429 115 tiny fips sign and verify functions.
fe26d066
DSH
116 [Steve Henson]
117
b3310161
DSH
118 *) New build option no-ec2m to disable characteristic 2 code.
119 [Steve Henson]
120
30b56225
DSH
121 *) New build option "fipscanisteronly". This only builds fipscanister.o
122 and (currently) associated fips utilities. Uses the file Makefile.fips
123 instead of Makefile.org as the prototype.
124 [Steve Henson]
125
b3d8022e
DSH
126 *) Add some FIPS mode restrictions to GCM. Add internal IV generator.
127 Update fips_gcmtest to use IV generator.
128 [Steve Henson]
129
bdaa5415
DSH
130 *) Initial, experimental EVP support for AES-GCM. AAD can be input by
131 setting output buffer to NULL. The *Final function must be
132 called although it will not retrieve any additional data. The tag
133 can be set or retrieved with a ctrl. The IV length is by default 12
134 bytes (96 bits) but can be set to an alternative value. If the IV
135 length exceeds the maximum IV length (currently 16 bytes) it cannot be
136 set before the key.
137 [Steve Henson]
138
3da0ca79
DSH
139 *) New flag in ciphers: EVP_CIPH_FLAG_CUSTOM_CIPHER. This means the
140 underlying do_cipher function handles all cipher semantics itself
141 including padding and finalisation. This is useful if (for example)
142 an ENGINE cipher handles block padding itself. The behaviour of
143 do_cipher is subtly changed if this flag is set: the return value
144 is the number of characters written to the output buffer (zero is
145 no longer an error code) or a negative error code. Also if the
d45087c6 146 input buffer is NULL and length 0 finalisation should be performed.
3da0ca79
DSH
147 [Steve Henson]
148
2b3936e8
DSH
149 *) If a candidate issuer certificate is already part of the constructed
150 path ignore it: new debug notification X509_V_ERR_PATH_LOOP for this case.
151 [Steve Henson]
152
7c2d4fee
BM
153 *) Improve forward-security support: add functions
154
155 void SSL_CTX_set_not_resumable_session_callback(SSL_CTX *ctx, int (*cb)(SSL *ssl, int is_forward_secure))
156 void SSL_set_not_resumable_session_callback(SSL *ssl, int (*cb)(SSL *ssl, int is_forward_secure))
157
158 for use by SSL/TLS servers; the callback function will be called whenever a
159 new session is created, and gets to decide whether the session may be
160 cached to make it resumable (return 0) or not (return 1). (As by the
161 SSL/TLS protocol specifications, the session_id sent by the server will be
162 empty to indicate that the session is not resumable; also, the server will
163 not generate RFC 4507 (RFC 5077) session tickets.)
164
165 A simple reasonable callback implementation is to return is_forward_secure.
166 This parameter will be set to 1 or 0 depending on the ciphersuite selected
167 by the SSL/TLS server library, indicating whether it can provide forward
168 security.
169