- Jan 10, 2020
-
-
Pablo de Lara authored
-
Pablo de Lara authored
Implement multi-buffer version of the ZUC-EIA3 algorithm, making use of the 4-buffer keystream generation and initialization functions.
-
Pablo de Lara authored
-
Pablo de Lara authored
Add tests to verify that different buffers, with different keys, lengths, etc. are encrypted correctly using the multi-buffer ZUC-EEA3 API.
-
Pablo de Lara authored
-
- Jan 08, 2020
-
-
Pablo de Lara authored
Only print information about individual tests if DEBUG flag is set, helping reducing the test output.
-
Pablo de Lara authored
Unit tests were only checking the first buffer returned when encrypting/decrypting with ZUC-EEA3. The code has been refactored, creating a single function to compare an output buffer with a reference test vector, used to compare all buffers returned by the ZUC API.
-
- Dec 20, 2019
-
-
Tomasz Kantecki authored
-
Tomasz Kantecki authored
-
- Dec 19, 2019
-
-
Pablo de Lara authored
Allocate, initialize and use a single array of buffers and iterate through it for all the KASUMI F8 N buffer tests, instead of using an array of array of buffers. Thanks to this simplification, some issues reported by Valgrind due to the complex test (including usage of uninitialized variables, leading to potential segfaults) are resolved.
-
- Dec 18, 2019
-
-
Pablo de Lara authored
-
Pablo de Lara authored
Add API to perform GHASH on an input buffer, giving up to 16 bytes of output. IMB_GHASH() requires gcm_key_data structure to be initialized calling previously IMB_GCM_PRE_xxx() function, which is the key precompute function used for AES-GCM, before it is passed as one of the parameters.
-
Tomasz Kantecki authored
- uint128_t renamed to imb_uint128_t
-
Marcel D Cornu authored
- Convert msg len from bytes to bits
-
Marcel D Cornu authored
-
Marcel D Cornu authored
-
Marcel D Cornu authored
-
Marcel D Cornu authored
-
Marcel D Cornu authored
-
Marcel D Cornu authored
-
Marcel D Cornu authored
-
Marcel D Cornu authored
-
Marcel D Cornu authored
-
Pablo de Lara authored
-
- Dec 13, 2019
-
-
Tomasz Kantecki authored
-
Tomasz Kantecki authored
-
- Dec 12, 2019
-
-
Pablo de Lara authored
When encrypting/decrypting buffers that are not 64-byte multiple long, the remaining last bytes (less than 64 bytes) were calculated by generating 64 bytes of keystream. Instead, less keystream can be generated (in multiple of 4 bytes, which is the size of a ZUC word), saving extra cycles.
-
Pablo de Lara authored
Implemented keystream generation functions that can generate from 4 to 64 bytes of keystream, in steps of 4 bytes, to handle more efficiently less than 64-byte buffers.
-
Pablo de Lara authored
Instead of performing single Sbox lookups (for both S0 and S1 S boxes), in ZUC algorithm, use the new S0 and S1 box computation macros to compute 16 values in a single XMM register, which is done in constant time.
-
Pablo de Lara authored
Instead of performing single Sbox lookups (for both S0 and S1 S boxes), in ZUC algorithm, use the new S0 and S1 box computation macros to compute 16 values in a single XMM register, which is done in constant time.
-
Pablo de Lara authored
Split ZUC initialization and keystream generation functions, which are scalar only, into SSE and AVX versions. This is a preparation for a new commit where vectorized code will be introduced.
-
Pablo de Lara authored
Add macro to compute 16 S1 box values in an XMM register, which corresponds to 16 S1 box lookups.
-
Pablo de Lara authored
Add macro to compute 16 S0 box values in an XMM register, which corresponds to 16 S0 box lookups.
-
Pablo de Lara authored
-
Tomasz Kantecki authored
-
- Dec 11, 2019
-
-
Tomasz Kantecki authored
-
Tomasz Kantecki authored
-
Tomasz Kantecki authored
-
Tomasz Kantecki authored
- small typo fixes
-
Tomasz Kantecki authored
-