crypt library
Barrel de compatibilidade do módulo de criptografia.
Novos projetos devem importar package:all_crypto/all_crypto.dart. Este
entry point continua mantido e reexporta a API completa, inclusive
AllCrypto e CryptEnvelope.
import 'package:all_validations_br/crypt.dart';
final key = AllCrypto.generateKey();
final envelope = AllCrypto.encryptText('segredo', key: key);
final encoded = envelope.toBase64(); // nunca inclui a chave
final plain = AllCrypto.decryptText(
CryptEnvelope.fromBase64(encoded),
key: key,
);
O que é exportado
| Símbolo | Descrição |
|---|---|
| AllCrypto | Fachada recomendada com chave externa |
| CryptEnvelope | Payload v2 versionado que nunca serializa a chave |
| CryptUtil | API histórica; serialização Base64 legada está depreciada |
| AesGcm | AES-GCM direto (NIST SP 800-38D) |
| AesCbc | AES-CBC + PKCS#7 direto (NIST SP 800-38A) |
| AesCtr | AES-CTR direto (NIST SP 800-38A) |
| sha256 | Hash SHA-256 (FIPS 180-4) |
| hmacSha256 / hmacEqual | HMAC-SHA256 (RFC 2104) |
| EncryptedPayload | Decoder/modelo legado para compatibilidade |
| CryptException | Exceção de autenticação falha |
Classes
- AesCbc
- Implementação de AES-CBC (NIST SP 800-38A) com padding PKCS#7.
- AesCtr
- Implementação de AES-CTR (NIST SP 800-38A, modo de contador).
- AesGcm
- Implementação do cipher autenticado AES-GCM (AEAD) — NIST SP 800-38D.
- AllCrypto
- Fachada segura recomendada para cifrar/decifrar usando CryptEnvelope.
- CryptEnvelope
- Envelope seguro e versionado para dados cifrados — nunca serializa a chave.
- CryptUtil
- Utilitário de criptografia com suporte a múltiplos algoritmos.
- EncryptedPayload
- Envelope imutável que carrega todos os dados necessários para decifrar uma mensagem — independente do algoritmo usado.
Enums
- CryptAlgorithm
- Identificadores de algoritmos suportados pelo módulo crypt.
Functions
-
hmacEqual(
List< int> a, List<int> b) → bool - Compara dois HMACs em tempo constante para evitar ataques de timing.
-
hmacSha256(
List< int> key, List<int> message) → Uint8List -
Calcula HMAC-SHA256 para
messageusandokey. -
sha256(
List< int> data) → Uint8List -
Calcula o digest SHA-256 de
datae retorna 32 bytes.
Exceptions / Errors
- CryptException
- Exceção lançada quando a autenticação falha durante a decriptação.