Expand description
Constant-time-designed pure-Rust SM2 / SM3 / SM4 primitives.
See the workspace README.md for scope, threat model, and the honest
framing of the in-CI dudect-based timing-leak regression harness.
§Modules
sm2— SM2 elliptic-curve sign / verify / encrypt / decrypt (GB/T 32918). Comb-table fixed-base scalar mult (v0.3 W6).sm3— SM3 hash (GB/T 32905) with streamingnew/update/finalize.sm4— SM4 block cipher (GB/T 32907) + CBC mode (single-shot and v0.3 W5 streaming).hmac— HMAC-SM3 (RFC 2104), single-shot + v0.3 W5 streaming.kdf— PBKDF2-HMAC-SM3 (RFC 8018 §5.2).asn1— strict-canonical DER reader / writer / OID constants (v0.3 W1); GM/T 0009 SM2 ciphertext SEQUENCE; RFC 3279 SM2 signature SEQUENCE.pem— RFC 7468 PEM codec (v0.3 W2; hand-rolled,no_std).spki— RFC 5280SubjectPublicKeyInfofor SM2 (v0.3 W2).sec1— RFC 5915ECPrivateKey+ SEC1 uncompressed point (v0.3 W2).pkcs8— RFC 5958OneAsymmetricKey+ RFC 8018 PBES2 (v0.3 W2).traits— in-crateHash/Mac/BlockCiphertraits (v0.3 W5; RustCrypto-trait fit deferred to v0.4).
§Crate features
default—no_std,alloc-only.std— opt-in; reserved for future file-I/O wire-format helpers.
Modules§
- asn1
- Minimal ASN.1 DER subset.
- hmac
- HMAC-SM3 — RFC 2104 keyed MAC over GB/T 32905-2016 SM3.
- kdf
- Key derivation functions.
- pem
- Hand-rolled PEM (RFC 7468) codec.
- pkcs8
- PKCS#8
OneAsymmetricKeycodec (RFC 5958) + PBES2 encryption (RFC 8018). - sec1
- SEC1
ECPrivateKeycodec (RFC 5915) for SM2 keys. - sm2
- SM2 elliptic curve cryptography (GB/T 32918-2017).
- sm3
- SM3 hash function (GB/T 32905-2016).
- sm4
- SM4 block cipher (GB/T 32907-2016) and operating modes.
- spki
- X.509
SubjectPublicKeyInfocodec (RFC 5280 §4.1.2.7) for SM2 keys. - traits
- In-crate streaming primitive traits.