8006855: PKCS12 test failures due to unsupported algorithm

Reviewed-by: mullan
This commit is contained in:
Vinnie Ryan 2013-01-24 16:44:15 +00:00
parent a1d5ea2b9d
commit 3727e751f6
3 changed files with 24 additions and 4 deletions

View File

@ -887,13 +887,13 @@ public final class PKCS12KeyStore extends KeyStoreSpi {
/*
* Map a PBE algorithm name onto its object identifier
*/
private ObjectIdentifier mapPBEAlgorithmToOID(String algorithm) {
private ObjectIdentifier mapPBEAlgorithmToOID(String algorithm)
throws NoSuchAlgorithmException {
// Check for PBES2 algorithms
if (algorithm.toLowerCase().startsWith("pbewithhmacsha")) {
return pbes2_OID;
}
return null;
return AlgorithmId.get(algorithm).getOID();
}
/**

View File

@ -36,7 +36,8 @@ import javax.crypto.spec.*;
public class PBETest {
private final static String DIR = System.getProperty("test.src", ".");
private static final String PBE_ALGO = "PBEWithHmacSHA1AndAES_128";
//private static final String PBE_ALGO = "PBEWithHmacSHA1AndAES_128";
private static final String PBE_ALGO = "PBEWithSHA1AndDESede";
private static final char[] PASSWORD = "passphrase".toCharArray();
private static final String KEYSTORE_TYPE = "JKS";
private static final String KEYSTORE = DIR + "/keystore.jks";

View File

@ -43,6 +43,14 @@ public class StoreSecretKeyTest {
public static void main(String[] args) throws Exception {
// Skip test if AES is unavailable
try {
SecretKeyFactory.getInstance("AES");
} catch (NoSuchAlgorithmException nsae) {
System.out.println("AES is unavailable. Skipping test...");
return;
}
new File(KEYSTORE).delete();
try {
@ -79,6 +87,17 @@ public class StoreSecretKeyTest {
private static SecretKey generateSecretKey(String algorithm, int size)
throws NoSuchAlgorithmException {
// Failover to DES if the requested secret key factory is unavailable
SecretKeyFactory keyFactory;
try {
keyFactory = SecretKeyFactory.getInstance(algorithm);
} catch (NoSuchAlgorithmException nsae) {
keyFactory = SecretKeyFactory.getInstance("DES");
algorithm = "DES";
size = 56;
}
KeyGenerator generator = KeyGenerator.getInstance(algorithm);
generator.init(size);
return generator.generateKey();