From 9ea829aaa643c4816f97d78c31fe4a864cd69e35 Mon Sep 17 00:00:00 2001 From: sneak Date: Wed, 13 May 2026 17:38:36 -0700 Subject: [PATCH] Tick off Phase 5 collection/file decryption TODO --- README.md | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 3f4fdbf..c79002b 100644 --- a/README.md +++ b/README.md @@ -629,12 +629,16 @@ Phase 4: HTTP client + endpoints Phase 5: collections and files -- [ ] `listCollections()` paginating on `sinceTime` until empty -- [ ] Decrypt per-collection key with master key -- [ ] Decrypt collection name with collection key -- [ ] `listFiles(collectionID)` paginating on `sinceTime` while `hasMore` -- [ ] Decrypt per-file key with collection key -- [ ] Decrypt file metadata blob with file key, expose typed `FileMetadata` +- [x] `decryptCollection(raw, masterKey)` with key + name decryption, type + mapping, isShared flag +- [x] `decryptFile(raw, collectionKey)` with key + metadata decryption + (secretstream blob, not secretbox), fileType mapping, header passthrough +- [x] `decryptBlob(ciphertext, header, key)` convenience for single-chunk + secretstream decryption (used by file metadata and magic metadata) +- [x] Model types: `Collection`, `EnteFile`, `FileMetadata`, `RawCollection`, + `RawEnteFile` +- [x] Live-tested against real Ente API (collection names + file metadata) +- [ ] Higher-level `listCollections()` / `listFiles()` with pagination Phase 6: download