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
envelopecomkeyfornecida externamente e retorna os bytes originais. -
decryptText(
CryptEnvelope envelope, {required Uint8List key}) → String -
Decifra
envelopecomkeyfornecida externamente e retorna a string original. -
encryptBytes(
List< int> bytes, {required Uint8List key, CryptAlgorithm algorithm = CryptAlgorithm.chacha20Poly1305, Uint8List? nonce, List<int> ? aad}) → CryptEnvelope -
Cifra
bytese 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.