29 lines
704 B
Markdown
29 lines
704 B
Markdown
HMAC-SM3 by `hmac_sm3`
|
|
|
|
```rust
|
|
let message = b"Hello World";
|
|
let key = b"TestSecret";
|
|
|
|
let hmac1 = hmac_sm3(key, message);
|
|
assert_eq!("9d91da552268ddf11b9f69662773a66c6375b250336dfb9293e7e2611c36d79f", hex::encode(hmac1));
|
|
```
|
|
|
|
or use stream style:
|
|
|
|
```rust
|
|
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));
|
|
```
|
|
|
|
Benchmark @MacBook Pro (Retina, 15-inch, Late 2013/2 GHz Quad-Core Intel Core i7)
|
|
```text
|
|
$ cargo run --release --example bench
|
|
HMAC-SM3 : 219.19 M/s
|
|
HMAC-SHA1 : 228.57 M/s
|
|
HMAC-SHA256 : 204.96 M/s
|
|
```
|