Browse Source

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
tags/REL_3_11_FINAL
Dominik Stadler 9 years ago
parent
commit
eae3eb5c58

+ 2
- 4
src/java/org/apache/poi/poifs/crypt/CipherAlgorithm.java View File

@@ -64,7 +64,7 @@ public enum CipherAlgorithm {
for (CipherAlgorithm ca : CipherAlgorithm.values()) {
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) {
@@ -74,8 +74,6 @@ public enum CipherAlgorithm {
if (ks == keySize) return ca;
}
}
throw new EncryptedDocumentException("cipher algorithm not found");
throw new EncryptedDocumentException("cipher algorithm " + xmlId + "/" + keySize + " not found");
}
}

+ 42
- 0
src/testcases/org/apache/poi/poifs/crypt/TestCipherAlgorithm.java View File

@@ -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…
Cancel
Save