39 * meaning that the password must consist of printable ASCII characters
40 * (values 32 to 126 decimal inclusive) and only the low order 8 bits
41 * of each password character are used.
42 *
43 * @author Jan Luehe
44 *
45 */
46 abstract class PBEKeyFactory extends SecretKeyFactorySpi {
47
48 private String type;
49 private static HashSet<String> validTypes;
50
51 /**
52 * Simple constructor
53 */
54 private PBEKeyFactory(String keytype) {
55 type = keytype;
56 }
57
58 static {
59 validTypes = new HashSet<String>(17);
60 validTypes.add("PBEWithMD5AndDES".toUpperCase(Locale.ENGLISH));
61 validTypes.add("PBEWithSHA1AndDESede".toUpperCase(Locale.ENGLISH));
62 validTypes.add("PBEWithSHA1AndRC2_40".toUpperCase(Locale.ENGLISH));
63 validTypes.add("PBEWithSHA1AndRC2_128".toUpperCase(Locale.ENGLISH));
64 validTypes.add("PBEWithSHA1AndRC4_40".toUpperCase(Locale.ENGLISH));
65 validTypes.add("PBEWithSHA1AndRC4_128".toUpperCase(Locale.ENGLISH));
66 // Proprietary algorithm.
67 validTypes.add("PBEWithMD5AndTripleDES".toUpperCase(Locale.ENGLISH));
68 validTypes.add("PBEWithHmacSHA1AndAES_128".toUpperCase(Locale.ENGLISH));
69 validTypes.add("PBEWithHmacSHA224AndAES_128".toUpperCase(Locale.ENGLISH));
70 validTypes.add("PBEWithHmacSHA256AndAES_128".toUpperCase(Locale.ENGLISH));
71 validTypes.add("PBEWithHmacSHA384AndAES_128".toUpperCase(Locale.ENGLISH));
72 validTypes.add("PBEWithHmacSHA512AndAES_128".toUpperCase(Locale.ENGLISH));
73 validTypes.add("PBEWithHmacSHA1AndAES_256".toUpperCase(Locale.ENGLISH));
74 validTypes.add("PBEWithHmacSHA224AndAES_256".toUpperCase(Locale.ENGLISH));
75 validTypes.add("PBEWithHmacSHA256AndAES_256".toUpperCase(Locale.ENGLISH));
76 validTypes.add("PBEWithHmacSHA384AndAES_256".toUpperCase(Locale.ENGLISH));
77 validTypes.add("PBEWithHmacSHA512AndAES_256".toUpperCase(Locale.ENGLISH));
78 }
79
|
39 * meaning that the password must consist of printable ASCII characters
40 * (values 32 to 126 decimal inclusive) and only the low order 8 bits
41 * of each password character are used.
42 *
43 * @author Jan Luehe
44 *
45 */
46 abstract class PBEKeyFactory extends SecretKeyFactorySpi {
47
48 private String type;
49 private static HashSet<String> validTypes;
50
51 /**
52 * Simple constructor
53 */
54 private PBEKeyFactory(String keytype) {
55 type = keytype;
56 }
57
58 static {
59 validTypes = new HashSet<>(17);
60 validTypes.add("PBEWithMD5AndDES".toUpperCase(Locale.ENGLISH));
61 validTypes.add("PBEWithSHA1AndDESede".toUpperCase(Locale.ENGLISH));
62 validTypes.add("PBEWithSHA1AndRC2_40".toUpperCase(Locale.ENGLISH));
63 validTypes.add("PBEWithSHA1AndRC2_128".toUpperCase(Locale.ENGLISH));
64 validTypes.add("PBEWithSHA1AndRC4_40".toUpperCase(Locale.ENGLISH));
65 validTypes.add("PBEWithSHA1AndRC4_128".toUpperCase(Locale.ENGLISH));
66 // Proprietary algorithm.
67 validTypes.add("PBEWithMD5AndTripleDES".toUpperCase(Locale.ENGLISH));
68 validTypes.add("PBEWithHmacSHA1AndAES_128".toUpperCase(Locale.ENGLISH));
69 validTypes.add("PBEWithHmacSHA224AndAES_128".toUpperCase(Locale.ENGLISH));
70 validTypes.add("PBEWithHmacSHA256AndAES_128".toUpperCase(Locale.ENGLISH));
71 validTypes.add("PBEWithHmacSHA384AndAES_128".toUpperCase(Locale.ENGLISH));
72 validTypes.add("PBEWithHmacSHA512AndAES_128".toUpperCase(Locale.ENGLISH));
73 validTypes.add("PBEWithHmacSHA1AndAES_256".toUpperCase(Locale.ENGLISH));
74 validTypes.add("PBEWithHmacSHA224AndAES_256".toUpperCase(Locale.ENGLISH));
75 validTypes.add("PBEWithHmacSHA256AndAES_256".toUpperCase(Locale.ENGLISH));
76 validTypes.add("PBEWithHmacSHA384AndAES_256".toUpperCase(Locale.ENGLISH));
77 validTypes.add("PBEWithHmacSHA512AndAES_256".toUpperCase(Locale.ENGLISH));
78 }
79
|