aes.rs |
Implementation of the AES decryption for zip files.
This was implemented according to the [WinZip specification](https://www.winzip.com/win/en/aes_info.html).
Note that using CRC with AES depends on the used encryption specification, AE-1 or AE-2.
If the file is marked as encrypted with AE-2 the CRC field is ignored, even if it isn't set to 0. |
7205 |
aes_ctr.rs |
A counter mode (CTR) for AES to work with the encryption used in zip files.
This was implemented since the zip specification requires the mode to not use a nonce and uses a
different byte order (little endian) than NIST (big endian).
See [AesCtrZipKeyStream](./struct.AesCtrZipKeyStream.html) for more information. |
9431 |
compression.rs |
Possible ZIP compression methods. |
6966 |
cp437.rs |
Convert a string in IBM codepage 437 to UTF-8 |
4959 |
crc32.rs |
Helper module to compute a CRC32 checksum |
2839 |
lib.rs |
A library for reading and writing ZIP archives.
ZIP is a format designed for cross-platform file "archiving".
That is, storing a collection of files in a single datastream
to make them easier to share between computers.
Additionally, ZIP is able to compress and encrypt files in its
archives.
The current implementation is based on [PKWARE's APPNOTE.TXT v6.3.9](https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT)
---
[`zip`](`crate`) has support for the most common ZIP archives found in common use.
However, in special cases,
there are some zip archives that are difficult to read or write.
This is a list of supported features:
| | Reading | Writing |
| ------- | ------ | ------- |
| Deflate | ✅ [->](`crate::ZipArchive::by_name`) | ✅ [->](`crate::write::FileOptions::compression_method`) |
|
1322 |
read.rs |
Types for reading ZIP archives |
47765 |
result.rs |
Error types that can be emitted from this library |
2683 |
spec.rs |
|
9324 |
types.rs |
Types that specify what is contained in a ZIP. |
18177 |
write.rs |
Types for creating ZIP archives |
53251 |
zipcrypto.rs |
Implementation of the ZipCrypto algorithm
The following paper was used to implement the ZipCrypto algorithm:
[https://courses.cs.ut.ee/MTAT.07.022/2015_fall/uploads/Main/dmitri-report-f15-16.pdf](https://courses.cs.ut.ee/MTAT.07.022/2015_fall/uploads/Main/dmitri-report-f15-16.pdf) |
8361 |