xref: /isa-l_crypto/Release_notes.txt (revision 3aa2266bba7e1bce04a3fdb96386b1daf42fb065)
1================================================================================
2v2.25 Intel Intelligent Storage Acceleration Library Crypto Release Notes
3================================================================================
4
5================================================================================
6RELEASE NOTE CONTENTS
7================================================================================
81. KNOWN ISSUES
92. FIXED ISSUES
103. CHANGE LOG & FEATURES ADDED
11
12================================================================================
131.  KNOWN ISSUES
14================================================================================
15
16* Perf tests do not run in Windows environment.
17
18* 32-bit lib is not supported in Windows.
19
20* 32-bit lib is not validated.
21
22================================================================================
232. FIXED ISSUES
24================================================================================
25v2.25
26
27* Fixed build with gcc 11.1.
28
29* Fixed SHA512 internal reference function parameters.
30
31* Fixed SM3 lane handling for aarch64.
32
33* Replaced non-VEX encoded with VEX-encoded instructions in AES-XTS implementation.
34
35* Fixed clang compilation with older assemblers.
36
37* Fixed SHA512 calculation error on aarch64.
38
39* Fixed MD5/SHA1/SHA256/SHA512 base functions for small inputs (less than block size).
40
41* Fixed AES-XTS OpenSSL calls, limiting the input size, as per restrictions in 3.0 version.
42
43* Fixed Windows build on test applications.
44
45* Fixed SHA1 context structure to force alignment for lengths array.
46
47v2.21
48
49* Put correct vec instruction versions in aes_cbc_enc_{128,192,256}().  May help
50  performance on some systems.
51
52v2.20
53
54* Fix issue with new aes_gcm API, aes_gcm_pre_256 was incorrect.
55
56* Multi-buffer hash max length extended.  Previous max length for
57  {sha1,sha256,sha512,md5}_mb was 4095MB.  While there is still a 4GB limit for
58  each submit, the total hashed length can now be larger then 4GB.
59
60v2.18
61
62* Fix for multi-buffer hash when total length is above 512MB.
63
64v2.14
65
66* Building in unit directories is no longer supported removing the issue of
67  leftover object files causing the top-level make build to fail.
68
69v2.9
70
71* Multi-buffer MD5 AVX2 tests fixed to work on FreeBSD 9.1 by explicitly aligning
72  structures.
73
74v2.7
75
76* Unit tests and examples are now supported in Windows environment
77
78
79================================================================================
803. CHANGE LOG & FEATURES ADDED
81================================================================================
82v2.25
83
84* Added new API including parameter checking (starting with isal_ prefix).
85
86* Added new API returning the library version.
87
88* Added FIPS mode, including self tests in NIST approved algorithms (more information in https://github.com/intel/isa-l_crypto/blob/master/FIPS.md).
89
90* Deprecated previous API in favour of new API (more information in https://github.com/intel/isa-l_crypto/wiki/New-API-introduced-from-v2.25).
91
92* Optimized AES-GCM for AVX512-VAES x86 implementation.
93
94* Optimized SM3 for AVX512 x86 implementation.
95
96* Optimized MD5 and SM3 for aarch64.
97
98* New optimized version of AES-CBC and AES-XTS for aarch64.
99
100* Optimized multi-hash SHA1-Murmur for aarch64.
101
102* Optimized multi-hash SHA1 for aarch64.
103
104* Added ACVP test applications for AES-CBC, AES-GCM, AES-XTS and SHA1/256/512.
105
106* Removed YASM support, so only NASM assembler is supported for x86.
107
108* Bumped minimum NASM version to 2.14.01, which supports all x86 ISA used in this library.
109
110v2.24
111
112* New optimized version of AES-CBC decode
113
114* New AVX2, 8 lane version of multi-buffer SM3
115
116* Added support for big-endian architectures
117
118v2.23
119
120* New optimized versions of block ciphers AES-GCM and AES-XTS.
121
122* New optimized versions of multi-buffer SM3 hashing.  Removed experimental
123  status.
124
125v2.22
126
127* New multi-buffer SM3 functions. Experimental base functions only.
128
129* New multi-arch support.
130
131v2.21
132
133* Multi-buffer hash performance improvement for Intel(R) Atom(tm) processors.
134  New by-2 shani versions for multi-buffer sha1 & sha256.
135
136* New base functions for multi-buffer hashes.
137  md5_mb, sha1_mb, sha256_mb, sha512_mb.
138
139v2.20
140
141* New functions
142  - Non-temporal versions of aes_gcm added.
143
144* Multi-buffer hash improvement
145  - Increase max length of hash in {sha1,sha256,sha512,md5}_mb to > 4GB.
146
147v2.19
148
149* Multi-buffer hash (sha1_mb, sha256_mb)
150
151  - Choose fast single buffer routine to do flush operation if lanes aren't full.
152
153  - Add SHA-NI support for Goldmont and Cannonlake.
154
155* AES-GCM interface updates.
156
157  - New interface separates the expanded keys and other context into two
158  structures.  The old interface is maintained for backward compatibility.
159
160  - User no longer has to append the GCM_IV_END_MARK manually to then end of iv
161  as this is now done automatically.  This update should also improve performance
162  of small packets.
163
164* Rolling hash is released.
165
166v2.18
167
168* New multi-hash SHA256-based version.
169
170v2.16
171
172* Split lib from non-crypto functions.
173
174v2.15
175
176* Multi-buffer hash updates.  New AVX512 versions for multi-buffer SHA1, SHA256,
177  SHA512, MD5 and SHA1+murmur3_x64_128 stitched.
178
179* Removes restrictions on AAD length in AES-GCM.  Previously AAD length was
180  limited to a multiple of 4 bytes.  Now any AAD length is allowed.
181
182* Nasm support.  ISA-L ported to build with nasm or yasm assembler.
183
184* Windows DLL support.  Windows builds DLL by default.
185
186* The older, deprecated multi-buffer API has been removed.
187
188v2.14
189
190* New multi-hash sha1 function and multi-hash sha1 + murmur3_x64_128 stitched.
191  Multi-hash is designed to give the performance of multi-buffer cryptographic
192  hashes with a synchronous single buffer interface.
193
194* New AES-GCM and AES-CBC functions added.
195
196* Autoconf and autotools build allows easier porting to additional systems.
197  Previous make system still available to embedded users with Makefile.unx.
198
199* The AES key expand functions that were used for AES-XTS with pre-expanded keys
200  now expand the decrypt keys in a different order. The order that decrypt keys
201  are stored and used by XTS_AES_128_dec_expanded_key() is reversed from
202  previous versions to be compatible with CBC and GCM key expansion. The
203  aes_keyexp_*() and XTS_AES_128_dec_expanded_key() functions should work the
204  same when paired together.
205
206* Includes update for building on Mac OS X/darwin systems. Add --target=darwin
207  to ./configure step.
208
209v2.10
210
211* Added multi-buffer MD5 in the new hash API.  Includes multi-binary capability,
212  no restriction on update length and other benefits of the CTX API.
213
214v2.9
215
216* New multi-buffer hash API.  The new API brings the following new features to
217  multi-buffer hashes.  The older API is still included but may be deprecated in
218  future releases.
219
220  - Multibinary functionality.  Call one function and the appropriate
221    architecture-specific version is fixed up at runtime.
222
223  - No restriction on update length.  Submitting an update block no longer has
224    to have length a multiple of the fundamental block size.
225
226* New expanded key tests added for AES-XTS 128 and 256
227
228v2.7
229
230* New AVX2 versions for mb_md5 and mb_sha512 hashing code have been added.
231
232v2.6
233
234* Update buffer functionality added to mb_md5, mb_sha256 and mb_sha512 hashing
235  code.  Requires API changes to current interface to specify job type and total
236  length of hash.
237
238* New AVX2 versions for mb_sha1 and mb_sha256 hashing code have been added.
239
240v2.5
241
242* New feature for multi-buffer SHA-1, update buffer.  mb_sha1 non-finalize jobs
243  can now be submitted by setting flags in job structure.  Requires API changes
244  to current interface to specify job type and total length of hash.
245
246v2.4
247
248* Added new multi-buffer SHA-512: mb_sha512.  SSE, AVX versions.
249
250v2.3
251
252* Added improved AES XTS versions.
253
254v2.2
255
256* Added new AVX versions of multi-buffer hashes
257* Changed type in the interface struct for multi-buffer hashes
258  the len field in the following structures :JOB_SHA1,JOB_MD5,
259  JOB_SHA256 is now a 32-bit int.
260
261v2.0
262
263* Added AES XTS units aes_xts_128, aes_xts_256
264
265v1.3
266
267* Added new multi-buffer units for SHA-256 and MD5: mb_sha256, mb_md5.
268