Commit Graph

14 Commits

Author SHA1 Message Date
Olivier Chéron
fc07a8b931 Fix counter wrapping in AES GCM
The generic and AESNI implementations used different conventions
regarding counter wrapping in GCM.  The generic code was based on
function block128_inc_be, for which the counter is a 128-bit value.
Whereas the AESNI code used intrinsic function _mm_add_epi64, and
therefore wrapping at 2^64.

In NIST.SP.800-38d the GCM specification mandates to use incrementing
function inc32, wrapping after 2^32 blocks.  This commit changes both
generic and AESNI implementations to align to the specification and
adds a test vector specially crafted to start encryption with IV block
0xfffffffffffffffffffffffffffffffe.
2019-08-20 10:34:40 +02:00
Olivier Chéron
4df2a95276 AES GCM: use Shoup's method with 4-bit table 2019-06-06 06:48:16 +02:00
Olivier Chéron
5b39ae3e48 Add missing void and const 2019-05-26 11:50:07 +02:00
Olivier Chéron
c8a4e48e0c Remove unused variables 2019-05-26 11:50:07 +02:00
Olivier Chéron
d25e44ea61 Add GHASH implementation with PCLMULQDQ 2019-05-19 11:18:40 +02:00
Olivier Chéron
cddbc2cef9 Remove unopt_gf_mul 2019-05-19 11:16:34 +02:00
James Clarke
2b43be4d84 Fix many cases of unaligned accesses 2017-06-25 18:10:55 +01:00
Vincent Hanquez
69d8dd1a08 [tidy-exports] properly prefix aesni stuff 2015-06-21 15:16:05 +01:00
Vincent Hanquez
e6d3518c2e [tidy-exports] properly prefix gf_mul(x) 2015-06-21 15:11:02 +01:00
Vincent Hanquez
5812bce10f [tidy-exports] mark gmtab as static 2015-06-21 15:05:46 +01:00
Vincent Hanquez
e74448aeb4 cryptonitize AES, and add foreign function interfaces to it (not exported). 2015-04-05 10:44:23 +01:00
Vincent Hanquez
c291952018 fix symbol 2015-01-18 16:08:53 -08:00
Vincent Hanquez
1d706a3ef1 rename file 2015-01-15 04:58:35 -08:00
Vincent Hanquez
6195bd40af merge cipher-aes C files in cryptonite 2015-01-15 04:58:25 -08:00