Implement SSH identity authentication

This commit is contained in:
2026-08-25 19:52:47 +02:00
parent f636f3b551
commit 5dbda4bbd2
14 changed files with 1964 additions and 60 deletions

81
Cargo.lock generated
View File

@@ -290,7 +290,7 @@ dependencies = [
"p12",
"p256 0.13.2",
"pem",
"pkcs1",
"pkcs1 0.7.5",
"pkcs8 0.10.2",
"plist",
"rand 0.8.7",
@@ -299,7 +299,7 @@ dependencies = [
"regex",
"reqwest 0.12.28",
"ring",
"rsa",
"rsa 0.9.10",
"scroll",
"security-framework 2.11.1",
"security-framework-sys",
@@ -2020,6 +2020,16 @@ dependencies = [
"rand_core 0.10.1",
]
[[package]]
name = "crypto-primes"
version = "0.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3633a51a39c69ebbaa4feaa694bd83d241e4093901c84a0963b19d9bb3f0cf8f"
dependencies = [
"crypto-bigint 0.7.5",
"rand_core 0.10.1",
]
[[package]]
name = "cryptographic-message-syntax"
version = "0.27.0"
@@ -2807,7 +2817,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
dependencies = [
"libc",
"windows-sys 0.52.0",
"windows-sys 0.61.2",
]
[[package]]
@@ -3834,7 +3844,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1a791e6620676a875f362f3156ed213e73ca099a09bf992c18812abe65cc37b1"
dependencies = [
"bstr",
"hashbrown 0.15.5",
"hashbrown 0.17.1",
]
[[package]]
@@ -5378,6 +5388,7 @@ dependencies = [
"smallvec",
"tempfile",
"tokio",
"tokio-stream",
"toml 0.9.12+spec-1.1.0",
"url",
"windows-native-keyring-store",
@@ -5463,7 +5474,7 @@ version = "1.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "82cb6a9f675da968c63b6208c641b9dca58fc0133ae53375736b1767b0cab8bd"
dependencies = [
"windows-sys 0.59.0",
"windows-sys 0.61.2",
]
[[package]]
@@ -6947,7 +6958,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7d8fae84b431384b68627d0f9b3b1245fcf9f46f6c0e3dc902e9dce64edd1967"
dependencies = [
"libc",
"windows-sys 0.48.0",
"windows-sys 0.61.2",
]
[[package]]
@@ -7354,7 +7365,7 @@ dependencies = [
"rand 0.8.7",
"replace_with",
"ripemd",
"rsa",
"rsa 0.9.10",
"sha1 0.10.7",
"sha1-checked",
"sha2 0.10.9",
@@ -7484,6 +7495,16 @@ dependencies = [
"spki 0.7.3",
]
[[package]]
name = "pkcs1"
version = "0.8.0-rc.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "986d2e952779af96ea048f160fd9194e1751b4faea78bcf3ceb456efe008088e"
dependencies = [
"der 0.8.1",
"spki 0.8.0",
]
[[package]]
name = "pkcs5"
version = "0.8.1"
@@ -7857,7 +7878,7 @@ dependencies = [
"once_cell",
"socket2",
"tracing",
"windows-sys 0.52.0",
"windows-sys 0.61.2",
]
[[package]]
@@ -8446,7 +8467,7 @@ dependencies = [
"num-bigint-dig",
"num-integer",
"num-traits",
"pkcs1",
"pkcs1 0.7.5",
"pkcs8 0.10.2",
"rand_core 0.6.4",
"signature 2.2.0",
@@ -8455,6 +8476,25 @@ dependencies = [
"zeroize",
]
[[package]]
name = "rsa"
version = "0.10.0-rc.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "30b2aa4ba0d89f73d1e332df05be0eeab8840351c36ca5654341dfdb57bb3caf"
dependencies = [
"const-oid 0.10.2",
"crypto-bigint 0.7.5",
"crypto-primes",
"digest 0.11.3",
"pkcs1 0.8.0-rc.4",
"pkcs8 0.11.0",
"rand_core 0.10.1",
"sha2 0.11.0",
"signature 3.0.0",
"spki 0.8.0",
"zeroize",
]
[[package]]
name = "rtoolbox"
version = "0.0.5"
@@ -8508,12 +8548,14 @@ dependencies = [
"p521 0.14.0",
"pageant",
"pbkdf2",
"pkcs1 0.8.0-rc.4",
"pkcs5",
"pkcs8 0.11.0",
"polyval 0.7.3",
"rand 0.10.2",
"rand_core 0.10.1",
"ring",
"rsa 0.10.0-rc.18",
"russh-cryptovec",
"russh-util",
"salsa20",
@@ -8623,7 +8665,7 @@ dependencies = [
"errno",
"libc",
"linux-raw-sys 0.12.1",
"windows-sys 0.52.0",
"windows-sys 0.61.2",
]
[[package]]
@@ -8713,7 +8755,7 @@ dependencies = [
"security-framework 3.7.0",
"security-framework-sys",
"webpki-root-certs",
"windows-sys 0.52.0",
"windows-sys 0.61.2",
]
[[package]]
@@ -9574,6 +9616,7 @@ checksum = "7b54d0ed0498daf3f78d82e00e28c8eec9d75a067c4cfbcc7a0f7d0f4077749e"
dependencies = [
"base64ct",
"bytes",
"crypto-bigint 0.7.5",
"ctutils",
"digest 0.11.3",
"pem-rfc7468 1.0.0",
@@ -9596,6 +9639,7 @@ dependencies = [
"p384 0.14.0",
"p521 0.14.0",
"rand_core 0.10.1",
"rsa 0.10.0-rc.18",
"sec1 0.8.1",
"sha1 0.11.0",
"sha2 0.11.0",
@@ -9770,7 +9814,7 @@ dependencies = [
"getrandom 0.4.3",
"once_cell",
"rustix 1.1.4",
"windows-sys 0.52.0",
"windows-sys 0.61.2",
]
[[package]]
@@ -10040,6 +10084,17 @@ dependencies = [
"tokio",
]
[[package]]
name = "tokio-stream"
version = "0.1.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a3d06f0b082ba57c26b79407372e57cf2a1e28124f78e9479fe80322cf53420b"
dependencies = [
"futures-core",
"pin-project-lite",
"tokio",
]
[[package]]
name = "tokio-util"
version = "0.7.19"
@@ -11198,7 +11253,7 @@ version = "0.1.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
dependencies = [
"windows-sys 0.48.0",
"windows-sys 0.61.2",
]
[[package]]