aesEncryptBlock method
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;
}