< prev index next >

src/share/classes/com/sun/crypto/provider/PBES2Parameters.java

Print this page

        

*** 310,331 **** // the 'otherSource' ASN.1 CHOICE for 'salt' is not supported throw new IOException("PBE parameter parsing error: " + "not an ASN.1 OCTET STRING tag"); } iCount = pBKDF2_params.data.getInteger(); // keyLength INTEGER (1..MAX) OPTIONAL, if (pBKDF2_params.data.available() > 0) { DerValue keyLength = pBKDF2_params.data.getDerValue(); if (keyLength.tag == DerValue.tag_Integer) { keysize = keyLength.getInteger() * 8; // keysize (in bits) } } // prf AlgorithmIdentifier {{PBKDF2-PRFs}} DEFAULT algid-hmacWithSHA1 String kdfAlgo = "HmacSHA1"; if (pBKDF2_params.data.available() > 0) { ! if (pBKDF2_params.tag == DerValue.tag_Sequence) { ! DerValue prf = pBKDF2_params.data.getDerValue(); kdfAlgo_OID = prf.data.getOID(); if (hmacWithSHA1_OID.equals(kdfAlgo_OID)) { kdfAlgo = "HmacSHA1"; } else if (hmacWithSHA224_OID.equals(kdfAlgo_OID)) { kdfAlgo = "HmacSHA224"; --- 310,339 ---- // the 'otherSource' ASN.1 CHOICE for 'salt' is not supported throw new IOException("PBE parameter parsing error: " + "not an ASN.1 OCTET STRING tag"); } iCount = pBKDF2_params.data.getInteger(); + + DerValue prf = null; // keyLength INTEGER (1..MAX) OPTIONAL, if (pBKDF2_params.data.available() > 0) { DerValue keyLength = pBKDF2_params.data.getDerValue(); if (keyLength.tag == DerValue.tag_Integer) { keysize = keyLength.getInteger() * 8; // keysize (in bits) + } else { + // Should be the prf + prf = keyLength; } } // prf AlgorithmIdentifier {{PBKDF2-PRFs}} DEFAULT algid-hmacWithSHA1 String kdfAlgo = "HmacSHA1"; + if (prf == null) { if (pBKDF2_params.data.available() > 0) { ! prf = pBKDF2_params.data.getDerValue(); ! } ! } ! if (prf != null) { kdfAlgo_OID = prf.data.getOID(); if (hmacWithSHA1_OID.equals(kdfAlgo_OID)) { kdfAlgo = "HmacSHA1"; } else if (hmacWithSHA224_OID.equals(kdfAlgo_OID)) { kdfAlgo = "HmacSHA224";
*** 347,357 **** throw new IOException("PBE parameter parsing error: " + "not an ASN.1 NULL tag"); } } } - } return kdfAlgo; } private String parseES(DerValue encryptionScheme) throws IOException { --- 355,364 ----
< prev index next >