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 | Soon | 58 | Soon |
| 2 | ==== | 59 | ==== |
| 3 | 60 | ||
| @@ -111,6 +168,13 @@ I find it useful to make reference to them in this list | @@ -111,6 +168,13 @@ I find it useful to make reference to them in this list | ||
| 111 | * Figure out how to render Gajić correctly in the PDF version of the | 168 | * Figure out how to render Gajić correctly in the PDF version of the |
| 112 | qpdf manual. | 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 | * Add method to push inheritable resources to a single page by | 178 | * Add method to push inheritable resources to a single page by |
| 115 | walking up and copying without overwrite. Above logic will also be | 179 | walking up and copying without overwrite. Above logic will also be |
| 116 | sufficient to fix the limitation in | 180 | sufficient to fix the limitation in |