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. |
14797 |
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] for more information. |
9309 |
build.rs |
|
239 |
compression.rs |
Possible ZIP compression methods. |
7742 |
cp437.rs |
Convert a string in IBM codepage 437 to UTF-8 |
5105 |
crc32.rs |
Helper module to compute a CRC32 checksum |
2816 |
extra_fields |
|
|
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`) |
| Deflate64 | ✅ | |
| Bzip2 | ✅ | ✅ |
| LZMA | ✅ | |
| AES encryption | ✅ | ✅ |
| ZipCrypto deprecated encryption | ✅ | ✅ |
|
2023 |
read |
|
|
read.rs |
Types for reading ZIP archives |
68940 |
result.rs |
Error types that can be emitted from this library |
2745 |
spec.rs |
TODO: maybe try to use this for parsing extra fields as well as writing them? |
24630 |
types.rs |
Types that specify what is contained in a ZIP. |
45189 |
unstable.rs |
|
2140 |
write.rs |
Types for creating ZIP archives |
94911 |
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) |
10054 |