aesEncryptBlock method

Uint8List aesEncryptBlock(
  1. Uint8List data
)

Implementation

Uint8List aesEncryptBlock(Uint8List data) {
  Uint8List encBlock = Uint8List(16); // 16-byte string
  int i;

  // place input data into the initial state matrix in column order
  for (i = 0; i < 4 * _Nb; ++i) {
    _s[i % 4][(i - i % _Nb) ~/ _Nb] = data[i];
  }

  // add round key
  _addRoundKey(0);

  for (i = 1; i < _Nr; ++i) {
    // substitute bytes
    _subBytes();
    // shift rows
    _shiftRows();
    // mix columns
    _mixColumns();
    // add round key
    _addRoundKey(i);
  }

  // substitute bytes
  _subBytes();
  // shift rows
  _shiftRows();
  // add round key
  _addRoundKey(i);

  // place state matrix _s into encBlock in column order
  for (i = 0; i < 4 * _Nb; ++i) {
    encBlock[i] = _s[i % 4][(i - i % _Nb) ~/ _Nb];
  }
  return encBlock;
}