Fixing the terrapin attack mitigation
Dependencies
- [2]
2Q3SZY2CVersion bump - [3]
VJIXIN4TFixing CVE-2023-48795 - [4]
KNLLUDOICorrect usage of `tokio::select!` - [5]
2WEO7OZLVersion updates: getting rid of anyhow + moving to Tokio 1.0 - [6]
ASD7JVBEDo not read past the size of the buffer (after Tokio 0.3) - [7]
2VTUKRLJVersion - [8]
ORSEEVB5Version bump - [9]
7Y2ROIVZVersion bump - [10]
E2SB74SVVersion 0.30.3 - [11]
VYDCQWSFVersion 0.30.6 - [12]
UHAEQPZUSupport ecdsa-sha2-nistp256 keys for authentication - [13]
FT67GGO4Version bump (Pijul and Thrussh) - [14]
BRDS7STAAdding method `send_channel_msg` to client::Session, to make it easier to write handlers - [15]
OQZGSEWMBuffering non-kex packets received after issuing a KEXINIT - [16]
TAOFQAIIcargo fmt - [17]
WXZWQLGLCorrect negotiation without OpenSSL - [18]
7FRJYUI6Reboot because of a bad change - [19]
CQSPFH4HVersion 0.30.4 - [20]
DJT33BQEVersion bump - [21]
PDTFLA4YVersion 0.30.7 - [22]
NHOSLQGGThrussh: making OpenSSL optional - [23]
EUHO3DAZSend a SSH_MSG_EXT_INFO with server-sig-algs when the client indicates they support extensions by sending ext-info-c. This allows modern clients that don't do ssh-rsa anymore because of sha1 to still use RSA keys with sha2. - [24]
634OYCNMTokio 0.3 - [25]
TFYJ3P2AVersion 0.30.8/0.19.4, and solving conflicts - [26]
G3FNNIIULimiting the amount of messages that can be buffered while rekeying to two channel windows - [27]
662ZS5JFVersion 0.33.2 - [28]
CWHVPLXNVersion bump
Change contents
- replacement in thrussh/src/server/mod.rs at line 80
preferred: Default::default(),preferred: Preferred::DEFAULT_SERVER, - edit in thrussh/src/server/mod.rs at line 644
debug!("buf {:?}", buf); - edit in thrussh/src/server/kex.rs at line 60
debug!("preferred {:?}", config.preferred); - replacement in thrussh/src/negotiation.rs at line 56
pub const DEFAULT: Preferred = Preferred {kex: &[kex::CURVE25519, kex::STRICT],pub const DEFAULT_SERVER: Preferred = Preferred {kex: &[kex::CURVE25519, kex::STRICT_S],key: &[key::ED25519,key::ECDSA_SHA2_NISTP256,key::RSA_SHA2_256,key::RSA_SHA2_512,],cipher: &[cipher::chacha20poly1305::NAME],mac: &["none"],compression: &["none", "zlib", "zlib@openssh.com"],};#[cfg(all(feature = "openssl", feature = "p256"))]pub const DEFAULT_CLIENT: Preferred = Preferred {kex: &[kex::CURVE25519, kex::STRICT_C], - replacement in thrussh/src/negotiation.rs at line 83
pub const DEFAULT: Preferred = Preferred {kex: &[kex::CURVE25519, kex::STRICT],pub const DEFAULT_SERVER: Preferred = Preferred {kex: &[kex::CURVE25519, kex::STRICT_S],key: &[key::ED25519, key::ECDSA_SHA2_NISTP256],cipher: &[cipher::chacha20poly1305::NAME],mac: &["none"],compression: &["none", "zlib", "zlib@openssh.com"],};#[cfg(all(not(feature = "openssl"), feature = "p256"))]pub const DEFAULT_CLIENT: Preferred = Preferred {kex: &[kex::CURVE25519, kex::STRICT_C], - replacement in thrussh/src/negotiation.rs at line 101[4.32]→[4.270075:270122](∅→∅),[4.16101]→[4.270075:270122](∅→∅),[4.270075]→[4.270075:270122](∅→∅),[4.270122]→[3.1149:1195](∅→∅)
pub const DEFAULT: Preferred = Preferred {kex: &[kex::CURVE25519, kex::STRICT],pub const DEFAULT_SERVER: Preferred = Preferred {kex: &[kex::CURVE25519, kex::STRICT_S],key: &[key::ED25519, key::RSA_SHA2_256, key::RSA_SHA2_512],cipher: &[cipher::chacha20poly1305::NAME],mac: &["none"],compression: &["none", "zlib", "zlib@openssh.com"],};#[cfg(all(feature = "openssl", not(feature = "p256")))]pub const DEFAULT_CLIENT: Preferred = Preferred {kex: &[kex::CURVE25519, kex::STRICT_C], - replacement in thrussh/src/negotiation.rs at line 119
pub const DEFAULT: Preferred = Preferred {kex: &[kex::CURVE25519, kex::STRICT],pub const DEFAULT_SERVER: Preferred = Preferred {kex: &[kex::CURVE25519, kex::STRICT_S], - replacement in thrussh/src/negotiation.rs at line 127[4.270366]→[4.270366:270416](∅→∅),[4.270416]→[3.1243:1289](∅→∅),[3.1289]→[4.16168:16321](∅→∅),[4.270449]→[4.16168:16321](∅→∅)
pub const COMPRESSED: Preferred = Preferred {kex: &[kex::CURVE25519, kex::STRICT],key: &[key::ED25519,key::ECDSA_SHA2_NISTP256,key::RSA_SHA2_256,key::RSA_SHA2_512,],#[cfg(all(not(feature = "openssl"), not(feature = "p256")))]pub const DEFAULT_CLIENT: Preferred = Preferred {kex: &[kex::CURVE25519, kex::STRICT_C],key: &[key::ED25519], - replacement in thrussh/src/negotiation.rs at line 133
compression: &["zlib", "zlib@openssh.com", "none"],compression: &["none", "zlib", "zlib@openssh.com"], - edit in thrussh/src/negotiation.rs at line 135
}impl Default for Preferred {fn default() -> Preferred {Preferred::DEFAULT} - replacement in thrussh/src/negotiation.rs at line 199
let client_supports_strict = Self::select(&[kex::STRICT], kex_string).is_some();let server_supports_strict = Self::select(&[kex::STRICT], kex_string).is_some();let client_supports_strict = Self::select(&[kex::STRICT_C], kex_string).is_some();let server_supports_strict = Self::select(&[kex::STRICT_S], kex_string).is_some();debug!("strict {:?} {:?}", client_supports_strict, server_supports_strict); - replacement in thrussh/src/kex.rs at line 48
pub const STRICT: Name = Name("kex-strict-c-v00@openssh.com");pub const STRICT_C: Name = Name("kex-strict-c-v00@openssh.com");pub const STRICT_S: Name = Name("kex-strict-s-v00@openssh.com"); - replacement in thrussh/src/client/mod.rs at line 22
use crate::{ChannelId, ChannelMsg, ChannelOpenFailure, Disconnect, Limits, Sig};use crate::{ChannelId, ChannelMsg, ChannelOpenFailure, Disconnect, Limits, Preferred, Sig}; - replacement in thrussh/src/client/mod.rs at line 1127
return Err(Error::KexInit.into())return Err(Error::KexInit.into()); - replacement in thrussh/src/client/mod.rs at line 1209
preferred: Default::default(),preferred: Preferred::DEFAULT_CLIENT, - replacement in thrussh/Cargo.toml at line 5
version = "0.34.0"version = "0.35.1"