Expand description
§libsmx
Production-grade implementation of Chinese commercial cryptography standards:
- SM2 — Elliptic Curve Public Key Cryptography (GB/T 32918.1-5)
- SM3 — Cryptographic Hash Algorithm (GB/T 32905)
- SM4 — Block Cipher Algorithm (GB/T 32907)
- SM9 — Identity-Based Cryptographic Algorithm (GB/T 38635.1-2)
§Features
no_stdcompatible (requiresallocfeature for SM2/SM9 operations)- Constant-time operations via
subtle - Automatic key zeroization via
zeroize - All implementations validated against official GB/T test vectors
§Quick Start
use libsmx::sm3::Sm3Hasher;
let mut h = Sm3Hasher::new();
h.update(b"hello world");
let digest = h.finalize();
assert_eq!(digest.len(), 32);§Security Notice
This library uses constant-time operations throughout to prevent timing side-channel attacks. Private keys are zeroized on drop. However, this library has not been independently audited. Use in production at your own risk.
§Standards Compliance
| Algorithm | Standard |
|---|---|
| SM2 | GB/T 32918.1-5-2016 |
| SM3 | GB/T 32905-2016 |
| SM4 | GB/T 32907-2016 |
| SM9 | GB/T 38635.1-2-2020 |