diff options
Diffstat (limited to 'src/zip/structs.rs')
| -rw-r--r-- | src/zip/structs.rs | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/zip/structs.rs b/src/zip/structs.rs index ebecae7..8b25400 100644 --- a/src/zip/structs.rs +++ b/src/zip/structs.rs | |||
| @@ -1,6 +1,9 @@ | |||
| 1 | use crate::structs::{ByteOrder, Settings, StructResult, VariantIndexType}; | 1 | use crate::structs::{ByteOrder, Settings, StructResult, VariantIndexType}; |
| 2 | use serde::{Deserialize, Serialize}; | 2 | use serde::{Deserialize, Serialize}; |
| 3 | 3 | ||
| 4 | pub const FILE_HEADER_SIGNATURE: [u8; 4] = [0x50, 0x4b, 0x03, 0x04]; | ||
| 5 | |||
| 6 | pub const EOCDR_SIGNATURE: [u8; 4] = [0x50, 0x4b, 0x05, 0x06]; | ||
| 4 | #[derive(Serialize, Deserialize)] | 7 | #[derive(Serialize, Deserialize)] |
| 5 | pub struct Eocdr { | 8 | pub struct Eocdr { |
| 6 | pub eocdr_disk: u16, | 9 | pub eocdr_disk: u16, |
| @@ -12,6 +15,7 @@ pub struct Eocdr { | |||
| 12 | pub comment_len: u16, | 15 | pub comment_len: u16, |
| 13 | } | 16 | } |
| 14 | 17 | ||
| 18 | pub const EOCDR64_LOCATOR_SIGNATURE: [u8; 4] = [0x50, 0x4b, 0x06, 0x07]; | ||
| 15 | #[derive(Serialize, Deserialize)] | 19 | #[derive(Serialize, Deserialize)] |
| 16 | pub struct Eocdr64Locator { | 20 | pub struct Eocdr64Locator { |
| 17 | pub eocdr64_disk: u32, | 21 | pub eocdr64_disk: u32, |
| @@ -19,6 +23,7 @@ pub struct Eocdr64Locator { | |||
| 19 | pub disks: u32, | 23 | pub disks: u32, |
| 20 | } | 24 | } |
| 21 | 25 | ||
| 26 | pub const EOCDR64_SIGNATURE: [u8; 4] = [0x50, 0x4b, 0x06, 0x06]; | ||
| 22 | #[derive(Serialize, Deserialize)] | 27 | #[derive(Serialize, Deserialize)] |
| 23 | pub struct Eocdr64 { | 28 | pub struct Eocdr64 { |
| 24 | pub eocdr64_size: u64, | 29 | pub eocdr64_size: u64, |
| @@ -32,6 +37,7 @@ pub struct Eocdr64 { | |||
| 32 | pub cd_pointer: u64, | 37 | pub cd_pointer: u64, |
| 33 | } | 38 | } |
| 34 | 39 | ||
| 40 | pub const CDR_SIGNATURE: [u8; 4] = [0x50, 0x4b, 0x01, 0x02]; | ||
| 35 | #[derive(Serialize, Deserialize)] | 41 | #[derive(Serialize, Deserialize)] |
| 36 | pub struct Cdr { | 42 | pub struct Cdr { |
| 37 | pub version: u16, | 43 | pub version: u16, |
| @@ -58,6 +64,14 @@ pub struct ExtraHeader { | |||
| 58 | pub size: u16, | 64 | pub size: u16, |
| 59 | } | 65 | } |
| 60 | 66 | ||
| 67 | #[derive(Serialize, Deserialize)] | ||
| 68 | pub struct AesField { | ||
| 69 | pub version: u16, | ||
| 70 | pub id: u16, | ||
| 71 | pub strength: u8, | ||
| 72 | pub compression_method: u16, | ||
| 73 | } | ||
| 74 | |||
| 61 | #[inline] | 75 | #[inline] |
| 62 | #[allow(dead_code)] | 76 | #[allow(dead_code)] |
| 63 | pub fn serialize<T: Serialize>(object: &mut T) -> StructResult<Vec<u8>> { | 77 | pub fn serialize<T: Serialize>(object: &mut T) -> StructResult<Vec<u8>> { |
