Skip to main content

Module cbc_hmac

Module cbc_hmac 

Source
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§

CbcHmacEncryptor
CBC-HMAC 加密器:C 为块密码,KEY_LEN 为其密钥长度(字节)。

Type Aliases§

Aes256CbcEncryptor
AES-256-CBC + HMAC-SHA256(兼容旧环境)。
Aria256CbcEncryptor
ARIA-256-CBC + HMAC-SHA256(RFC 5794)。
Camellia256CbcEncryptor
Camellia-256-CBC + HMAC-SHA256(ISO/IEC 18033-3)。
Kuznyechik256CbcEncryptor
Kuznyechik-256-CBC + HMAC-SHA256(GOST R 34.12-2015)。
Sm4CbcEncryptor
SM4-CBC + HMAC-SHA256(国密,GB/T 32907)。
Threefish512CbcEncryptor
Threefish-512-CBC + HMAC-SHA256(块与 IV 均 64 字节)。