crypt library
Módulo de criptografia do all_validations_br.
Importação separada para projetos que usam apenas o módulo crypt, sem trazer validações, máscaras ou formatadores.
import 'package:all_validations_br/crypt.dart';
final key = CryptUtil.generateKey();
final payload = CryptUtil.encryptAesGcm(utf8.encode('segredo'), key: key);
final plain = CryptUtil.decryptAny(payload);
O que é exportado
| Símbolo | Descrição |
|---|---|
| CryptUtil | API unificada — encrypt/decrypt para todos os algoritmos |
| 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 | Modelo de payload — JSON/Base64 |
| 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.
- 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.