Commit edc3b309bce1f9aed383a4911ff7ea5b6bb7c9e9

Authored by Jay Berkenbilt
1 parent c18ee440

TODO

Showing 1 changed file with 64 additions and 0 deletions
  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