mirror of https://github.com/apache/poi.git
Add more output in case of unknown cipher-ids to aid in debugging bugs like 57195
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1641883 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
4b583b4339
commit
eae3eb5c58
|
@ -64,7 +64,7 @@ public enum CipherAlgorithm {
|
||||||
for (CipherAlgorithm ca : CipherAlgorithm.values()) {
|
for (CipherAlgorithm ca : CipherAlgorithm.values()) {
|
||||||
if (ca.ecmaId == ecmaId) return ca;
|
if (ca.ecmaId == ecmaId) return ca;
|
||||||
}
|
}
|
||||||
throw new EncryptedDocumentException("cipher algorithm not found");
|
throw new EncryptedDocumentException("cipher algorithm " + ecmaId + " not found");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static CipherAlgorithm fromXmlId(String xmlId, int keySize) {
|
public static CipherAlgorithm fromXmlId(String xmlId, int keySize) {
|
||||||
|
@ -74,8 +74,6 @@ public enum CipherAlgorithm {
|
||||||
if (ks == keySize) return ca;
|
if (ks == keySize) return ca;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
throw new EncryptedDocumentException("cipher algorithm not found");
|
throw new EncryptedDocumentException("cipher algorithm " + xmlId + "/" + keySize + " not found");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
|
@ -0,0 +1,42 @@
|
||||||
|
package org.apache.poi.poifs.crypt;
|
||||||
|
|
||||||
|
import static org.junit.Assert.*;
|
||||||
|
|
||||||
|
import org.apache.poi.EncryptedDocumentException;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
public class TestCipherAlgorithm {
|
||||||
|
@Test
|
||||||
|
public void test() {
|
||||||
|
assertEquals(128, CipherAlgorithm.aes128.defaultKeySize);
|
||||||
|
|
||||||
|
for(CipherAlgorithm alg : CipherAlgorithm.values()) {
|
||||||
|
assertEquals(alg, CipherAlgorithm.valueOf(alg.toString()));
|
||||||
|
}
|
||||||
|
|
||||||
|
assertEquals(CipherAlgorithm.aes128, CipherAlgorithm.fromEcmaId(0x660E));
|
||||||
|
assertEquals(CipherAlgorithm.aes192, CipherAlgorithm.fromXmlId("AES", 192));
|
||||||
|
|
||||||
|
try {
|
||||||
|
CipherAlgorithm.fromEcmaId(0);
|
||||||
|
fail("Should throw exception");
|
||||||
|
} catch (EncryptedDocumentException e) {
|
||||||
|
// expected
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
CipherAlgorithm.fromXmlId("AES", 1);
|
||||||
|
fail("Should throw exception");
|
||||||
|
} catch (EncryptedDocumentException e) {
|
||||||
|
// expected
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
CipherAlgorithm.fromXmlId("RC1", 0x40);
|
||||||
|
fail("Should throw exception");
|
||||||
|
} catch (EncryptedDocumentException e) {
|
||||||
|
// expected
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue