M1: the embedded-files-only encryption patch is hayro-syntax patch (37)

Patch (36) was also taken by #6290, opened earlier; this PR's number moves
to the next unused one in hayro-syntax (main's highest is 35): README row
and the code comments that name it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Pq7HyDBXygTf7jcqdsjcfn
This commit is contained in:
mtlcl410
2026-11-06 03:41:15 +08:00
co-authored by Claude Opus 5.5
parent 8e2888aad1
commit 306513c41d
2 changed files with 3 additions and 3 deletions
+1 -1
View File
File diff suppressed because one or more lines are too long
+2 -2
View File
@@ -116,7 +116,7 @@ pub(crate) fn get(
password: &[u8],
) -> Result<Decryptor, DecryptionError> {
match decryptor(dict, id, password) {
// PdfCraft patch (36): a document that encrypts only its embedded files, authorised when
// PdfCraft patch (37): a document that encrypts only its embedded files, authorised when
// one is opened (`/AuthEvent /EFOpen`, ISO 32000-2 §7.6.6, Table 25), opens without a
// password: its strings and streams are in the clear, and nothing drawn reads an embedded
// file.
@@ -127,7 +127,7 @@ pub(crate) fn get(
}
}
/// PdfCraft patch (36): whether `dict` has crypt filters (V4 or later) that encrypt, each
/// PdfCraft patch (37): whether `dict` has crypt filters (V4 or later) that encrypt, each
/// authorised only when an embedded file is opened (`/AuthEvent /EFOpen`), and neither `/StmF` nor
/// `/StrF` names one. The embedded files use them through `/EFF` or a `/Crypt` filter of their
/// own; earlier handlers (V1, V2) encrypt everything with RC4.