Expand description
CBC + HMAC-SHA256(encrypt-then-MAC,PKCS#7 填充)的唯一实现。
aes-256-cbc-hmac / camellia-256-cbc-hmac / aria-256-cbc-hmac /
kuznyechik-256-cbc-hmac / threefish-512-cbc-hmac / sm4-cbc 六个标识
共用这一个泛型:它们此前是六份逐字节相同的实现(只有块密码类型、标识符
与密钥长度不同),任何一处边界修正都要改六遍。现在泛型参数 C 是块密码、
KEY_LEN 是密钥长度,载荷统一为 v1 | IV | MAC(32) | 密文,
IV 长度取自 C 的块长(16 字节,Threefish-512 为 64 字节)。
泛型对使用者的可见面为零:各算法的公开类型名由下面的 type 别名保持原样,
new([u8; N]) / from_slice(&[u8]) 签名不变。
Structs§
- CbcHmac
Encryptor - CBC-HMAC 加密器:
C为块密码,KEY_LEN为其密钥长度(字节)。
Type Aliases§
- Aes256
CbcEncryptor - AES-256-CBC + HMAC-SHA256(兼容旧环境)。
- Aria256
CbcEncryptor - ARIA-256-CBC + HMAC-SHA256(RFC 5794)。
- Camellia256
CbcEncryptor - Camellia-256-CBC + HMAC-SHA256(ISO/IEC 18033-3)。
- Kuznyechik256
CbcEncryptor - Kuznyechik-256-CBC + HMAC-SHA256(GOST R 34.12-2015)。
- Sm4Cbc
Encryptor - SM4-CBC + HMAC-SHA256(国密,GB/T 32907)。
- Threefish512
CbcEncryptor - Threefish-512-CBC + HMAC-SHA256(块与 IV 均 64 字节)。