encryptCbc method

Uint8List encryptCbc(
  1. Uint8List data,
  2. Uint8List iv
)

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