[
https://issues.apache.org/jira/browse/PDFBOX-4660?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16939356#comment-16939356
]
Michael Klink commented on PDFBOX-4660:
---------------------------------------
Other than that ISO 32000-2 has clarified for the older encryption versions:
{panel:title=Section 7.6.4.3.2 Algorithm 2: Computing a file encryption key in
order to encrypt a document (revision 4 and earlier)}
The password string is generated from host system codepage characters (or
system scripts) by first converting the string to *PDFDocEncoding*. If the
input is Unicode, first convert to a codepage encoding, and then to
*PDFDocEncoding* for backward compatibility
{panel}
To me this appears to imply that many _special national characters_ will
eventually be mapped to '?', many because of the reduction to *PDFDocEncoding*
and some more due to the detour via _a codepage encoding_ which depends on the
computer the software is run on.
In particular, if you encrypt with a password with _special national
characters_ which are present in the local codepage and in *PDFDocEncoding* and
someone in another Locale with a different codepage on which those characters
aren't present, that person cannot decrypt the file.
[~tilman] - thus, what you reproduced may still differ from what can be
observed in [~fastcoretux]' locale...
In other words, don't ever use non-ASCII characters in a password for a
_revision 4 and earlier_ PDF encryption unless you want decryption trouble.
> Can't decrypt PDF when password contains special national characters
> --------------------------------------------------------------------
>
> Key: PDFBOX-4660
> URL: https://issues.apache.org/jira/browse/PDFBOX-4660
> Project: PDFBox
> Issue Type: Bug
> Components: Crypto
> Affects Versions: 2.0.17
> Reporter: Fastcore Tux
> Priority: Major
>
> I tried to encrypt PDF by user password which contains national characters.
> Encryption was successful but I can't open it and decrypt it in any PDF
> browser.
> Due to Cookbook example
> (https://pdfbox.apache.org/2.0/cookbook/encryption.html) it could be tested
> by changing StandardProtectionPolicy instantiation.
> {code:java}
> StandardProtectionPolicy spp = new StandardProtectionPolicy("ěšč", "řžý", ap);
> {code}
> Maybe my usage is wrong... In this case please accept my apology.
> Thank you!
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]