bumped russh for AES-CTR, DH and HMAC support - fixes #232, fixes #186

This commit is contained in:
Eugene Pankov 2022-08-05 01:30:30 +02:00
parent c0446063dd
commit 516bd93e21
No known key found for this signature in database
GPG key ID: 5896FCBBDD1CF4F4
3 changed files with 174 additions and 59 deletions

227
Cargo.lock generated
View file

@ -36,6 +36,16 @@ dependencies = [
"generic-array",
]
[[package]]
name = "aead"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ae06cea71059b6b79d879afcdd237a33ac61afc052fdd605815e6f3916254abf"
dependencies = [
"crypto-common",
"generic-array",
]
[[package]]
name = "aes"
version = "0.7.5"
@ -43,23 +53,47 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8"
dependencies = [
"cfg-if",
"cipher",
"cipher 0.3.0",
"cpufeatures",
"ctr",
"opaque-debug",
]
[[package]]
name = "aes"
version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bfe0133578c0986e1fe3dfcd4af1cc5b2dd6c3dbf534d69916ce16a2701d40ba"
dependencies = [
"cfg-if",
"cipher 0.4.3",
"cpufeatures",
]
[[package]]
name = "aes-gcm"
version = "0.9.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "df5f85a83a7d8b0442b6aa7b504b8212c1733da07b98aae43d4bc21b2cb3cdf6"
dependencies = [
"aead",
"aes",
"cipher",
"ctr",
"ghash",
"aead 0.4.3",
"aes 0.7.5",
"cipher 0.3.0",
"ctr 0.8.0",
"ghash 0.4.4",
"subtle",
]
[[package]]
name = "aes-gcm"
version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "82e1366e0c69c9f927b1fa5ce2c7bf9eafc8f9268c0b9800729e8b267612447c"
dependencies = [
"aead 0.5.0",
"aes 0.8.1",
"cipher 0.4.3",
"ctr 0.9.1",
"ghash 0.5.0",
"subtle",
]
@ -414,7 +448,7 @@ checksum = "12621b8e87feb183a6e5dbb315e49026b2229c4398797ee0ae2d1bc00aef41b9"
dependencies = [
"blowfish",
"crypto-mac",
"pbkdf2",
"pbkdf2 0.8.0",
"sha2 0.9.9",
"zeroize",
]
@ -506,21 +540,14 @@ dependencies = [
"generic-array",
]
[[package]]
name = "block-modes"
version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2cb03d1bed155d89dce0f845b7899b18a9a163e148fd004e1c28421a783e2d8e"
dependencies = [
"block-padding",
"cipher",
]
[[package]]
name = "block-padding"
version = "0.2.1"
version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae"
checksum = "0a90ec2df9600c28a01c56c4784c9207a96d2451833aeceb8cc97e4c9548bb78"
dependencies = [
"generic-array",
]
[[package]]
name = "blocking"
@ -543,7 +570,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fe3ff3fc1de48c1ac2e3341c4df38b0d1bfb8fdf04632a187c8b75aaa319a7ab"
dependencies = [
"byteorder",
"cipher",
"cipher 0.3.0",
"opaque-debug",
]
@ -583,6 +610,15 @@ version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c1db59621ec70f09c5e9b597b220c7a2b43611f4710dc03ceb8748637775692c"
[[package]]
name = "cbc"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6"
dependencies = [
"cipher 0.4.3",
]
[[package]]
name = "cc"
version = "1.0.73"
@ -633,6 +669,16 @@ dependencies = [
"generic-array",
]
[[package]]
name = "cipher"
version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d1873270f8f7942c191139cb8a40fd228da6c3fd2fc376d7e92d47aa14aeb59e"
dependencies = [
"crypto-common",
"inout",
]
[[package]]
name = "clang-sys"
version = "1.3.3"
@ -789,10 +835,10 @@ version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "94d4706de1b0fa5b132270cddffa8585166037822e260a944fe161acd137ca05"
dependencies = [
"aes-gcm",
"aes-gcm 0.9.4",
"base64 0.13.0",
"hkdf",
"hmac 0.12.1",
"hmac",
"percent-encoding",
"rand",
"sha2 0.10.2",
@ -882,11 +928,12 @@ dependencies = [
[[package]]
name = "crypto-common"
version = "0.1.3"
version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "57952ca27b5e3606ff4dd79b0020231aaf9d6aa76dc05fd30137538c50bd3ce8"
checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
dependencies = [
"generic-array",
"rand_core",
"typenum",
]
@ -916,7 +963,16 @@ version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "049bb91fb4aaf0e3c7efa6cd5ef877dbbbd15b39dad06d9948de4ec8a75761ea"
dependencies = [
"cipher",
"cipher 0.3.0",
]
[[package]]
name = "ctr"
version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0d14f329cfbaf5d0e06b5e87fff7e265d2673c5ea7d2c27691a2c107db1442a0"
dependencies = [
"cipher 0.4.3",
]
[[package]]
@ -1388,7 +1444,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1583cc1656d7839fd3732b80cf4f38850336cdb9b8ded1cd399ca62958de3c99"
dependencies = [
"opaque-debug",
"polyval",
"polyval 0.5.3",
]
[[package]]
name = "ghash"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d930750de5717d2dd0b8c0d42c076c0e884c81a73e6cab859bbd2339c71e3e40"
dependencies = [
"opaque-debug",
"polyval 0.6.0",
]
[[package]]
@ -1523,23 +1589,19 @@ version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
[[package]]
name = "hex-literal"
version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7ebdb29d2ea9ed0083cd8cece49bbd968021bd99b0849edb4a9a7ee0fdf6a4e0"
[[package]]
name = "hkdf"
version = "0.12.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "791a029f6b9fc27657f6f188ec6e5e43f6911f6f878e0dc5501396e09809d437"
dependencies = [
"hmac 0.12.1",
]
[[package]]
name = "hmac"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b"
dependencies = [
"crypto-mac",
"digest 0.9.0",
"hmac",
]
[[package]]
@ -1739,6 +1801,16 @@ dependencies = [
"libc",
]
[[package]]
name = "inout"
version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5"
dependencies = [
"block-padding",
"generic-array",
]
[[package]]
name = "instant"
version = "0.1.12"
@ -2184,6 +2256,7 @@ dependencies = [
"autocfg",
"num-integer",
"num-traits",
"rand",
]
[[package]]
@ -2458,11 +2531,19 @@ version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d95f5254224e617595d2cc3cc73ff0a5eaf2637519e25f03388154e9378b6ffa"
dependencies = [
"base64ct",
"crypto-mac",
"hmac 0.11.0",
"password-hash 0.2.3",
"sha2 0.9.9",
]
[[package]]
name = "pbkdf2"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917"
dependencies = [
"digest 0.10.3",
"hmac",
"password-hash 0.4.1",
"sha2 0.10.2",
]
[[package]]
@ -2667,7 +2748,19 @@ dependencies = [
"cfg-if",
"cpufeatures",
"opaque-debug",
"universal-hash",
"universal-hash 0.4.1",
]
[[package]]
name = "polyval"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7ef234e08c11dfcb2e56f79fd70f6f2eb7f025c0ce2333e82f4f0518ecad30c6"
dependencies = [
"cfg-if",
"cpufeatures",
"opaque-debug",
"universal-hash 0.5.0",
]
[[package]]
@ -2680,7 +2773,7 @@ dependencies = [
"byteorder",
"bytes 1.2.1",
"fallible-iterator",
"hmac 0.12.1",
"hmac",
"md-5",
"memchr",
"rand",
@ -2993,23 +3086,32 @@ dependencies = [
[[package]]
name = "russh"
version = "0.34.0-beta.5"
version = "0.34.0-beta.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8cc30588f58cdf955a0834ac1868c7061f59f97b32cc64edaee6ed7610722e29"
checksum = "4f3bb72a66e32d52e0e258627d141d5c93b408e050f15033699caa836d064c7e"
dependencies = [
"aes 0.8.1",
"aes-gcm 0.10.1",
"bitflags",
"byteorder",
"digest 0.9.0",
"ctr 0.9.1",
"digest 0.10.3",
"flate2",
"futures",
"generic-array",
"hex-literal",
"hmac",
"log",
"num-bigint",
"once_cell",
"openssl",
"rand",
"russh-cryptovec",
"russh-keys",
"russh-libsodium",
"sha2 0.9.9",
"sha1",
"sha2 0.10.2",
"subtle",
"thiserror",
"tokio",
]
@ -3026,31 +3128,34 @@ dependencies = [
[[package]]
name = "russh-keys"
version = "0.22.0-beta.3"
version = "0.22.0-beta.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2163fb2fcdc1f03f8b37dd93392779461f4181c3a109edf0ffb1bb03e6efbff4"
checksum = "727c26a99d90f1b43ed80d42256c7788ccfe0ce4524634298f9bdbb1d5ceb7c6"
dependencies = [
"aes",
"aes 0.8.1",
"bcrypt-pbkdf",
"bit-vec",
"block-modes",
"block-padding",
"byteorder",
"cbc",
"ctr 0.9.1",
"data-encoding",
"dirs",
"futures",
"hmac 0.11.0",
"hmac",
"inout",
"log",
"md5",
"num-bigint",
"num-integer",
"openssl",
"pbkdf2",
"pbkdf2 0.11.0",
"rand",
"russh-cryptovec",
"russh-libsodium",
"serde",
"serde_derive",
"sha2 0.9.9",
"sha2 0.10.2",
"thiserror",
"tokio",
"tokio-stream",
@ -4016,7 +4121,7 @@ checksum = "b9254defd2c9202c8e5a03e4120faa0c1e0cb8ed365fb5d7305a33d0b4cf571c"
dependencies = [
"base32",
"constant_time_eq",
"hmac 0.12.1",
"hmac",
"sha-1",
"sha2 0.10.2",
"url",
@ -4261,6 +4366,16 @@ dependencies = [
"subtle",
]
[[package]]
name = "universal-hash"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7d3160b73c9a19f7e2939a2fdad446c57c1bbbbf4d919d3213ff1267a580d8b5"
dependencies = [
"crypto-common",
"subtle",
]
[[package]]
name = "untrusted"
version = "0.7.1"

View file

@ -24,7 +24,7 @@ poem-openapi = { version = "^2.0.4", features = [
"uuid",
"static-files",
] }
russh-keys = { version = "0.22.0-beta.3", features = ["openssl"] }
russh-keys = { version = "0.22.0-beta.4", features = ["openssl"] }
rust-embed = "6.3"
sea-orm = { version = "^0.9", features = [
"sqlx-sqlite",

View file

@ -12,8 +12,8 @@ bimap = "0.6"
bytes = "1.2"
dialoguer = "0.10"
futures = "0.3"
russh = {version = "0.34.0-beta.5", features = ["openssl"]}
russh-keys = {version = "0.22.0-beta.3", features = ["openssl"]}
russh = {version = "0.34.0-beta.7", features = ["openssl"]}
russh-keys = {version = "0.22.0-beta.4", features = ["openssl"]}
sea-orm = {version = "^0.9", features = ["runtime-tokio-native-tls"], default-features = false}
thiserror = "1.0"
time = "0.3"