encryptCbc method
Implementation
Uint8List encryptCbc(Uint8List data, Uint8List iv) {
final int padding = 16 - (data.length % 16);
final Uint8List padded = Uint8List(data.length + padding);
padded.setAll(0, data);
for (int i = data.length; i < padded.length; i++) {
padded[i] = padding;
}
final Uint8List out = Uint8List(16 + padded.length);
out.setAll(0, iv);
final Uint8List previous = Uint8List.fromList(iv);
for (int block = 0; block * 16 < padded.length; block++) {
final Uint8List state = Uint8List(16);
for (int i = 0; i < 16; i++) {
state[i] = padded[block * 16 + i] ^ previous[i];
}
_encryptBlock(state);
out.setAll(16 + block * 16, state);
previous.setAll(0, state);
}
return out;
}