abstract class com.sun.crypto.provider.PBEKeyFactory extends javax.crypto.SecretKeyFactorySpi
minor version: 0
major version: 59
flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
this_class: com.sun.crypto.provider.PBEKeyFactory
super_class: javax.crypto.SecretKeyFactorySpi
{
private java.lang.String type;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private static java.util.HashSet<java.lang.String> validTypes;
descriptor: Ljava/util/HashSet;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Signature: Ljava/util/HashSet<Ljava/lang/String;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: new java.util.HashSet
dup
iconst_4
invokespecial java.util.HashSet.<init>:(I)V
putstatic com.sun.crypto.provider.PBEKeyFactory.validTypes:Ljava/util/HashSet;
1: getstatic com.sun.crypto.provider.PBEKeyFactory.validTypes:Ljava/util/HashSet;
ldc "PBEWithMD5AndDES"
invokevirtual java.lang.String.toUpperCase:()Ljava/lang/String;
invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
pop
2: getstatic com.sun.crypto.provider.PBEKeyFactory.validTypes:Ljava/util/HashSet;
ldc "PBEWithSHA1AndDESede"
invokevirtual java.lang.String.toUpperCase:()Ljava/lang/String;
invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
pop
3: getstatic com.sun.crypto.provider.PBEKeyFactory.validTypes:Ljava/util/HashSet;
ldc "PBEWithSHA1AndRC2_40"
invokevirtual java.lang.String.toUpperCase:()Ljava/lang/String;
invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
pop
4: getstatic com.sun.crypto.provider.PBEKeyFactory.validTypes:Ljava/util/HashSet;
ldc "PBEWithMD5AndTripleDES"
invokevirtual java.lang.String.toUpperCase:()Ljava/lang/String;
invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
pop
5: return
LocalVariableTable:
Start End Slot Name Signature
private void <init>(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial javax.crypto.SecretKeyFactorySpi.<init>:()V
1: aload 0
aload 1
putfield com.sun.crypto.provider.PBEKeyFactory.type:Ljava/lang/String;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/sun/crypto/provider/PBEKeyFactory;
0 3 1 keytype Ljava/lang/String;
MethodParameters:
Name Flags
keytype
protected javax.crypto.SecretKey engineGenerateSecret(java.security.spec.KeySpec);
descriptor: (Ljava/security/spec/KeySpec;)Ljavax/crypto/SecretKey;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 1
instanceof javax.crypto.spec.PBEKeySpec
ifne 2
1: new java.security.spec.InvalidKeySpecException
dup
ldc "Invalid key spec"
invokespecial java.security.spec.InvalidKeySpecException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
new com.sun.crypto.provider.PBEKey
dup
aload 1
checkcast javax.crypto.spec.PBEKeySpec
aload 0
getfield com.sun.crypto.provider.PBEKeyFactory.type:Ljava/lang/String;
invokespecial com.sun.crypto.provider.PBEKey.<init>:(Ljavax/crypto/spec/PBEKeySpec;Ljava/lang/String;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/sun/crypto/provider/PBEKeyFactory;
0 3 1 keySpec Ljava/security/spec/KeySpec;
Exceptions:
throws java.security.spec.InvalidKeySpecException
MethodParameters:
Name Flags
keySpec
protected java.security.spec.KeySpec engineGetKeySpec(javax.crypto.SecretKey, java.lang.Class);
descriptor: (Ljavax/crypto/SecretKey;Ljava/lang/Class;)Ljava/security/spec/KeySpec;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 1
instanceof javax.crypto.SecretKey
ifeq 17
1: getstatic com.sun.crypto.provider.PBEKeyFactory.validTypes:Ljava/util/HashSet;
aload 1
invokeinterface javax.crypto.SecretKey.getAlgorithm:()Ljava/lang/String;
invokevirtual java.lang.String.toUpperCase:()Ljava/lang/String;
invokevirtual java.util.HashSet.contains:(Ljava/lang/Object;)Z
ifeq 17
2: aload 1
invokeinterface javax.crypto.SecretKey.getFormat:()Ljava/lang/String;
ldc "RAW"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 17
3: aload 2
ifnull 16
4: ldc Ljavax/crypto/spec/PBEKeySpec;
aload 2
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 16
5: aload 1
invokeinterface javax.crypto.SecretKey.getEncoded:()[B
astore 3
start local 3 6: aload 3
arraylength
newarray 5
astore 4
start local 4 7: iconst_0
istore 5
start local 5 8: goto 11
9: StackMap locals: byte[] char[] int
StackMap stack:
aload 4
iload 5
aload 3
iload 5
baload
bipush 127
iand
i2c
castore
10: iinc 5 1
StackMap locals:
StackMap stack:
11: iload 5
aload 4
arraylength
if_icmplt 9
end local 5 12: new javax.crypto.spec.PBEKeySpec
dup
aload 4
invokespecial javax.crypto.spec.PBEKeySpec.<init>:([C)V
astore 5
start local 5 13: aload 4
bipush 32
invokestatic java.util.Arrays.fill:([CC)V
14: aload 3
iconst_0
invokestatic java.util.Arrays.fill:([BB)V
15: aload 5
areturn
end local 5 end local 4 end local 3 16: StackMap locals:
StackMap stack:
new java.security.spec.InvalidKeySpecException
dup
ldc "Invalid key spec"
invokespecial java.security.spec.InvalidKeySpecException.<init>:(Ljava/lang/String;)V
athrow
17: StackMap locals:
StackMap stack:
new java.security.spec.InvalidKeySpecException
dup
ldc "Invalid key format/algorithm"
invokespecial java.security.spec.InvalidKeySpecException.<init>:(Ljava/lang/String;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lcom/sun/crypto/provider/PBEKeyFactory;
0 18 1 key Ljavax/crypto/SecretKey;
0 18 2 keySpecCl Ljava/lang/Class;
6 16 3 passwdBytes [B
7 16 4 passwdChars [C
8 12 5 i I
13 16 5 ret Ljavax/crypto/spec/PBEKeySpec;
Exceptions:
throws java.security.spec.InvalidKeySpecException
MethodParameters:
Name Flags
key
keySpecCl
protected javax.crypto.SecretKey engineTranslateKey(javax.crypto.SecretKey);
descriptor: (Ljavax/crypto/SecretKey;)Ljavax/crypto/SecretKey;
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 1
ifnull 11
1: getstatic com.sun.crypto.provider.PBEKeyFactory.validTypes:Ljava/util/HashSet;
aload 1
invokeinterface javax.crypto.SecretKey.getAlgorithm:()Ljava/lang/String;
invokevirtual java.lang.String.toUpperCase:()Ljava/lang/String;
invokevirtual java.util.HashSet.contains:(Ljava/lang/Object;)Z
ifeq 11
2: aload 1
invokeinterface javax.crypto.SecretKey.getFormat:()Ljava/lang/String;
ldc "RAW"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 11
3: aload 1
instanceof com.sun.crypto.provider.PBEKey
ifeq 6
4: aload 1
5: areturn
6: StackMap locals:
StackMap stack:
aload 0
7: aload 1
ldc Ljavax/crypto/spec/PBEKeySpec;
8: invokevirtual com.sun.crypto.provider.PBEKeyFactory.engineGetKeySpec:(Ljavax/crypto/SecretKey;Ljava/lang/Class;)Ljava/security/spec/KeySpec;
checkcast javax.crypto.spec.PBEKeySpec
astore 2
start local 2 9: aload 0
aload 2
invokevirtual com.sun.crypto.provider.PBEKeyFactory.engineGenerateSecret:(Ljava/security/spec/KeySpec;)Ljavax/crypto/SecretKey;
10: areturn
end local 2 11: StackMap locals:
StackMap stack:
new java.security.InvalidKeyException
dup
ldc "Invalid key format/algorithm"
invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
12: StackMap locals:
StackMap stack: java.security.spec.InvalidKeySpecException
astore 2
start local 2 13: new java.security.InvalidKeyException
dup
new java.lang.StringBuilder
dup
ldc "Cannot translate key: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
14: aload 2
invokevirtual java.security.spec.InvalidKeySpecException.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
15: invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/sun/crypto/provider/PBEKeyFactory;
0 16 1 key Ljavax/crypto/SecretKey;
9 11 2 pbeKeySpec Ljavax/crypto/spec/PBEKeySpec;
13 16 2 ikse Ljava/security/spec/InvalidKeySpecException;
Exception table:
from to target type
0 5 12 Class java.security.spec.InvalidKeySpecException
6 10 12 Class java.security.spec.InvalidKeySpecException
11 12 12 Class java.security.spec.InvalidKeySpecException
Exceptions:
throws java.security.InvalidKeyException
MethodParameters:
Name Flags
key
}
SourceFile: "PBEKeyFactory.java"
NestMembers:
com.sun.crypto.provider.PBEKeyFactory$PBEWithMD5AndDES com.sun.crypto.provider.PBEKeyFactory$PBEWithMD5AndTripleDES com.sun.crypto.provider.PBEKeyFactory$PBEWithSHA1AndDESede com.sun.crypto.provider.PBEKeyFactory$PBEWithSHA1AndRC2_40
InnerClasses:
public final PBEWithMD5AndDES = com.sun.crypto.provider.PBEKeyFactory$PBEWithMD5AndDES of com.sun.crypto.provider.PBEKeyFactory
public final PBEWithMD5AndTripleDES = com.sun.crypto.provider.PBEKeyFactory$PBEWithMD5AndTripleDES of com.sun.crypto.provider.PBEKeyFactory
public final PBEWithSHA1AndDESede = com.sun.crypto.provider.PBEKeyFactory$PBEWithSHA1AndDESede of com.sun.crypto.provider.PBEKeyFactory
public final PBEWithSHA1AndRC2_40 = com.sun.crypto.provider.PBEKeyFactory$PBEWithSHA1AndRC2_40 of com.sun.crypto.provider.PBEKeyFactory