#hash

no-std sm3

SM3 (OSCCA GM/T 0004-2012) hash function

18 releases

Uses new Rust 2024

0.5.0 Mar 27, 2026
0.5.0-rc.4 Jan 24, 2026
0.5.0-rc.3 Nov 5, 2025
0.5.0-rc.0 May 29, 2025
0.2.0 Jan 23, 2020

#2878 in Cryptography

Download history 73689/week @ 2025-12-20 112423/week @ 2025-12-27 103926/week @ 2026-01-03 77328/week @ 2026-01-10 102324/week @ 2026-01-17 80359/week @ 2026-01-24 104697/week @ 2026-01-31 103515/week @ 2026-02-07 53761/week @ 2026-02-14 84113/week @ 2026-02-21 71269/week @ 2026-02-28 80845/week @ 2026-03-07 92697/week @ 2026-03-14 97936/week @ 2026-03-21 95797/week @ 2026-03-28 91480/week @ 2026-04-04

388,458 downloads per month
Used in 64 crates (28 directly)

MIT/Apache

18KB
365 lines

RustCrypto: SM3

crate Docs Apache2/MIT licensed Rust Version Project Chat Build Status

Pure Rust implementation of the SM3 cryptographic hash function defined in OSCCA GM/T 0004-2012.

Examples

use sm3::{Digest, Sm3};
use hex_literal::hex;

let mut hasher = Sm3::new();
hasher.update(b"hello world");
let hash = hasher.finalize();

assert_eq!(hash, hex!("44f0061e69fa6fdfc290c494654a05dc0c053da7e5c52b84ef93a9d67d3fff88"));

See the digest crate docs for additional examples.

License

The crate is licensed under either of:

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Dependencies

~715KB
~18K SLoC