Commit edc3b309bce1f9aed383a4911ff7ea5b6bb7c9e9
1 parent
c18ee440
TODO
Showing
1 changed file
with
64 additions
and
0 deletions
TODO
| 1 | +Pending Doc Updates | |
| 2 | +=================== | |
| 3 | + | |
| 4 | +Unicode Passwords | |
| 5 | + | |
| 6 | +Release notes | |
| 7 | + | |
| 8 | +* Windows now interprets CLI arguments as Unicode. Explain the | |
| 9 | + non-compatibility and how it is unavoidable. | |
| 10 | +* Refer to the manual for the rest | |
| 11 | + | |
| 12 | +Regular manual | |
| 13 | + | |
| 14 | +* Explain the password modes, how they work, and when you would need | |
| 15 | + to use other than auto (e.g. overriding automatic detection of | |
| 16 | + UTF-8, forcibly creating a file with incorrect encoding for tests, | |
| 17 | + etc.) | |
| 18 | +* Explain limitations around BiDi and normalize | |
| 19 | +* Explain that the features are CLI and that the library, for | |
| 20 | + compatibility, still expects bytes. Refer to the transcoding methods. | |
| 21 | + - Document that users should pass an appropriately encoded string: | |
| 22 | + PDF Doc for R3 and R4, and UTF-8 for R5 and R6, and that they can | |
| 23 | + use QUtil::utf8_to_pdf_doc to achieve this. | |
| 24 | +* Talk about automatic password recovery and what it does. | |
| 25 | + | |
| 26 | +Possible text | |
| 27 | + | |
| 28 | + - password modes: | |
| 29 | + - hex-bytes: hex-encoded bytes for password | |
| 30 | + - bytes: take the bytes as they are | |
| 31 | + - unicode: utf8-encoded, with notes about Windows doing this by default | |
| 32 | + - auto: determine automatically | |
| 33 | + - Note that --password-is-hex-key applies only to the main password | |
| 34 | + and is only related to reading. It bypasses the password checks | |
| 35 | + entirely and is not a password mode. The --password-mode option | |
| 36 | + tells qpdf how to interpret the password used in writing. | |
| 37 | + - Behavior of unicode: Fail if the password is not valid UTF-8. | |
| 38 | + For R <= 4 fail if the password cannot be transcoded to PDFDoc | |
| 39 | + without loss. | |
| 40 | + - Behavior of auto: For R >= 5 fail if the password is not valid | |
| 41 | + UTF-8 and tell the user about bytes. For R <= 4, if string is | |
| 42 | + valid UTF-8 and is able to be successfully transcoded to PDFDoc, | |
| 43 | + transcode it; otherwise fall back to bytes. | |
| 44 | + - For bytes and hexbytes, just treat the passwords as given, | |
| 45 | + documenting the change for Windows that incoming arguments are | |
| 46 | + UTF-8 starting in 8.4. | |
| 47 | + - Note that, for Windows, there is no guaranteed compatibility | |
| 48 | + because of the switch to wmain. For Non-Windows, "bytes" gives | |
| 49 | + backward compatibility, but "auto" will fix the bug of qpdf | |
| 50 | + generating invalid passwords when accented characters were used. | |
| 51 | + Take special note of @file password arguments, which are not | |
| 52 | + converted automatically to Unicode on Windows like CLI args are. | |
| 53 | + | |
| 54 | + Don't bother with normalize and BiDi for Unicode as that requires | |
| 55 | + something like ICU. If we ever do that, we can add additional flags | |
| 56 | + and method calls. | |
| 57 | + | |
| 1 | 58 | Soon |
| 2 | 59 | ==== |
| 3 | 60 | |
| ... | ... | @@ -111,6 +168,13 @@ I find it useful to make reference to them in this list |
| 111 | 168 | * Figure out how to render Gajić correctly in the PDF version of the |
| 112 | 169 | qpdf manual. |
| 113 | 170 | |
| 171 | + * Decide whether errors thrown by checkLinearization should be | |
| 172 | + converted to warnings. Take a pass through the linearization code | |
| 173 | + to see whether it's correct. Be able to view linearization data | |
| 174 | + even when there are errors. See linearization label in github. | |
| 175 | + | |
| 176 | + * Consider creating a PPA for Ubuntu | |
| 177 | + | |
| 114 | 178 | * Add method to push inheritable resources to a single page by |
| 115 | 179 | walking up and copying without overwrite. Above logic will also be |
| 116 | 180 | sufficient to fix the limitation in | ... | ... |