AllCrypto class

Fachada segura recomendada para cifrar/decifrar usando CryptEnvelope.

Diferente de CryptUtil.encryptToBase64 / CryptUtil.decryptFromBase64, a chave nunca é serializada. Toda operação de decifragem exige a chave como parâmetro explícito — ela deve vir de um cofre externo (flutter_secure_storage, keychain, KMS, variável de ambiente segura).

Internamente reaproveita as mesmas implementações de algoritmo usadas por CryptUtil (ChaCha20-Poly1305, AES-GCM, AES-CBC, AES-CTR) — nenhuma lógica criptográfica é duplicada.

Uso rápido

final key = AllCrypto.generateKey();               // guarde em local seguro
final envelope = AllCrypto.encryptText('segredo', key: key);
final b64 = envelope.toBase64();                   // não contém a chave

// ... depois, com a chave recuperada do cofre:
final restored = CryptEnvelope.fromBase64(b64);
final texto = AllCrypto.decryptText(restored, key: key);

Migração de payloads legados

Use migrateLegacy para converter um EncryptedPayload histórico (com chave embutida) em um CryptEnvelope (sem chave) mais a chave extraída separadamente. Rotacione a chave depois da migração sempre que o payload legado já tiver circulado fora de um armazenamento confiável, pois ela esteve embutida no formato serializado.

Properties

hashCode int
The hash code for this object.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited

Static Methods

decryptBytes(CryptEnvelope envelope, {required Uint8List key}) List<int>
Decifra envelope com key fornecida externamente e retorna os bytes originais.
decryptText(CryptEnvelope envelope, {required Uint8List key}) String
Decifra envelope com key fornecida externamente e retorna a string original.
encryptBytes(List<int> bytes, {required Uint8List key, CryptAlgorithm algorithm = CryptAlgorithm.chacha20Poly1305, Uint8List? nonce, List<int>? aad}) CryptEnvelope
Cifra bytes e retorna um CryptEnvelope sem chave.
encryptText(String text, {required Uint8List key, CryptAlgorithm algorithm = CryptAlgorithm.chacha20Poly1305, Uint8List? nonce, List<int>? aad}) CryptEnvelope
Cifra text (UTF-8) e retorna um CryptEnvelope sem chave.
generateIv() Uint8List
Gera um IV/ICB criptograficamente seguro de 16 bytes.
generateKey() Uint8List
Gera uma chave criptograficamente segura de 32 bytes.
generateKey128() Uint8List
Gera uma chave criptograficamente segura de 16 bytes (AES-128).
generateNonce() Uint8List
Gera um nonce criptograficamente seguro de 12 bytes.
migrateLegacy(EncryptedPayload legacyPayload) → ({CryptEnvelope envelope, Uint8List key})
Converte um EncryptedPayload legado (v1, com chave embutida) em um CryptEnvelope (v2, sem chave) mais a chave extraída separadamente.