5POTCWP5BFLZA7Z4KMTXMK44FGG7M3BEBKAO5GNCXMTKZCMDJDYAC LYRZREY75IOPQJ3DMJJB4SINAEVI5P5TE32SSFO7QKFBDYVXXKNAC 7FRJYUI62VW257VVFQXND6OKSAILVTHGEJCXFE6CG6FIOIUTDVYAC OBHPOIUH2CPAB2ORVMOGAAQVN4NYP6GHGTIODEQ46VUFNZIUAIRQC UHAEQPZUODJ5YVBZJPPJVLO7EBW6DC2JXHQBN26ARELAVULG3JUQC D6H7OWTTMHHX6BTB3B6MNBOBX2L66CBL4LGSEUSAI2MCRCJDQFRQC 32GIIFWR6CUE24WCZJHM2D76QVXV4SNPOUNXJB62LGALJJSWCZUQC WX7UY5KKUXOHBGPNWJC6ZQDQ3LFGNTKGF6ZQFIPYNI6H5IMWGOYAC VJIXIN4TVZX2ZELE3H5PVZIO6JIG7JZ3UKEJC7TAUYLOPW6GOGOQC WXZWQLGLNQ3QRHMBH7YPTHKSPUST4HD34H3PW5E4LHQYH3KLNHYAC 2WEO7OZLWJJPUYK4WXLT5FD46G2MAEIHEYMDW5GASCBUNKOPXCVAC XEKZBXNINGU2NELIKOQXWY5SS4MOVEVXX3QWQUSN42X7V46CQDKQC #[cfg(all(feature = "openssl", feature = "p256"))]pub const DEFAULT_SERVER: Preferred = Preferred {is_server: true,kex: &[kex::CURVE25519, kex::STRICT_S],key: &[
#[cfg(all(feature = "openssl", feature = "p256"))]macro_rules! key {() => {&[
#[cfg(all(feature = "openssl", feature = "p256"))]pub const DEFAULT_CLIENT: Preferred = Preferred {is_server: false,kex: &[kex::CURVE25519, kex::STRICT_C],key: &[key::ED25519,key::ECDSA_SHA2_NISTP256,key::RSA_SHA2_256,key::RSA_SHA2_512,],cipher: &[cipher::chacha20poly1305::NAME, cipher::aes256_gcm::NAME],mac: &[mac::hmac_sha256::NAME, mac::Name("none")],compression: &["none", "zlib", "zlib@openssh.com"],
}#[cfg(all(feature = "openssl", not(feature = "p256")))]macro_rules! key {() => {&[key::ED25519, key::RSA_SHA2_256, key::RSA_SHA2_512]
#[cfg(all(not(feature = "openssl"), feature = "p256"))]pub const DEFAULT_SERVER: Preferred = Preferred {is_server: true,kex: &[kex::CURVE25519, kex::STRICT_S],key: &[key::ED25519, key::ECDSA_SHA2_NISTP256],cipher: &[cipher::chacha20poly1305::NAME],mac: &[mac::Name("none")],compression: &["none", "zlib", "zlib@openssh.com"],
#[cfg(all(not(feature = "openssl"), feature = "p256"))]macro_rules! key {() => {&[key::ED25519, key::ECDSA_SHA2_NISTP256]
#[cfg(all(not(feature = "openssl"), feature = "p256"))]pub const DEFAULT_CLIENT: Preferred = Preferred {is_server: false,kex: &[kex::CURVE25519, kex::STRICT_C],key: &[key::ED25519, key::ECDSA_SHA2_NISTP256],cipher: &[cipher::chacha20poly1305::NAME],mac: &[mac::Name("none")],compression: &["none", "zlib", "zlib@openssh.com"],
#[cfg(all(not(feature = "openssl"), not(feature = "p256")))]macro_rules! key {() => {&[key::ED25519]
#[cfg(all(feature = "openssl", not(feature = "p256")))]pub const DEFAULT_SERVER: Preferred = Preferred {is_server: true,kex: &[kex::CURVE25519, kex::STRICT_S],key: &[key::ED25519, key::RSA_SHA2_256, key::RSA_SHA2_512],cipher: &[cipher::chacha20poly1305::NAME, cipher::aes256_gcm::NAME],mac: &[mac::hmac_sha256::NAME, mac::Name("none")],compression: &["none", "zlib", "zlib@openssh.com"],
#[cfg(feature = "openssl")]macro_rules! cipher {() => {&[cipher::chacha20poly1305::NAME,cipher::aes256_gcm::NAME,cipher::aes256_ctr::NAME,]
#[cfg(all(feature = "openssl", not(feature = "p256")))]pub const DEFAULT_CLIENT: Preferred = Preferred {is_server: false,kex: &[kex::CURVE25519, kex::STRICT_C],key: &[key::ED25519, key::RSA_SHA2_256, key::RSA_SHA2_512],cipher: &[cipher::chacha20poly1305::NAME, cipher::aes256_gcm::NAME],mac: &[mac::hmac_sha256::NAME, mac::Name("none")],compression: &["none", "zlib", "zlib@openssh.com"],
#[cfg(not(feature = "openssl"))]macro_rules! cipher {() => {&[cipher::chacha20poly1305::NAME]
key: &[key::ED25519],cipher: &[cipher::chacha20poly1305::NAME],mac: &[mac::Name("none")],
key: key!(),cipher: cipher!(),mac: mac!(),
is_server: false,kex: &[kex::CURVE25519, kex::STRICT_C],key: &[key::ED25519],cipher: &[cipher::chacha20poly1305::NAME],mac: &[mac::Name("none")],
is_server: true,kex: &[kex::CURVE25519, kex::STRICT_S],key: key!(),cipher: cipher!(),mac: mac!(),
if buffer.len == 0 {let mut len = [0; 4];stream.read_exact(&mut len).await?;
let len_block_size = if buffer.len == 0 {let mut len = [0; MAX_BLOCK_SIZE];let len = {let key = pair.remote_to_local.as_opening_key();&mut len[..key.length_block_size()]};stream.read_exact(len).await?;
fn decrypt_packet_length(&self, _seqn: u32, packet_length: [u8; 4]) -> [u8; 4] {packet_length
fn length_block_size(&self) -> usize {4}fn decrypt_packet_length(&self, _seqn: u32, packet_length: &[u8]) -> u32 {BigEndian::read_u32(packet_length)