History: enc_aes


This page describes all changes made to the enc_aes package, Advanced Encryption Standard (AES), since its release.

Version

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.

1.15:

  • 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.

1.14:

  • Added support for AES 192.

1.13:

  • Corrected compilation warnings: potentially uninitialized local variable.

1.12:

  • Corrected AES CFB to accept data which length is not multiple of 16 bytes.

1.11:

  • Added AES CFB mode for RAW Data.
  • AES decrypt (with auto padding) can now have the same buffer for input and output data.

1.10:

  • 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().

1.9:

  • 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).

1.8:

  • Removed mutex clearing during initialization which can cause compile error on OS.

1.7:

  • Added overflow handling when calculating output data length.

1.6:

  • Corrected generation of round key for 256 bit key.

1.5:

  • Added macro to determine if padding is generated according to RFC 5652 or RFC 5246 (TLS 1.2).

1.4:

  • Corrected padding generation to be consistent with PKCS#7 (RFC 5652).

1.3:

  • Corrected output buffer length checking in encryption algorithm.
  • Optimized use of macros by using constant tables.
  • Added checking of key length.

1.2:

  • Code review (comments corrected).

1.1:

  • Code review (changed u to U).
  • Changed version number to match new enc_base package.

1.0:

  • Initial release.