Update deps: aes, cbc

This commit is contained in:
2026-04-11 09:15:22 +08:00
parent 8a3423ca4e
commit dc29823b16
3 changed files with 28 additions and 51 deletions

67
Cargo.lock generated
View File

@@ -22,13 +22,13 @@ checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234"
[[package]]
name = "aes"
version = "0.8.4"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0"
checksum = "66bd29a732b644c0431c6140f370d097879203d79b80c94a6747ba0872adaef8"
dependencies = [
"cfg-if",
"cipher",
"cpufeatures 0.2.17",
"cpubits",
"cpufeatures",
]
[[package]]
@@ -169,11 +169,11 @@ dependencies = [
[[package]]
name = "block-padding"
version = "0.3.3"
version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93"
checksum = "710f1dd022ef4e93f8a438b4ba958de7f64308434fa6a87104481645cc30068b"
dependencies = [
"generic-array",
"hybrid-array",
]
[[package]]
@@ -260,9 +260,9 @@ checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33"
[[package]]
name = "cbc"
version = "0.1.2"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6"
checksum = "98db6aeaef0eeef2c1e3ce9a27b739218825dae116076352ac3777076aa22225"
dependencies = [
"cipher",
]
@@ -307,17 +307,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6f8d983286843e49675a4b7a2d174efe136dc93a18d69130dd18198a6c167601"
dependencies = [
"cfg-if",
"cpufeatures 0.3.0",
"cpufeatures",
"rand_core",
]
[[package]]
name = "cipher"
version = "0.4.4"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad"
checksum = "e34d8227fe1ba289043aeb13792056ff80fd6de1a9f49137a5f499de8e8c78ea"
dependencies = [
"crypto-common 0.1.7",
"crypto-common",
"inout",
]
@@ -464,13 +464,10 @@ dependencies = [
]
[[package]]
name = "cpufeatures"
version = "0.2.17"
name = "cpubits"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280"
dependencies = [
"libc",
]
checksum = "5ef0c543070d296ea414df2dd7625d1b24866ce206709d8a4a424f28377f5861"
[[package]]
name = "cpufeatures"
@@ -530,16 +527,6 @@ version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5"
[[package]]
name = "crypto-common"
version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a"
dependencies = [
"generic-array",
"typenum",
]
[[package]]
name = "crypto-common"
version = "0.2.1"
@@ -631,7 +618,7 @@ checksum = "4850db49bf08e663084f7fb5c87d202ef91a3907271aff24a94eb97ff039153c"
dependencies = [
"block-buffer",
"const-oid",
"crypto-common 0.2.1",
"crypto-common",
]
[[package]]
@@ -882,16 +869,6 @@ dependencies = [
"syn 1.0.109",
]
[[package]]
name = "generic-array"
version = "0.14.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
dependencies = [
"typenum",
"version_check",
]
[[package]]
name = "getrandom"
version = "0.2.17"
@@ -1214,12 +1191,12 @@ dependencies = [
[[package]]
name = "inout"
version = "0.1.4"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01"
checksum = "4250ce6452e92010fdf7268ccc5d14faa80bb12fc741938534c58f16804e03c7"
dependencies = [
"block-padding",
"generic-array",
"hybrid-array",
]
[[package]]
@@ -2094,7 +2071,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aacc4cc499359472b4abe1bf11d0b12e688af9a805fa5e3016f9a386dc2d0214"
dependencies = [
"cfg-if",
"cpufeatures 0.3.0",
"cpufeatures",
"digest",
]
@@ -2105,7 +2082,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "446ba717509524cb3f22f17ecc096f10f4822d76ab5c0b9822c5f9c284e825f4"
dependencies = [
"cfg-if",
"cpufeatures 0.3.0",
"cpufeatures",
"digest",
]

View File

@@ -9,13 +9,13 @@ exclude = [".github", "*.py", "AGENTS.md"]
[dependencies]
adler = { version = "1", optional = true }
aes = { version = "0.8", optional = true }
aes = { version = "0.9", optional = true }
anyhow = "1"
base64 = { version = "0.22", optional = true }
block_compression = { version = "0.9", optional = true, default-features = false, features = ["bc7"] }
byteorder = { version = "1.5", default-features = false, optional = true}
bytes = { version = "1.11", optional = true }
cbc = { version = "0.1", optional = true }
cbc = { version = "0.2", optional = true }
clap = { version = "4.5", features = ["derive"] }
crc32fast = { version = "1.5", optional = true }
csv = "1.3"

View File

@@ -1,6 +1,6 @@
use super::*;
use aes::Aes128Dec;
use aes::cipher::{BlockDecryptMut, KeyIvInit};
use aes::cipher::{BlockModeDecrypt, KeyIvInit};
use cbc::Decryptor;
type Aes128CbcDec = Decryptor<Aes128Dec>;
@@ -8,7 +8,7 @@ type Aes128CbcDec = Decryptor<Aes128Dec>;
const CZ_MAGIC: &[u8; 4] = b"\xFD\xD7\x90\xA5";
const CZ_IV_SEED: u32 = 0xBFBFBFBF;
const CZ_HEADER_KEY: &[u8; 4] = b"\x9D\x1D\x9A\xF2";
const CZ_DEFAULT_KEY: &[u8] = b"\x91\x10\xfcuE\x8f\xb5\xe6\xfe\xac\xbaDvX\xc2\x1a";
const CZ_DEFAULT_KEY: &[u8; 16] = b"\x91\x10\xfcuE\x8f\xb5\xe6\xfe\xac\xbaDvX\xc2\x1a";
fn cz_decrypt_int(data: &[u8], offset: usize, key: u8) -> u32 {
let mut v: u32 = (data[offset] ^ key ^ CZ_HEADER_KEY[0]) as u32;
@@ -71,8 +71,8 @@ impl Read for AesDecryptor {
}
// NoPadding
for i in (0..readed).step_by(16) {
let block = &mut buf[i..i + 16];
self.aes.decrypt_block_mut(block.into());
let block: &mut [u8; 16] = (&mut buf[i..i + 16]).try_into().unwrap();
self.aes.decrypt_block(block.into());
}
let remaining = self.original_size - self.pos;
let readed = readed.min(remaining as usize);