[
https://issues.apache.org/jira/browse/COMPRESS-299?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14298324#comment-14298324
]
Stefan Bodewig commented on COMPRESS-299:
-----------------------------------------
That's what we do:
https://github.com/apache/commons-compress/blob/trunk/src/main/java/org/apache/commons/compress/archivers/sevenz/AES256SHA256Decoder.java#L101
:-) - I think Tim showed us the nested exception.
[[email protected]]: when you install an Oracle JDK you normally get the
default JCE which only supports weak crypto (short key length) so it can be
distributed everywhere. Strong crypto is subject to US export regulations, so
you need to enable it by downloading additional jars - and claiming you don't
live in a country where it is forbidden to export strong crypto to. The jars
are always there, they just contain different restrictions and you always have
to overwrite the weaker default policy files. I think OpenJDK comes with
strong crypto enabled by default, maybe this is what you are using on Linux. I
know I need to install the stronger policy every time we update Oracle's JDK on
Ubuntu as well.
> Issue with a 7z encrypted file
> ------------------------------
>
> Key: COMPRESS-299
> URL: https://issues.apache.org/jira/browse/COMPRESS-299
> Project: Commons Compress
> Issue Type: Bug
> Reporter: Tim Allison
> Priority: Minor
> Attachments: test7Z_protected_passTika.7z
>
>
> A file that we are using to test SevenZ on Tika is failing in some
> environments.
> I tested the soon to be attached file with commons compress trunk and
> received this exception:
> {noformat}
> java.security.InvalidKeyException: Illegal key size
> at javax.crypto.Cipher.checkCryptoPerm(Cipher.java:1024)
> at javax.crypto.Cipher.implInit(Cipher.java:790)
> at javax.crypto.Cipher.chooseProvider(Cipher.java:849)
> at javax.crypto.Cipher.init(Cipher.java:1348)
> at javax.crypto.Cipher.init(Cipher.java:1282)
> at
> org.apache.commons.compress.archivers.sevenz.AES256SHA256Decoder$1.init(AES256SHA256Decoder.java:98)
> at
> org.apache.commons.compress.archivers.sevenz.AES256SHA256Decoder$1.read(AES256SHA256Decoder.java:117)
> at java.io.DataInputStream.readUnsignedByte(DataInputStream.java:288)
> at org.tukaani.xz.rangecoder.RangeDecoderFromStream.<init>(Unknown
> Source)
> at org.tukaani.xz.LZMAInputStream.initialize(Unknown Source)
> at org.tukaani.xz.LZMAInputStream.initialize(Unknown Source)
> at org.tukaani.xz.LZMAInputStream.<init>(Unknown Source)
> at
> org.apache.commons.compress.archivers.sevenz.Coders$LZMADecoder.decode(Coders.java:114)
> at
> org.apache.commons.compress.archivers.sevenz.Coders.addDecoder(Coders.java:78)
> at
> org.apache.commons.compress.archivers.sevenz.SevenZFile.buildDecoderStack(SevenZFile.java:864)
> at
> org.apache.commons.compress.archivers.sevenz.SevenZFile.buildDecodingStream(SevenZFile.java:831)
> at
> org.apache.commons.compress.archivers.sevenz.SevenZFile.getNextEntry(SevenZFile.java:153)
> at
> org.apache.commons.compress.archivers.sevenz.SevenZFileTest.testTikaEncryptedFile(SevenZFileTest.java:215)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:606)
> at junit.framework.TestCase.runTest(TestCase.java:176)
> at junit.framework.TestCase.runBare(TestCa
> {noformat}
> This is the unit test:
> {noformat}
> public void testTikaEncryptedFile() throws Exception {
> String password = "Tika";
> SevenZFile sevenZFile = new
> SevenZFile(getFile("test7Z_protected_passTika.7z"),
> password.getBytes("UnicodeLittleUnmarked"));
> try {
> SevenZArchiveEntry entry = sevenZFile.getNextEntry();
> assertEquals("text.txt", entry.getName());
> } finally {
> sevenZFile.close();
> }
> }
> {noformat}
> Environment: Windows 7, Java 1.7.0_76-b13.
> No problem on RHEL 1.7.0_75
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)