2个版本

0.1.1 2023年9月3日
0.1.0 2023年9月2日

#1678 in 加密学

MIT/Apache

6KB
81 代码行

hmac_sm3实现的HMAC-SM3

let message = b"Hello World";
let key = b"TestSecret";

let hmac1 = hmac_sm3(key, message);
assert_eq!("9d91da552268ddf11b9f69662773a66c6375b250336dfb9293e7e2611c36d79f", hex::encode(hmac1));

或使用流式风格

let mut hm = HmacSm3::new(key);
hm.update(b"Hello");
hm.update(b" ");
hm.update(b"World");
let hmac2 = hm.finalize();
assert_eq!("9d91da552268ddf11b9f69662773a66c6375b250336dfb9293e7e2611c36d79f", hex::encode(hmac2));

基准测试 @MacBook Pro (Retina, 15英寸, 2013年末/2 GHz 四核Intel Core i7)

$ cargo run --release --example bench
HMAC-SM3         : 219.19 M/s
HMAC-SHA1        : 228.57 M/s
HMAC-SHA256      : 204.96 M/s

依赖项

~355KB