diff --git a/Cargo.lock b/Cargo.lock index a6cac25..2c27e0e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -100,6 +100,15 @@ dependencies = [ "wyz", ] +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + [[package]] name = "block-buffer" version = "0.12.0" @@ -291,6 +300,16 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" +[[package]] +name = "crypto-common" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" +dependencies = [ + "generic-array", + "typenum", +] + [[package]] name = "crypto-common" version = "0.2.1" @@ -300,6 +319,22 @@ dependencies = [ "hybrid-array", ] +[[package]] +name = "curve25519-dalek" +version = "4.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" +dependencies = [ + "cfg-if", + "cpufeatures 0.2.17", + "curve25519-dalek-derive", + "digest 0.10.7", + "fiat-crypto", + "rustc_version", + "subtle", + "zeroize", +] + [[package]] name = "curve25519-dalek-derive" version = "0.1.1" @@ -322,14 +357,24 @@ dependencies = [ "zeroize", ] +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer 0.10.4", + "crypto-common 0.1.7", +] + [[package]] name = "digest" version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4850db49bf08e663084f7fb5c87d202ef91a3907271aff24a94eb97ff039153c" dependencies = [ - "block-buffer", - "crypto-common", + "block-buffer 0.12.0", + "crypto-common 0.2.1", ] [[package]] @@ -339,9 +384,41 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" dependencies = [ "pkcs8", + "serde", "signature", ] +[[package]] +name = "ed25519-dalek" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70e796c081cee67dc755e1a36a0a172b897fab85fc3f6bc48307991f64e4eca9" +dependencies = [ + "curve25519-dalek", + "ed25519", + "serde", + "sha2 0.10.9", + "subtle", + "zeroize", +] + +[[package]] +name = "ed25519-zebra" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "775765289f7c6336c18d3d66127527820dd45ffd9eb3b6b8ee4708590e6c20f5" +dependencies = [ + "curve25519-dalek", + "ed25519", + "hashbrown 0.16.1", + "pkcs8", + "rand_core 0.6.4", + "serde", + "sha2 0.10.9", + "subtle", + "zeroize", +] + [[package]] name = "either" version = "1.15.0" @@ -370,6 +447,12 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" +[[package]] +name = "fiat-crypto" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" + [[package]] name = "find-msvc-tools" version = "0.1.9" @@ -388,12 +471,28 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" +[[package]] +name = "foldhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" + [[package]] name = "funty" version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + [[package]] name = "getrandom" version = "0.2.17" @@ -450,7 +549,7 @@ checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" dependencies = [ "allocator-api2", "equivalent", - "foldhash", + "foldhash 0.1.5", ] [[package]] @@ -458,6 +557,11 @@ name = "hashbrown" version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash 0.2.0", +] [[package]] name = "heck" @@ -712,7 +816,7 @@ dependencies = [ "bitflags", "num-traits", "rand 0.9.2", - "rand_chacha 0.9.0", + "rand_chacha", "rand_xorshift", "regex-syntax", "rusty-fork", @@ -753,24 +857,13 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", -] - [[package]] name = "rand" version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" dependencies = [ - "rand_chacha 0.9.0", + "rand_chacha", "rand_core 0.9.5", ] @@ -785,16 +878,6 @@ dependencies = [ "rand_core 0.10.0", ] -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", -] - [[package]] name = "rand_chacha" version = "0.9.0" @@ -1036,6 +1119,17 @@ dependencies = [ "zmij", ] +[[package]] +name = "sha2" +version = "0.10.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" +dependencies = [ + "cfg-if", + "cpufeatures 0.2.17", + "digest 0.10.7", +] + [[package]] name = "sha2" version = "0.11.0-rc.5" @@ -1044,7 +1138,7 @@ checksum = "7c5f3b1e2dc8aad28310d8410bd4d7e180eca65fca176c52ab00d364475d0024" dependencies = [ "cfg-if", "cpufeatures 0.2.17", - "digest", + "digest 0.11.2", ] [[package]] @@ -1058,6 +1152,9 @@ name = "signature" version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "rand_core 0.6.4", +] [[package]] name = "solana-curve25519-cuda" @@ -1065,9 +1162,6 @@ version = "0.1.0" dependencies = [ "cc", "criterion", - "rand 0.8.5", - "rand_chacha 0.3.1", - "rand_core 0.6.4", "rayon", "solana-ed25519", "which", @@ -1083,8 +1177,10 @@ dependencies = [ "criterion", "curve25519-dalek-derive", "der", - "digest", + "digest 0.11.2", "ed25519", + "ed25519-dalek", + "ed25519-zebra", "hashbrown 0.15.5", "hex", "pkcs8", @@ -1095,7 +1191,7 @@ dependencies = [ "rustcrypto-ff", "rustcrypto-group", "serde", - "sha2", + "sha2 0.11.0-rc.5", "subtle", "zeroize", ] @@ -1191,6 +1287,12 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + [[package]] name = "wait-timeout" version = "0.2.1" diff --git a/Cargo.toml b/Cargo.toml index 79f9e59..57e11d9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,3 +8,34 @@ resolver = "2" [profile.dev] opt-level = 2 + +[workspace.dependencies] +bincode = "1" +cc = "1.0" +cfg-if = "1" +criterion = { version = "0.5", features = ["html_reports"] } +# Keep the dependency key as "curve25519" so that all existing `use curve25519::…` +# references in source files remain valid; the actual package is solanacurve25519. +curve25519 = { path = "curve25519/solana-ed25519", package = "solana-ed25519" } +curve25519-dalek-derive = "0.1.1" +cpufeatures = "0.2.17" +der = "0.7.9" +digest = { version = "0.11.0-rc.4", default-features = false, features = ["block-api"] } +ed25519 = { version = "2.2.3", default-features = false } +ed25519-dalek = "2.2.0" +ed25519-zebra = "4.2.0" +ff = { version = "=0.14.0-pre.0", package = "rustcrypto-ff", default-features = false } +group = { version = "=0.14.0-pre.0", package = "rustcrypto-group", default-features = false } +hashbrown = "0.15" +hex = "0.4.2" +pkcs8 = { version = "0.10.1", features = ["pem"] } +proptest = "1" +rand = "0.10.0-rc.5" +rand_core = { version = "0.10.0-rc-3", default-features = false } +rayon = "1.10" +rustc_version = "0.4.0" +serde = { version = "1.0", default-features = false, features = ["derive"] } +sha2 = { version = "0.11.0-rc.3", default-features = false } +subtle = { version = "2.6.0", default-features = false, features = ["const-generics"] } +which = "4.4" +zeroize = { version = "1", default-features = false, features = ["derive"] } \ No newline at end of file diff --git a/curve25519/curve25519-cuda/Cargo.toml b/curve25519/curve25519-cuda/Cargo.toml index 84cc50a..a1fb8af 100644 --- a/curve25519/curve25519-cuda/Cargo.toml +++ b/curve25519/curve25519-cuda/Cargo.toml @@ -5,20 +5,15 @@ edition = "2024" authors = ["Anza Cryptography Team"] [dependencies] -# Keep the dependency key as "curve25519" so that all existing `use curve25519::…` -# references in source files remain valid; the actual package is curve25519-sol. -curve25519 = { path = "../solana-ed25519", package = "solana-ed25519" } -rand = "0.8" -rand_chacha = "0.3" -rand_core = "0.6" -rayon = "1.10" +curve25519.workspace = true +rayon.workspace = true [build-dependencies] -cc = "1.0" -which = "4.4" +cc.workspace = true +which.workspace = true [dev-dependencies] -criterion = "0.5" +criterion.workspace = true [[bench]] name = "msm" diff --git a/curve25519/solana-ed25519/Cargo.toml b/curve25519/solana-ed25519/Cargo.toml index 7ec4505..e24e80d 100644 --- a/curve25519/solana-ed25519/Cargo.toml +++ b/curve25519/solana-ed25519/Cargo.toml @@ -30,14 +30,16 @@ rustdoc-args = [ all-features = true [dev-dependencies] -bincode = "1" -criterion = { version = "0.5", features = ["html_reports"] } -hex = "0.4.2" -proptest = "1" -rand = "0.10.0-rc.5" +bincode.workspace = true +criterion.workspace = true +ed25519-dalek.workspace = true +ed25519-zebra.workspace = true +hex.workspace = true +proptest.workspace = true +rand.workspace = true [build-dependencies] -rustc_version = "0.4.0" +rustc_version.workspace = true [[bench]] name = "dalek_benchmarks" @@ -45,29 +47,23 @@ harness = false required-features = ["alloc"] [dependencies] -cfg-if = "1" -ed25519 = { version = "2.2.3", default-features = false } -ff = { version = "=0.14.0-pre.0", package = "rustcrypto-ff", default-features = false, optional = true } -group = { version = "=0.14.0-pre.0", package = "rustcrypto-group", default-features = false, optional = true } -rand_core = { version = "0.10.0-rc-3", default-features = false, optional = true } -digest = { version = "0.11.0-rc.4", default-features = false, optional = true, features = [ - "block-api", -] } -hashbrown = { version = "0.15" } -der = { version = "0.7.9", optional = true } -pkcs8 = { version = "0.10.1", optional = true, features = ["pem"] } -sha2 = { version = "0.11.0-rc.3", default-features = false } -subtle = { version = "2.6.0", default-features = false, features = [ - "const-generics", -] } -serde = { version = "1.0", default-features = false, optional = true, features = [ - "derive", -] } -zeroize = { version = "1", default-features = false, optional = true, features = ["derive"] } +cfg-if.workspace = true +ed25519.workspace = true +ff = { workspace = true, optional = true } +group = { workspace = true, optional = true } +rand_core = { workspace = true, optional = true } +digest = { workspace = true, optional = true } +hashbrown.workspace = true +der = { workspace = true, optional = true } +pkcs8 = { workspace = true, optional = true } +sha2.workspace = true +subtle.workspace = true +serde = { workspace = true, optional = true } +zeroize = { workspace = true, optional = true } [target.'cfg(target_arch = "x86_64")'.dependencies] -cpufeatures = "0.2.17" -curve25519-dalek-derive = "0.1.1" +cpufeatures = { workspace = true } +curve25519-dalek-derive = { workspace = true } [features] default = ["alloc", "precomputed-tables", "zeroize", "rand_core", "digest"]