Correct std feature-flagging

If a crate has std set, it should enable std for all dependencies in order to
let them properly select which algorithms to use. Some crates fallback to
slower/worse algorithms on no-std.

Also more aggressively sets default-features = false leading to a *10%*
reduction in the amount of crates coordinator builds.
This commit is contained in:
Luke Parker
2023-10-31 07:41:23 -04:00
parent 34bcb9eb01
commit 05dc474cb3
19 changed files with 185 additions and 135 deletions

View File

@@ -38,15 +38,36 @@ k256 = { version = "^0.13.1", default-features = false, features = ["arithmetic"
minimal-ed448 = { path = "../ed448", version = "0.4", default-features = false, optional = true }
[dev-dependencies]
hex = "0.4"
hex = { version = "0.4", default-features = false, features = ["std"] }
rand_core = { version = "0.6", features = ["std"] }
rand_core = { version = "0.6", default-features = false, features = ["std"] }
ff-group-tests = { version = "0.13", path = "../ff-group-tests" }
[features]
alloc = ["std-shims"]
std = ["zeroize/std", "std-shims/std"]
std = [
"std-shims/std",
"rand_core/std",
"zeroize/std",
"subtle/std",
"digest/std",
"transcript/std",
"sha2?/std",
"sha3?/std",
"ff/std",
"dalek-ff-group?/std",
"elliptic-curve?/std",
"p256?/std",
"k256?/std",
"minimal-ed448?/std",
]
dalek = ["sha2", "dalek-ff-group"]
ed25519 = ["dalek"]