You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tika.apache.org by lf...@apache.org on 2018/03/08 11:31:40 UTC
[tika] branch master updated: TIKA-2568: detection of full
encrypted 7z files
This is an automated email from the ASF dual-hosted git repository.
lfcnassif pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tika.git
The following commit(s) were added to refs/heads/master by this push:
new fcfd4e1 TIKA-2568: detection of full encrypted 7z files
fcfd4e1 is described below
commit fcfd4e15fea1ba25a608b1d1b80147434985365e
Author: Nassif <na...@dpf.gov.br>
AuthorDate: Wed Mar 7 23:31:18 2018 -0300
TIKA-2568: detection of full encrypted 7z files
---
CHANGES.txt | 2 ++
.../java/org/apache/tika/parser/pkg/PackageParser.java | 12 ++++++++----
.../org/apache/tika/parser/pkg/Seven7ParserTest.java | 15 +++++++++++++++
.../src/test/resources/test-documents/full_encrypted.7z | Bin 0 -> 198 bytes
4 files changed, 25 insertions(+), 4 deletions(-)
diff --git a/CHANGES.txt b/CHANGES.txt
index 4414fac..fde1137 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -4,6 +4,8 @@ Release 2.0.0 - ???
* Remove deprecated Metadata keys/properties (TIKA-1974).
Other changes
+
+ * Detection of full encrypted 7z files (TIKA-2568)
* Various new mimes and typo fixes in tika-mimetypes.xml
via Andreas Meier (TIKA-2527).
diff --git a/tika-parsers/src/main/java/org/apache/tika/parser/pkg/PackageParser.java b/tika-parsers/src/main/java/org/apache/tika/parser/pkg/PackageParser.java
index 14dd588..b1e0f93 100644
--- a/tika-parsers/src/main/java/org/apache/tika/parser/pkg/PackageParser.java
+++ b/tika-parsers/src/main/java/org/apache/tika/parser/pkg/PackageParser.java
@@ -252,10 +252,14 @@ public class PackageParser extends AbstractParser {
}
SevenZFile sevenz;
- if (password == null) {
- sevenz = new SevenZFile(tstream.getFile());
- } else {
- sevenz = new SevenZFile(tstream.getFile(), password.getBytes("UnicodeLittleUnmarked"));
+ try{
+ if (password == null) {
+ sevenz = new SevenZFile(tstream.getFile());
+ } else {
+ sevenz = new SevenZFile(tstream.getFile(), password.getBytes("UnicodeLittleUnmarked"));
+ }
+ }catch(PasswordRequiredException e){
+ throw new EncryptedDocumentException(e);
}
// Pending a fix for COMPRESS-269 / TIKA-1525, this bit is a little nasty
diff --git a/tika-parsers/src/test/java/org/apache/tika/parser/pkg/Seven7ParserTest.java b/tika-parsers/src/test/java/org/apache/tika/parser/pkg/Seven7ParserTest.java
index afbb975..cc958c0 100644
--- a/tika-parsers/src/test/java/org/apache/tika/parser/pkg/Seven7ParserTest.java
+++ b/tika-parsers/src/test/java/org/apache/tika/parser/pkg/Seven7ParserTest.java
@@ -141,6 +141,21 @@ public class Seven7ParserTest extends AbstractPkgTest {
}
assertTrue("test no password", ex);
+
+ // No password, will fail with EncryptedDocumentException
+ ex = false;
+ try (InputStream stream = Seven7ParserTest.class.getResourceAsStream(
+ "/test-documents/full_encrypted.7z")) {
+ parser.parse(stream, handler, metadata, recursingContext);
+ fail("Shouldn't be able to read a full password protected 7z without the password");
+ } catch (EncryptedDocumentException e) {
+ // Good
+ ex = true;
+ } catch (Exception e){
+ ex = false;
+ }
+
+ assertTrue("test no password for full encrypted 7z", ex);
ex = false;
diff --git a/tika-parsers/src/test/resources/test-documents/full_encrypted.7z b/tika-parsers/src/test/resources/test-documents/full_encrypted.7z
new file mode 100644
index 0000000..60b5735
Binary files /dev/null and b/tika-parsers/src/test/resources/test-documents/full_encrypted.7z differ
--
To stop receiving notification emails like this one, please contact
lfcnassif@apache.org.