aboutsummaryrefslogtreecommitdiff
path: root/src/zip/encryption/weak.rs
diff options
context:
space:
mode:
authorIgor Tolmachev <me@igorek.dev>2024-07-21 16:59:14 +0900
committerIgor Tolmachev <me@igorek.dev>2024-07-21 16:59:14 +0900
commit4c411b76cad9cc735687dc739d2e2db5d00e5eac (patch)
tree818168ca5726ad3f9d24089dba31a24ff6b1b1f4 /src/zip/encryption/weak.rs
parent7bcdc3b4ca460aec2b98fb2dca6165788c562b05 (diff)
downloadarchivator-4c411b76cad9cc735687dc739d2e2db5d00e5eac.tar.gz
archivator-4c411b76cad9cc735687dc739d2e2db5d00e5eac.zip
Add AES encryption
Diffstat (limited to 'src/zip/encryption/weak.rs')
-rw-r--r--src/zip/encryption/weak.rs15
1 files changed, 1 insertions, 14 deletions
diff --git a/src/zip/encryption/weak.rs b/src/zip/encryption/weak.rs
index 144cd53..ebddb2d 100644
--- a/src/zip/encryption/weak.rs
+++ b/src/zip/encryption/weak.rs
@@ -45,7 +45,7 @@ impl Keys {
45 } 45 }
46 } 46 }
47 47
48 fn update(&mut self, byte: u8) { 48 pub fn update(&mut self, byte: u8) {
49 self.key0 = crc32(byte, self.key0); 49 self.key0 = crc32(byte, self.key0);
50 self.key1 = self 50 self.key1 = self
51 .key1 51 .key1
@@ -55,19 +55,6 @@ impl Keys {
55 self.key2 = crc32((self.key1 >> 24) as u8, self.key2); 55 self.key2 = crc32((self.key1 >> 24) as u8, self.key2);
56 } 56 }
57 57
58 pub fn set_password(&mut self, passwd: &[u8]) {
59 for b in passwd {
60 self.update(*b)
61 }
62 }
63
64 pub fn set_header(&mut self, header: [u8; 12]) -> u8 {
65 for b in &header[..11] {
66 self.decode_byte(*b);
67 }
68 self.decode_byte(header[11])
69 }
70
71 #[allow(dead_code)] 58 #[allow(dead_code)]
72 pub fn encode_bytes(&mut self, byte: u8) -> u8 { 59 pub fn encode_bytes(&mut self, byte: u8) -> u8 {
73 let key = self.key2 | 2; 60 let key = self.key2 | 2;