https://github.com/kitlith/aea-test-implementation
https://github.com/kitlith/aea-test-implementation
Last synced: 4 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/kitlith/aea-test-implementation
- Owner: kitlith
- Created: 2025-04-29T17:40:57.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-29T17:41:35.000Z (about 1 year ago)
- Last Synced: 2025-05-08T04:11:26.725Z (about 1 year ago)
- Language: Rust
- Size: 10.7 KB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Basic Apple Encrypted Archive Decryption implementation
@nicolas17 was looking for someone to implement this file format based off the description
at https://theapplewiki.com/wiki/Apple_Encrypted_Archive to ensure that it is accurate/complete.
This is the implementation I wrote as a result.
I've aimed to keep the implementation as easy to understand as possible.
Whether I've succeeded is an open question.
As a result, it's a bit slow.
## Things not specified in wiki page at time of writing
- The CTR block mode appears to be using a big endian counter.
- nitpick: It is not specified when a segment should be decompressed or not.
- presumably this is just "the compressed and decompressed sizes differ."
- For profile 0, which includes no padding, what is the "next cluster hmac" in the final cluster?
- For all profiles, what are the segment HMACs for empty segments?
- What is the format of the 160 byte prologue signature for encrypted profiles?
- From a quick glance at libNeoAppleArchive, looks like it's encrypted.