Merge #6312: M1: a document that encrypts only its embedded files opens without a password (core.attachment-only-encryption)

# Conflicts:
#	crates/render/src/inspect/tests.rs
#	vendor/README.md
This commit is contained in:
bflatastic committed 2026-11-09 08:12:28 +07:00
commit 2992146abb
14 files changed
+688 -13

No files matched your search

+3 -3
View File
@@ -235,11 +235,11 @@ title = "Attachment-only encryption (/EFF) opens without a password"
area = "A"
tier = "P1"
milestone = "M1"
status = "partial"
status = "shipped"
commands = []
tools = []
evidence = []
notes = "two corpus files still ask for a password (M1.6)"
evidence = ["crates/cos/tests/it/efopen.rs::a_document_encrypting_only_its_embedded_files_opens_without_a_password", "crates/cos/tests/it/efopen.rs::saves_keep_the_encrypted_embedded_files_as_stored", "crates/render/src/inspect/tests.rs::a_document_encrypting_only_its_embedded_files_opens_without_a_password", "crates/engine/src/tests.rs::a_document_encrypting_only_its_embedded_files_opens_and_saves_without_a_password", "crates/organize/tests/efopen_attachments.rs::combining_does_not_copy_attachments_held_encrypted"]
notes = "a document whose encrypting crypt filters are all /AuthEvent /EFOpen, with /StmF and /StrF /Identity, opens without a password (ISO 32000-2 7.6.6, Table 25); with /EFF or a /Crypt filter of the file naming the filter; its attachments are listed but not read or copied without the password, and saves keep them encrypted (a full save is refused where the key depends on the object number, as is any save that would have to encrypt). The password given later (Document::unlock) unlocks the embedded files. Not yet: reading an attachment stored in the clear in such a document without the password (attachment_data reads through lopdf, which can't read the document without its key, so every attachment of it is refused), and the app asking for the password when such an attachment is saved. pdf.js encrypted-attachment.pdf has no /AuthEvent (DocOpen) and a non-empty user password, so it rightly asks for one; its broken startxref currently reports it as unreadable instead"
[[feature]]
id = "core.unencrypted-metadata"