Ignore encryption#653
Conversation
doc/Usage.md: - Moved description of `setIgnoreEncryption` option to doc/CustomConfig.md - Added brief "PDF encryption" section doc/CustomConfig.md: added `setIgnoreEncryption` option and section to describe it. src/Smalot/PdfParser/Config.php: Doc comment for Config::setIgnoreEncryption() Added tests/PHPUnit/Integration/EncryptionTest.php Added samples/not_really_encrypted.pdf (thanks to @parijke who orginially created this as test.pdf) See #653
|
PHP-CS-Fixer has been run successfully. All tests passing including new ones in tests/PHPUnit/Integration/EncryptionTest.php |
|
@k00ni Looks like there were pre-existing PHP-CS-Fixer violations in the code; I ignored those because I assumed they were OK. (And just fixed ones in files I added/changed.) Might have come from PR 632 commits. Any chance you could triage these, please? |
|
@unixnut thank you for this pull request. I am very busy these days, but I will try to get back to you until next week. Only skimmed your code, but it looks great so far. |
|
More re. PHP-CS-Fixer:
Except the one I fixed, I believe all of these are out of scope for the PR. |
|
CS related stuff doesn't really matter, because I will clean/correct it myself locally, if needed. The CI stuff is important and there are no problems in your code. Thank you for investing extra time on that 👍 |
|
Hi, @k00ni Sorry to bug you, but it looks like the PR is ready to approve. Any ideas when you will have merged it and released a new version? This is so I can give an update to my client. |
There was a problem hiding this comment.
For some reason my Git was not able to push my local changes back into your branch, even though you allowed changes by maintainers. I had to make the changes by hand, therefore the messy history.
Summary:
- Adapted a few texts, only minor changes.
- Moved the tests into ParserTest, because a separate EncryptionTest class makes no sense at this point. Our tests need better organisation, but for now that the most practical solution I can think of.
Your pull request is not based on our latest master branch. I tried it locally and everything worked fine. Please check that next time.
I will merge it later this day and can prepare a new version. But it will be a release candidate, because we are in the middle of a big transition and watching how things are going.
|
@k00ni any idea why this was deprecated later on? Do we have a permanent fix? If yes, what is that? |
|
It was marked deprecated because our current implementation is incomplete/not working. In case of a false positive one can override the check setting the appropriate config value (we had a few issues with those already). In the future there might be someone who implements this part and then this config value can be removed. FYI: https://github.com/smalot/pdfparser/blob/master/doc/Usage.md#pdf-encryption |
Type of pull request
About
In some cases PDF files may be internally marked as encrypted even though the content is not encrypted and can be read.
This MR provides a config option to inform the PDF parser to ignore the encryption and attempt to read the PDF anyway.
This therefore provides a work around for the following issues:
Thanks to @DivineOmega for making the original pull request.
(PHP-CS-Fixer has not been run.)