EncryptedPayload constructor

EncryptedPayload({
  1. required Uint8List ciphertext,
  2. required Uint8List key,
  3. required Uint8List nonce,
  4. Uint8List? tag,
  5. Uint8List? aad,
  6. CryptAlgorithm algorithm = CryptAlgorithm.chacha20Poly1305,
})

Cria um EncryptedPayload com os campos fornecidos.

tag e aad são opcionais e assumem Uint8List(0) por padrão — útil para modos não autenticados (AES-CBC, AES-CTR) e payloads sem AAD.

Uso normal: prefira os métodos de CryptUtil — eles preenchem todos os campos corretamente.

Interop com sistemas externos: preencha manualmente quando o ciphertext e as chaves vierem de fora da lib (veja exemplos na documentação da classe):

final payload = EncryptedPayload(
  algorithm:  CryptAlgorithm.aesCbc,
  ciphertext: base64.decode(responseBody),
  key:        utf8.encode(Flavors.aesKey),
  nonce:      utf8.encode(Flavors.aesIv),
  // tag e aad omitidos → Uint8List(0) automaticamente
);

Implementation

EncryptedPayload({
  required this.ciphertext,
  required this.key,
  required this.nonce,
  Uint8List? tag,
  Uint8List? aad,
  this.algorithm = CryptAlgorithm.chacha20Poly1305,
})  : tag = tag ?? Uint8List(0),
      aad = aad ?? Uint8List(0);