encryptContent static method

Uint8List encryptContent(
  1. List<int> key,
  2. Uint8List data,
  3. List<int> iv
)

Encrypts a PDF content payload: PKCS#7-pads data, prepends the 16-byte iv, CBC-encrypts. The inverse of decryptContent.

Implementation

static Uint8List encryptContent(List<int> key, Uint8List data, List<int> iv) {
  final padLength = 16 - (data.length % 16);
  final padded = Uint8List(data.length + padLength)
    ..setRange(0, data.length, data)
    ..fillRange(data.length, data.length + padLength, padLength);
  return (BytesBuilder(copy: false)
        ..add(Uint8List.fromList(iv))
        ..add(Aes(key).cbcEncrypt(iv, padded)))
      .takeBytes();
}