Update dependencies. Update edition to 2021. Improve tests.

[?]
Mar 10, 2022, 10:30 AM
SI2QK7DHRFQU6KBF2WP4J76RYPSZZZZNDWZ7GAUZOXC4XRNOSIPAC

Dependencies

  • [2] NLPZS76W Make AgentSigner::sign_request_signature return self on error
  • [3] ORSEEVB5 Version bump
  • [4] NUTEO3OU
  • [5] Q323RFJS Version bump
  • [6] CROEJT6Q Minor fixes in Thrussh-keys (parsing key files)
  • [7] 634OYCNM Tokio 0.3
  • [8] FT67GGO4 Version bump (Pijul and Thrussh)
  • [9] NHOSLQGG Thrussh: making OpenSSL optional
  • [10] ZQT6ZVJE Fix broken links in crate metadata
  • [11] F4WG4OHQ Solving conflicts introduced by an old format change
  • [12] ELRPPXSG Fixing conflicts
  • [13] AWVLXGAW Removing anyhows on Windows
  • [14] HDEDMPBT Client example
  • [15] TFYJ3P2A Version 0.30.8/0.19.4, and solving conflicts
  • [16] ATOFE4ZX more detailed error message when SSH_AUTH_SOCK points to a bad location
  • [17] XCNFFN6Z Thrussh-keys, version 0.19.3
  • [18] 6TIVIM7M Version of thrussh-keys
  • [19] BITIYBKM Removing Cargo.lock (tokio 0.3)
  • [20] MFMCIUMJ Fixing authentication with RSA
  • [21] 2WEO7OZL Version updates: getting rid of anyhow + moving to Tokio 1.0
  • [22] 7S7FHFDV Solving name conflicts
  • [23] 2NUPA5PY include missing env var in error message
  • [24] 7FRJYUI6 Reboot because of a bad change
  • [25] KGIUIQYI Executing a shell command example
  • [26] 2VTUKRLJ Version
  • [27] BWU5BDAH Thrussh-keys 0.19.5
  • [28] MCS77Y4V Making OpenSSL optional

Change contents

  • file move: thrussh-libsodium (d--r------)thrussh-libsodium (d--r------)
    [4.1]
    [5.20]
  • replacement in thrussh-libsodium/Cargo.toml at line 10
    [5.5640][5.5640:5657]()
    edition = "2018"
    [5.5640]
    [5.5657]
    edition = "2021"
  • file move: thrussh-keys (d--r------)thrussh-keys (d--r------)
    [4.1]
    [5.5798]
  • replacement in thrussh-keys/src/lib.rs at line 121
    [5.952][5.952:1030]()
    #[error(transparent)]
    BlockMode(#[from] block_modes::BlockModeError),
    [5.952]
    [5.1030]
    #[error("Block mode error")]
    BlockMode,
  • replacement in thrussh-keys/src/lib.rs at line 130
    [5.433][5.0:154]()
    #[error("Unable to connect to ssh-agent. The environment variable `SSH_AUTH_SOCK` \
    was set, but it points to a nonexistent file or directory.")]
    [5.433]
    [5.154]
    #[error(
    "Unable to connect to ssh-agent. The environment variable `SSH_AUTH_SOCK` \
    was set, but it points to a nonexistent file or directory."
    )]
  • edit in thrussh-keys/src/lib.rs at line 135
    [5.171]
    [5.29]
    #[error("Cipher: Invalid nonce length")]
    InvalidKeyIvLength,
    #[error("Cipher: Unpadding failed")]
    UnpadError,
    #[error("Cipher: Padding failed")]
    PadError,
  • edit in thrussh-keys/src/lib.rs at line 146
    [5.139]
    [5.139]
    }
    }
    impl From<aes::cipher::InvalidLength> for Error {
    fn from(_err: aes::cipher::InvalidLength) -> Self {
    Error::InvalidKeyIvLength
    }
    }
    impl From<aes::cipher::block_padding::UnpadError> for Error {
    fn from(_err: aes::cipher::block_padding::UnpadError) -> Self {
    Error::UnpadError
  • edit in thrussh-keys/src/lib.rs at line 158
    [5.27376]
    [5.27376]
    impl From<aes::cipher::inout::PadError> for Error {
    fn from(_err: aes::cipher::inout::PadError) -> Self {
    Error::PadError
    }
    }
  • replacement in thrussh-keys/src/lib.rs at line 170
    [5.27563][5.27563:27639]()
    /// thrussh_keys::load_public_key("/home/pe/.ssh/id_ed25519.pub").unwrap();
    [5.27563]
    [5.27639]
    /// use std::env;
    /// let home_dir = env::var("HOME").unwrap_or_else(|_| "/home/pe".to_string());
    /// let key_file = format!("{}/.ssh/id_ed25519.pub", home_dir);
    /// thrussh_keys::load_public_key(key_file).unwrap();
  • replacement in thrussh-keys/src/lib.rs at line 318
    [5.32131][5.32131:32159]()
    file.write(b"\n")?;
    [5.32131]
    [5.32159]
    file.write_all(b"\n")?;
  • replacement in thrussh-keys/src/lib.rs at line 326
    [5.32334][5.32334:32358]()
    file.write(b"\n")?;
    [5.32334]
    [5.32358]
    file.write_all(b"\n")?;
  • replacement in thrussh-keys/src/lib.rs at line 513
    [5.39296][5.39296:39644]()
    f.write(b"[localhost]:13265 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJdD7y3aLq454yWBdwLWbieU1ebz9/cu7/QEXn9OIeZJ\n#pijul.org,37.120.161.53 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIA6rWI3G2sz07DnfFlrouTcysQlj2P+jpNSOEWD9OJ3X\npijul.org,37.120.161.53 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIA6rWI3G1sz07DnfFlrouTcysQlj2P+jpNSOEWD9OJ3X\n").unwrap();
    [5.39296]
    [5.39644]
    f.write_all(b"[localhost]:13265 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJdD7y3aLq454yWBdwLWbieU1ebz9/cu7/QEXn9OIeZJ\n#pijul.org,37.120.161.53 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIA6rWI3G2sz07DnfFlrouTcysQlj2P+jpNSOEWD9OJ3X\npijul.org,37.120.161.53 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIA6rWI3G1sz07DnfFlrouTcysQlj2P+jpNSOEWD9OJ3X\n").unwrap();
  • replacement in thrussh-keys/src/format/pkcs8.rs at line 102
    [5.75090][5.6323:6374](),[5.6374][5.75145:75183](),[5.75145][5.75145:75183](),[5.75203][5.75203:75215]()
    Ok(digest.map(|()| KeyDerivation::Pbkdf2 {
    salt,
    rounds,
    }))
    [5.75090]
    [5.75215]
    Ok(digest.map(|()| KeyDerivation::Pbkdf2 { salt, rounds }))
  • edit in thrussh-keys/src/format/pkcs8.rs at line 261
    [5.80842]
    [5.80875]
    use aes::{Aes128, Aes256};
  • edit in thrussh-keys/src/format/pkcs8.rs at line 263
    [5.80912][5.6616:6807]()
    use aes::*;
    use block_modes::block_padding::NoPadding;
    use block_modes::BlockMode;
    type Aes128Cbc = block_modes::Cbc<Aes128, NoPadding>;
    type Aes256Cbc = block_modes::Cbc<Aes256, NoPadding>;
  • edit in thrussh-keys/src/format/pkcs8.rs at line 283
    [5.81555][5.7014:7075]()
    let c = Aes256Cbc::new_from_slices(&dkey, &iv).unwrap();
  • replacement in thrussh-keys/src/format/pkcs8.rs at line 284
    [5.7104][5.7104:7147]()
    c.encrypt(&mut plaintext, n).unwrap();
    [5.7104]
    [5.81639]
    super::cbc_encrypt::<Aes256>(&mut plaintext, n, &dkey, &iv).unwrap();
  • replacement in thrussh-keys/src/format/pkcs8.rs at line 371
    [5.84334][5.84334:84420](),[5.84420][5.7244:7263]()
    KeyDerivation::Pbkdf2 {
    ref salt,
    rounds,
    } => {
    [5.84334]
    [5.7263]
    KeyDerivation::Pbkdf2 { ref salt, rounds } => {
  • replacement in thrussh-keys/src/format/pkcs8.rs at line 374
    [5.7436][5.7436:7451]()
    },
    [5.7436]
    [5.84521]
    }
  • edit in thrussh-keys/src/format/pkcs8.rs at line 416
    [5.7539][5.7539:7609]()
    let c = Aes128Cbc::new_from_slices(key, iv).unwrap();
  • replacement in thrussh-keys/src/format/pkcs8.rs at line 417
    [5.7660][5.7660:7698]()
    c.decrypt(&mut dec)?;
    [5.7660]
    [5.7698]
    super::cbc_decrypt::<Aes128>(&mut dec, key, iv).unwrap();
  • replacement in thrussh-keys/src/format/pkcs8.rs at line 420
    [5.7760][5.7760:7775]()
    },
    [5.7760]
    [5.7775]
    }
  • edit in thrussh-keys/src/format/pkcs8.rs at line 422
    [5.7822][5.7822:7892]()
    let c = Aes256Cbc::new_from_slices(key, iv).unwrap();
  • replacement in thrussh-keys/src/format/pkcs8.rs at line 423
    [5.7943][5.7943:7981]()
    c.decrypt(&mut dec)?;
    [5.7943]
    [5.7981]
    super::cbc_decrypt::<Aes256>(&mut dec, key, iv).unwrap();
  • replacement in thrussh-keys/src/format/pkcs8.rs at line 426
    [5.8043][5.8043:8058]()
    },
    [5.8043]
    [5.8058]
    }
  • replacement in thrussh-keys/src/format/pkcs8.rs at line 432
    [5.85644][5.85644:85701](),[5.85732][5.85732:85739]()
    Pbkdf2 {
    salt: Vec<u8>,
    rounds: u64,
    },
    [5.85644]
    [5.85739]
    Pbkdf2 { salt: Vec<u8>, rounds: u64 },
  • replacement in thrussh-keys/src/format/pkcs5.rs at line 5
    [5.85838][5.8107:8244]()
    use aes::*;
    use block_modes::block_padding::NoPadding;
    use block_modes::BlockMode;
    type Aes128Cbc = block_modes::Cbc<Aes128, NoPadding>;
    [5.85838]
    [5.85920]
    use aes::Aes128;
  • edit in thrussh-keys/src/format/pkcs5.rs at line 23
    [5.8473][5.8473:8551]()
    let c = Aes128Cbc::new_from_slices(&md5.0, &iv[..]).unwrap();
  • replacement in thrussh-keys/src/format/pkcs5.rs at line 24
    [5.8598][5.8598:8644]()
    c.decrypt(&mut dec).unwrap();
    [5.8598]
    [5.86566]
    super::cbc_decrypt::<Aes128>(&mut dec, &md5.0, &iv[..]).unwrap();
  • replacement in thrussh-keys/src/format/openssh.rs at line 83
    [5.90173][5.10473:10636]()
    use aes::*;
    use block_modes::block_padding::NoPadding;
    type Aes128Cbc = block_modes::Cbc<Aes128, NoPadding>;
    type Aes256Cbc = block_modes::Cbc<Aes256, NoPadding>;
    [5.90173]
    [5.10636]
    use aes::{
    cipher::{KeyIvInit, StreamCipher},
    Aes128, Aes256,
    };
    use ctr::Ctr128BE;
    type Aes128Ctr = Ctr128BE<Aes128>;
    type Aes256Ctr = Ctr128BE<Aes256>;
  • edit in thrussh-keys/src/format/openssh.rs at line 127
    [5.11056][5.11056:11144]()
    use aes::cipher::{NewCipher, StreamCipher};
    use block_modes::BlockMode;
  • replacement in thrussh-keys/src/format/openssh.rs at line 129
    [5.11202][5.11202:11334]()
    let cipher = Aes128Cbc::new_from_slices(key, iv).unwrap();
    let n = cipher.decrypt(&mut dec)?.len();
    [5.11202]
    [5.11334]
    let n = super::cbc_decrypt::<Aes128>(&mut dec, key, iv)?;
  • replacement in thrussh-keys/src/format/openssh.rs at line 133
    [5.11411][5.11411:11543]()
    let cipher = Aes256Cbc::new_from_slices(key, iv).unwrap();
    let n = cipher.decrypt(&mut dec)?.len();
    [5.11411]
    [5.11543]
    let n = super::cbc_decrypt::<Aes256>(&mut dec, key, iv)?;
  • edit in thrussh-keys/src/format/mod.rs at line 12
    [5.92192]
    [5.92192]
    use aes::cipher::{
    block_padding::NoPadding, BlockCipher, BlockDecryptMut, BlockEncryptMut, KeyInit, KeyIvInit,
    };
    use cbc::{Decryptor as CbcDecryptor, Encryptor as CbcEncryptor};
  • edit in thrussh-keys/src/format/mod.rs at line 153
    [5.96052]
    fn cbc_encrypt<C>(dest: &mut [u8], len: usize, key: &[u8], iv: &[u8]) -> Result<usize, Error>
    where
    C: BlockCipher + BlockEncryptMut + KeyInit,
    {
    Ok(CbcEncryptor::<C>::new_from_slices(key, iv)?
    .encrypt_padded_mut::<NoPadding>(dest, len)?
    .len())
    }
    fn cbc_decrypt<C>(dest: &mut [u8], key: &[u8], iv: &[u8]) -> Result<usize, Error>
    where
    C: BlockCipher + BlockDecryptMut + KeyInit,
    {
    Ok(CbcDecryptor::<C>::new_from_slices(key, iv)?
    .decrypt_padded_mut::<NoPadding>(dest)?
    .len())
    }
  • replacement in thrussh-keys/Cargo.toml at line 4
    [3.19][5.157076:157093](),[5.19][5.157076:157093](),[5.19][5.157076:157093](),[5.19][5.157076:157093](),[5.19][5.157076:157093](),[5.119][5.157076:157093](),[5.165][5.157076:157093](),[5.184][5.157076:157093](),[5.292][5.157076:157093](),[5.454][5.157076:157093](),[5.4463][5.157076:157093](),[5.157076][5.157076:157093]()
    edition = "2018"
    [3.19]
    [5.157093]
    edition = "2021"
  • replacement in thrussh-keys/Cargo.toml at line 38
    [5.157924][5.255:325]()
    yasna = { version = "0.4.0", features = [ "bit-vec", "num-bigint" ] }
    [5.157924]
    [5.325]
    yasna = { version = "0.5.0", features = [ "bit-vec", "num-bigint" ] }
  • replacement in thrussh-keys/Cargo.toml at line 45
    [5.158129][5.4647:4660]()
    dirs = "3.0"
    [5.158129]
    [5.158142]
    dirs = "4.0"
  • replacement in thrussh-keys/Cargo.toml at line 49
    [5.14059][5.14059:14101]()
    sha2 = "0.9"
    pbkdf2 = "0.8"
    hmac = "0.11"
    [5.14059]
    [5.14101]
    sha2 = "0.10"
    pbkdf2 = "0.10"
    hmac = "0.12"
  • replacement in thrussh-keys/Cargo.toml at line 53
    [5.14114][5.14114:14203]()
    block-modes = "0.8"
    aes = { version = "0.7", features = [ "ctr" ] }
    bcrypt-pbkdf = "0.6"
    [5.14114]
    [3.20]
    aes = "0.8"
    cbc = { version = "0.1", features = ["zeroize"] }
    ctr = { version = "0.9", features = ["zeroize"] }
    bcrypt-pbkdf = "0.8"
  • replacement in thrussh-keys/Cargo.toml at line 60
    [5.158207][5.345:364]()
    env_logger = "0.8"
    [5.158207]
    [5.158226]
    env_logger = "0.9"
  • file move: thrussh-config (d--r------)thrussh-config (d--r------)
    [4.1]
    [5.158258]
  • replacement in thrussh-config/Cargo.toml at line 10
    [5.165184][5.165184:165201]()
    edition = "2018"
    [5.165184]
    [5.165201]
    edition = "2021"
  • file move: thrussh (d--r------)thrussh (d--r------)
    [4.1]
    [5.165397]
  • replacement in thrussh/src/lib.rs at line 309
    [5.742][5.742:849]()
    type Sha256Hash = generic_array::GenericArray<u8, <sha2::Sha256 as digest::FixedOutputDirty>::OutputSize>;
    [5.742]
    [5.849]
    type Sha256Hash =
    generic_array::GenericArray<u8, <sha2::Sha256 as digest::OutputSizeUser>::OutputSize>;
  • replacement in thrussh/examples/remote_shell_call.rs at line 4
    [5.84][5.84:121]()
    use thrussh::*;
    use thrussh_keys::*;
    [5.84]
    [5.121]
    use thrussh::{client, Disconnect};
    use thrussh_keys::{agent, key};
  • edit in thrussh/examples/client.rs at line 1
    [5.24][5.25:141]()
    extern crate env_logger;
    extern crate futures;
    extern crate thrussh;
    extern crate thrussh_keys;
    extern crate tokio;
  • replacement in thrussh/examples/client.rs at line 3
    [5.182][5.182:219]()
    use thrussh::*;
    use thrussh_keys::*;
    [5.182]
    [5.219]
    use thrussh::{client, Disconnect};
    use thrussh_keys::key;
  • replacement in thrussh/Cargo.toml at line 39
    [5.426966][5.426966:426983]()
    edition = "2018"
    [5.426966]
    [5.426983]
    edition = "2021"
  • replacement in thrussh/Cargo.toml at line 57
    [5.1939][5.1939:1952]()
    sha2 = "0.9"
    [5.1939]
    [5.1952]
    sha2 = "0.10"
  • replacement in thrussh/Cargo.toml at line 59
    [5.1975][5.1975:1990]()
    digest = "0.9"
    [5.1975]
    [5.427375]
    digest = "0.10"
  • replacement in thrussh/Cargo.toml at line 62
    [5.427395][5.427395:427414]()
    env_logger = "0.7"
    [5.427395]
    [5.24391]
    env_logger = "0.9"
  • file move: shell.nix (----------)shell.nix (----------)
    [4.1]
    [5.427539]
  • file move: cryptovec (d--r------)cryptovec (d--r------)
    [4.1]
    [5.427973]
  • replacement in cryptovec/src/lib.rs at line 403
    [5.439904][5.439904:439944]()
    /// CryptoVec::from_slice(b"test");
    [5.439904]
    [5.439944]
    /// cryptovec::CryptoVec::from_slice(b"test");
  • file move: README.md (----------)README.md (----------)
    [4.1]
    [5.441125]
  • file move: LICENSE-2.0.txt (---r------)LICENSE-2.0.txt (---r------)
    [4.1]
    [5.442368]
  • file move: Cargo.toml (----------)Cargo.toml (----------)
    [4.1]
    [5.453741]