Add Curve25519 support (#577)

Supported in PIV applet since firmware 5.7.X
This commit is contained in:
Andrew Lubawy
2026-02-18 16:27:43 -08:00
committed by GitHub
parent c96b50bcec
commit 872ba35f54
6 changed files with 252 additions and 12 deletions
Generated
+84 -2
View File
@@ -187,9 +187,9 @@ checksum = "0dabb6555f92fb9ee4140454eb5dcd14c7960e1225c6d1a6cc361f032947713e"
[[package]]
name = "cpufeatures"
version = "0.2.11"
version = "0.2.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0"
checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280"
dependencies = [
"libc",
]
@@ -229,6 +229,33 @@ dependencies = [
"rand_core",
]
[[package]]
name = "curve25519-dalek"
version = "5.0.0-pre.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6f9200d1d13637f15a6acb71e758f64624048d85b31a5fdbfd8eca1e2687d0b7"
dependencies = [
"cfg-if",
"cpufeatures",
"curve25519-dalek-derive",
"digest",
"fiat-crypto",
"rustc_version",
"subtle",
"zeroize",
]
[[package]]
name = "curve25519-dalek-derive"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "der"
version = "0.8.0-rc.9"
@@ -289,6 +316,31 @@ dependencies = [
"zeroize",
]
[[package]]
name = "ed25519"
version = "3.0.0-rc.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9ef49c0b20c0ad088893ad2a790a29c06a012b3f05bcfc66661fd22a94b32129"
dependencies = [
"pkcs8",
"signature",
]
[[package]]
name = "ed25519-dalek"
version = "3.0.0-pre.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ad207ed88a133091f83224265eac21109930db09bedcad05d5252f2af2de20a1"
dependencies = [
"curve25519-dalek",
"ed25519",
"serde",
"sha2",
"signature",
"subtle",
"zeroize",
]
[[package]]
name = "elliptic-curve"
version = "0.14.0-rc.14"
@@ -716,6 +768,15 @@ dependencies = [
"zeroize",
]
[[package]]
name = "rustc_version"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92"
dependencies = [
"semver",
]
[[package]]
name = "sec1"
version = "0.8.0-rc.10"
@@ -738,6 +799,12 @@ dependencies = [
"zeroize",
]
[[package]]
name = "semver"
version = "1.0.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2"
[[package]]
name = "serde"
version = "1.0.193"
@@ -1084,6 +1151,18 @@ dependencies = [
"bitflags 2.5.0",
]
[[package]]
name = "x25519-dalek"
version = "3.0.0-pre.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3a45998121837fd8c92655d2334aa8f3e5ef0645cdfda5b321b13760c548fd55"
dependencies = [
"curve25519-dalek",
"rand_core",
"serde",
"zeroize",
]
[[package]]
name = "x509-cert"
version = "0.3.0-rc.2"
@@ -1106,9 +1185,11 @@ dependencies = [
"base16ct 0.2.0",
"bitflags 2.5.0",
"cipher",
"curve25519-dalek",
"der",
"des",
"ecdsa",
"ed25519-dalek",
"elliptic-curve",
"env_logger",
"log",
@@ -1127,6 +1208,7 @@ dependencies = [
"signature",
"subtle",
"uuid",
"x25519-dalek",
"x509-cert",
"zeroize",
]