aesDecryptBlock method
Implementation
Uint8List aesDecryptBlock(Uint8List data) {
Uint8List decBlock = 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(_Nr);
for (i = _Nr - 1; i > 0; --i) {
// inverse shift rows
_invShiftRows();
// inverse sub bytes
_invSubBytes();
// add round key
_addRoundKey(i);
// inverse mix columns
_invMixColumns();
}
// inverse shift rows
_invShiftRows();
// inverse sub bytes
_invSubBytes();
// add round key
_addRoundKey(i);
// place state matrix s into decBlock in column order
for (i = 0; i < 4 * _Nb; ++i) {
decBlock[i] = _s[i % 4][(i - i % _Nb) ~/ _Nb];
}
return decBlock;
}