重构:RustCrypto 兼容接口

主要变更:
- 新增 sm2/、sm3/、sm4/ 独立 crate,实现 RustCrypto traits
  - sm2:实现 signature、elliptic-curve traits
  - sm3:实现 digest、crypto-common traits
  - sm4:实现 cipher、aead traits
- 新增 fuzz/ 模糊测试目标
- 新增 tests/sm2_proptest.rs 属性测试
- 重构 src/sm4/ 使用 RustCrypto AEAD traits
- 更新 CI 工作流支持多 crate 测试
- 更新 .gitignore 忽略 fuzz/target/
This commit is contained in:
huangxt
2026-03-11 18:32:21 +08:00
parent 21e7e65b32
commit a4ca734d0d
36 changed files with 5184 additions and 961 deletions
+37
View File
@@ -0,0 +1,37 @@
[package]
name = "libsmx-fuzz"
version = "0.0.0"
publish = false
edition = "2021"
[package.metadata]
cargo-fuzz = true
# Reason: 空 [workspace] 使 fuzz crate 独立于根 workspace
# 这是 cargo-fuzz 的标准做法(需要 nightly 且不应影响 stable CI)。
[workspace]
[dependencies]
libfuzzer-sys = "0.4"
libsmx = { path = ".." }
sm2 = { path = "../sm2" }
sm3 = { path = "../sm3" }
sm4 = { path = "../sm4" }
[[bin]]
name = "fuzz_sm3_digest"
path = "fuzz_targets/fuzz_sm3_digest.rs"
test = false
doc = false
[[bin]]
name = "fuzz_sm4_roundtrip"
path = "fuzz_targets/fuzz_sm4_roundtrip.rs"
test = false
doc = false
[[bin]]
name = "fuzz_sm2_verify"
path = "fuzz_targets/fuzz_sm2_verify.rs"
test = false
doc = false