This page describes all changes made to the enc_aes package, Advanced Encryption Standard (AES), since its release.
1.24 (2020-12-16, 13:10):
- Added AES key wrapper algorithm.
- Decryption returns ENC_FORMAT_ERR returned instead of ENC_PARAM_ERR if authorization fails in case of AES-GCM.
- Code beautified.
1.23 (2020-12-11, 15:10):
- Changed AES GCM decrypt to be able to decrypt data into the same buffer.
1.22 (2020-06-05, 12:55):
- Added use of GCM 4bit algorithm.
1.21 (2020-03-16, 12:20):
- Added Look Up Table algorithm for AES.
- Modified AES algorithm to use 32 bit values.
- Added AES_ALGORITHM_LUT to allow use of Look Up Table algorithm (needs an extra 8KB ROM).
1.20 (2019-12-05, 11:15):
- Compilation warnings fixed.
1.19 (2018-01-31, 14:00):
- Added AES test data for testing algorithm correctness (moved from enc_test).
- Added missing variable casting.
1.18 (2017-09-18, 13:00):
- Added AES-CCM, AES-CCM-8 algorithms.
1.17 (2017-06-08, 9:00):
- Added macros for TLS configuration (AES_GCM_TLS_FIXED_IV_LENGTH, AES_GCM_TLS_RECORD_IV_LENGTH).
1.16 (2017-06-06, 13:00):
- Added support for AES-GCM.
- Setting algorithm instance number (AES_*_INSTANCE_NR) to 0 now disables the algorithm code.
- Added support for AES-CMAC.
- AES-CMAC/AES-XCBC_MAC are stateful (final digest is calculated when p_out != NULL).
- Added key NULL check for every AES implementation.
- Added support for AES 192.
- Corrected compilation warnings: potentially uninitialized local variable.
- Corrected AES CFB to accept data which length is not multiple of 16 bytes.
- Added AES CFB mode for RAW Data.
- AES decrypt (with auto padding) can now have the same buffer for input and output data.
- Removed block size check for output buffer in aes_raw_cbc_encrypt() (it is not needed).
- Corrected input data size check in aes_raw_cbc_decrypt().
- Added support for AES-XCBC-MAC/AES-XCBC-MAC-96.
- Added support for AES RAW (no padding added to input data).
- Added support for AES CTR (AES in counter mode, no padding is added).
- Removed mutex clearing during initialization which can cause compile error on OS.
- Added overflow handling when calculating output data length.
- Corrected generation of round key for 256 bit key.
- Added macro to determine if padding is generated according to RFC 5652 or RFC 5246 (TLS 1.2).
- Corrected padding generation to be consistent with PKCS#7 (RFC 5652).
- Corrected output buffer length checking in encryption algorithm.
- Optimized use of macros by using constant tables.
- Added checking of key length.
- Code review (comments corrected).
- Code review (changed u to U).
- Changed version number to match new enc_base package.
- Initial release.