diff --git a/Cargo.lock b/Cargo.lock index 0993afad..7e601b04 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -647,43 +647,59 @@ dependencies = [ "block-buffer 0.11.0-rc.5", "block-padding", "byteorder", + "cbc", "cipher", "concat-kdf", "crypto-bigint", "crypto-common 0.2.0-rc.4", + "crypto-primes", "ctr", + "curve25519-dalek", "der", + "des", "digest 0.11.0-rc.3", "dpapi-core", "dpapi-pdu", "dpapi-transport", "ecdsa", + "ed25519", + "ed25519-dalek", "elliptic-curve", + "ff", "getrandom 0.3.4", "ghash", + "group", "hkdf", "hmac", "inout", "kbkdf", + "keccak", + "md-5", "num-derive", "num-traits", "p256", "p384", "p521", "paste", + "pbkdf2", "pem-rfc7468", "picky-asn1", "picky-asn1-der", "picky-asn1-x509", "picky-krb", + "pkcs1", "pkcs8", "polyval", + "primefield", + "primeorder", "rand 0.9.2", "regex", "rfc6979", + "rsa", "sec1", "sha1 0.11.0-rc.2", "sha2", + "sha3", "signature", "spki", "sspi", @@ -694,6 +710,7 @@ dependencies = [ "url", "uuid", "whoami", + "x25519-dalek", ] [[package]] @@ -1917,21 +1934,25 @@ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "picky" -version = "7.0.0-rc.19" +version = "7.0.0-rc.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "143fec6b7fa8ec91cbe1136f70ffa5de7e9627064da7bc3f7c0becc9b9493f8c" +checksum = "4cdc52be663aebd70d7006ae305c87eb32a2b836d6c2f26f7e384f845d80b621" dependencies = [ "base64", "block-buffer 0.11.0-rc.5", "block-padding", "crypto-bigint", "crypto-common 0.2.0-rc.4", + "crypto-primes", + "curve25519-dalek", "der", "digest 0.11.0-rc.3", "ecdsa", "ed25519", "ed25519-dalek", "elliptic-curve", + "ff", + "group", "hex", "hkdf", "inout", @@ -2867,11 +2888,16 @@ dependencies = [ "crypto-bigint", "crypto-common 0.2.0-rc.4", "crypto-mac", + "crypto-primes", "cryptoki", + "curve25519-dalek", "der", "digest 0.11.0-rc.3", + "ed25519-dalek", + "ff", "futures", "getrandom 0.3.4", + "group", "hickory-proto", "hickory-resolver", "hmac", @@ -2880,6 +2906,9 @@ dependencies = [ "num-derive", "num-traits", "oid", + "p256", + "p384", + "p521", "pem-rfc7468", "picky", "picky-asn1", @@ -2889,6 +2918,8 @@ dependencies = [ "pkcs1", "pkcs8", "portpicker", + "primefield", + "primeorder", "proptest", "rand 0.9.2", "reqwest", diff --git a/Cargo.toml b/Cargo.toml index e5b37a92..eb7d0131 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -55,7 +55,7 @@ sha2 = "=0.11.0-rc.2" num-derive = "0.4" num-traits = { version = "0.2", default-features = false } -picky = { version = "7.0.0-rc.19", default-features = false } +picky = { version = "=7.0.0-rc.20", default-features = false } picky-asn1 = "0.10" picky-asn1-der = "0.5" picky-asn1-x509 = "0.15" @@ -162,6 +162,7 @@ tokio = { workspace = true, features = ["time", "rt", "rt-multi-thread"] } # Pin transitive dependencies # TODO: Remove when stable versions will be released +# RustCrypto crates digest = "=0.11.0-rc.3" block-buffer = "=0.11.0-rc.5" crypto-common = "=0.2.0-rc.4" @@ -171,6 +172,20 @@ der = "=0.8.0-rc.9" spki = "=0.8.0-rc.4" pem-rfc7468 = "=1.0.0-rc.3" signature = "=3.0.0-rc.4" +p256 = "=0.14.0-pre.11" +primefield = "=0.14.0-pre.6" +primeorder = "=0.14.0-pre.9" +p384 = "=0.14.0-pre.11" +p521 = "=0.14.0-pre.11" +crypto-primes = "=0.7.0-pre.3" + +# "Zero-knowledge Cryptography in Rust" crates +ff = { version = "=0.14.0-pre.0", default-features = false } +group = "=0.14.0-pre.0" + +# "dalek cryptography" crates +ed25519-dalek = "=3.0.0-pre.1" +curve25519-dalek = "=5.0.0-pre.1" [dev-dependencies] base64.workspace = true diff --git a/crates/dpapi/Cargo.toml b/crates/dpapi/Cargo.toml index 2726852f..b1c12531 100644 --- a/crates/dpapi/Cargo.toml +++ b/crates/dpapi/Cargo.toml @@ -42,9 +42,9 @@ sspi = { path = "../..", version = "0.18" } # public kbkdf = "0.0.1" elliptic-curve = { version = "=0.14.0-rc.15", features = ["sec1", "std"] } -p521 = { version = "0.14.0-pre.11", features = ["ecdh"] } -p256 = { version = "0.14.0-pre.11", features = ["ecdh"] } -p384 = { version = "0.14.0-pre.11", features = ["ecdh"] } +p521 = { version = "=0.14.0-pre.11", features = ["ecdh"] } +p256 = { version = "=0.14.0-pre.11", features = ["ecdh"] } +p384 = { version = "=0.14.0-pre.11", features = ["ecdh"] } concat-kdf = { git = "https://github.com/RustCrypto/KDFs.git", rev = "f2f5c03" } # TODO: We need the new version, but it's not released yet. typenum = "1.18" aes-kw = "=0.3.0-rc.1" @@ -77,6 +77,23 @@ ctr = "=0.10.0-rc.1" ghash = "=0.6.0-rc.2" polyval = "=0.7.0-rc.2" universal-hash = "=0.6.0-rc.2" +ed25519 ="=3.0.0-rc.1" +cbc = "=0.2.0-rc.1" +des = "=0.9.0-rc.1" +pbkdf2 = "=0.13.0-rc.1" +md-5 = "=0.11.0-rc.2" +keccak = "=0.2.0-rc.0" +pkcs1 = "=0.8.0-rc.4" +rsa = "=0.10.0-rc.9" +sha3 = "=0.11.0-rc.3" +ff = { version = "=0.14.0-pre.0", default-features = false } +group = "=0.14.0-pre.0" +primefield = "=0.14.0-pre.6" +primeorder = "=0.14.0-pre.9" +ed25519-dalek = "=3.0.0-pre.1" +curve25519-dalek = "=5.0.0-pre.1" +crypto-primes = "=0.7.0-pre.3" +x25519-dalek = "=3.0.0-pre.1" [dev-dependencies] paste = "1.0"