decryptAny static method

List<int> decryptAny(
  1. EncryptedPayload payload
)

Decifra payload despachando para o algoritmo correto automaticamente.

Lê o campo EncryptedPayload.algorithm e chama o método correspondente.

Algoritmos suportados: chacha20-poly1305, aes-gcm, aes-cbc, aes-ctr.

Lança CryptException para algoritmos desconhecidos.

final plain = CryptUtil.decryptAny(payload); // funciona com qualquer algoritmo

Implementation

static List<int> decryptAny(EncryptedPayload payload) {
  switch (payload.algorithm) {
    case 'chacha20-poly1305':
      return decryptBytes(payload);
    case 'aes-gcm':
      return decryptAesGcm(payload);
    case 'aes-cbc':
      return decryptAesCbc(payload);
    case 'aes-ctr':
      return decryptAesCtr(payload);
    default:
      throw CryptException(
          'CryptUtil.decryptAny: algoritmo não suportado: "${payload.algorithm}".');
  }
}