public class javax.crypto.SecretKeyFactory
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: javax.crypto.SecretKeyFactory
super_class: java.lang.Object
{
private java.security.Provider provider;
descriptor: Ljava/security/Provider;
flags: (0x0002) ACC_PRIVATE
private final java.lang.String algorithm;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile javax.crypto.SecretKeyFactorySpi spi;
descriptor: Ljavax/crypto/SecretKeyFactorySpi;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private final java.lang.Object lock;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.util.Iterator<java.security.Provider$Service> serviceIterator;
descriptor: Ljava/util/Iterator;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Iterator<Ljava/security/Provider$Service;>;
protected void <init>(javax.crypto.SecretKeyFactorySpi, java.security.Provider, java.lang.String);
descriptor: (Ljavax/crypto/SecretKeyFactorySpi;Ljava/security/Provider;Ljava/lang/String;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield javax.crypto.SecretKeyFactory.lock:Ljava/lang/Object;
2: aload 0
aload 1
putfield javax.crypto.SecretKeyFactory.spi:Ljavax/crypto/SecretKeyFactorySpi;
3: aload 0
aload 2
putfield javax.crypto.SecretKeyFactory.provider:Ljava/security/Provider;
4: aload 0
aload 3
putfield javax.crypto.SecretKeyFactory.algorithm:Ljava/lang/String;
5: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljavax/crypto/SecretKeyFactory;
0 6 1 keyFacSpi Ljavax/crypto/SecretKeyFactorySpi;
0 6 2 provider Ljava/security/Provider;
0 6 3 algorithm Ljava/lang/String;
MethodParameters:
Name Flags
keyFacSpi
provider
algorithm
private void <init>(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield javax.crypto.SecretKeyFactory.lock:Ljava/lang/Object;
2: aload 0
aload 1
putfield javax.crypto.SecretKeyFactory.algorithm:Ljava/lang/String;
3: ldc "SecretKeyFactory"
aload 1
invokestatic sun.security.jca.GetInstance.getServices:(Ljava/lang/String;Ljava/lang/String;)Ljava/util/List;
4: astore 2
start local 2 5: aload 0
aload 2
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
putfield javax.crypto.SecretKeyFactory.serviceIterator:Ljava/util/Iterator;
6: aload 0
aconst_null
invokevirtual javax.crypto.SecretKeyFactory.nextSpi:(Ljavax/crypto/SecretKeyFactorySpi;)Ljavax/crypto/SecretKeyFactorySpi;
ifnonnull 10
7: new java.security.NoSuchAlgorithmException
dup
8: new java.lang.StringBuilder
dup
aload 1
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " SecretKeyFactory not available"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
9: invokespecial java.security.NoSuchAlgorithmException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals: javax.crypto.SecretKeyFactory java.lang.String java.util.List
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljavax/crypto/SecretKeyFactory;
0 11 1 algorithm Ljava/lang/String;
5 11 2 list Ljava/util/List<Ljava/security/Provider$Service;>;
Exceptions:
throws java.security.NoSuchAlgorithmException
MethodParameters:
Name Flags
algorithm
public static final javax.crypto.SecretKeyFactory getInstance(java.lang.String);
descriptor: (Ljava/lang/String;)Ljavax/crypto/SecretKeyFactory;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
ldc "null algorithm name"
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
pop
1: new javax.crypto.SecretKeyFactory
dup
aload 0
invokespecial javax.crypto.SecretKeyFactory.<init>:(Ljava/lang/String;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 algorithm Ljava/lang/String;
Exceptions:
throws java.security.NoSuchAlgorithmException
MethodParameters:
Name Flags
algorithm
public static final javax.crypto.SecretKeyFactory getInstance(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljavax/crypto/SecretKeyFactory;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
ldc "null algorithm name"
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
pop
1: ldc "SecretKeyFactory"
2: ldc Ljavax/crypto/SecretKeyFactorySpi;
aload 0
aload 1
3: invokestatic javax.crypto.JceSecurity.getInstance:(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;)Lsun/security/jca/GetInstance$Instance;
astore 2
start local 2 4: new javax.crypto.SecretKeyFactory
dup
aload 2
getfield sun.security.jca.GetInstance$Instance.impl:Ljava/lang/Object;
checkcast javax.crypto.SecretKeyFactorySpi
5: aload 2
getfield sun.security.jca.GetInstance$Instance.provider:Ljava/security/Provider;
aload 0
6: invokespecial javax.crypto.SecretKeyFactory.<init>:(Ljavax/crypto/SecretKeyFactorySpi;Ljava/security/Provider;Ljava/lang/String;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 algorithm Ljava/lang/String;
0 7 1 provider Ljava/lang/String;
4 7 2 instance Lsun/security/jca/GetInstance$Instance;
Exceptions:
throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException
MethodParameters:
Name Flags
algorithm
provider
public static final javax.crypto.SecretKeyFactory getInstance(java.lang.String, java.security.Provider);
descriptor: (Ljava/lang/String;Ljava/security/Provider;)Ljavax/crypto/SecretKeyFactory;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
ldc "null algorithm name"
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
pop
1: ldc "SecretKeyFactory"
2: ldc Ljavax/crypto/SecretKeyFactorySpi;
aload 0
aload 1
3: invokestatic javax.crypto.JceSecurity.getInstance:(Ljava/lang/String;Ljava/lang/Class;Ljava/lang/String;Ljava/security/Provider;)Lsun/security/jca/GetInstance$Instance;
astore 2
start local 2 4: new javax.crypto.SecretKeyFactory
dup
aload 2
getfield sun.security.jca.GetInstance$Instance.impl:Ljava/lang/Object;
checkcast javax.crypto.SecretKeyFactorySpi
5: aload 2
getfield sun.security.jca.GetInstance$Instance.provider:Ljava/security/Provider;
aload 0
6: invokespecial javax.crypto.SecretKeyFactory.<init>:(Ljavax/crypto/SecretKeyFactorySpi;Ljava/security/Provider;Ljava/lang/String;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 algorithm Ljava/lang/String;
0 7 1 provider Ljava/security/Provider;
4 7 2 instance Lsun/security/jca/GetInstance$Instance;
Exceptions:
throws java.security.NoSuchAlgorithmException
MethodParameters:
Name Flags
algorithm
provider
public final java.security.Provider getProvider();
descriptor: ()Ljava/security/Provider;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield javax.crypto.SecretKeyFactory.lock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
aconst_null
putfield javax.crypto.SecretKeyFactory.serviceIterator:Ljava/util/Iterator;
2: aload 0
getfield javax.crypto.SecretKeyFactory.provider:Ljava/security/Provider;
aload 1
monitorexit
3: areturn
4: StackMap locals: javax.crypto.SecretKeyFactory java.lang.Object
StackMap stack: java.lang.Throwable
aload 1
monitorexit
5: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljavax/crypto/SecretKeyFactory;
Exception table:
from to target type
1 3 4 any
4 5 4 any
public final java.lang.String getAlgorithm();
descriptor: ()Ljava/lang/String;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield javax.crypto.SecretKeyFactory.algorithm:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljavax/crypto/SecretKeyFactory;
private javax.crypto.SecretKeyFactorySpi nextSpi(javax.crypto.SecretKeyFactorySpi);
descriptor: (Ljavax/crypto/SecretKeyFactorySpi;)Ljavax/crypto/SecretKeyFactorySpi;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield javax.crypto.SecretKeyFactory.lock:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 1
ifnull 4
aload 1
aload 0
getfield javax.crypto.SecretKeyFactory.spi:Ljavax/crypto/SecretKeyFactorySpi;
if_acmpeq 4
2: aload 0
getfield javax.crypto.SecretKeyFactory.spi:Ljavax/crypto/SecretKeyFactorySpi;
aload 2
monitorexit
3: areturn
4: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield javax.crypto.SecretKeyFactory.serviceIterator:Ljava/util/Iterator;
ifnonnull 20
5: aload 2
monitorexit
6: aconst_null
areturn
7: StackMap locals:
StackMap stack:
aload 0
getfield javax.crypto.SecretKeyFactory.serviceIterator:Ljava/util/Iterator;
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.security.Provider$Service
astore 3
start local 3 8: aload 3
invokevirtual java.security.Provider$Service.getProvider:()Ljava/security/Provider;
invokestatic javax.crypto.JceSecurity.canUseProvider:(Ljava/security/Provider;)Z
ifne 10
9: goto 20
10: StackMap locals: java.security.Provider$Service
StackMap stack:
aload 3
aconst_null
invokevirtual java.security.Provider$Service.newInstance:(Ljava/lang/Object;)Ljava/lang/Object;
astore 4
start local 4 11: aload 4
instanceof javax.crypto.SecretKeyFactorySpi
ifne 13
12: goto 20
13: StackMap locals: java.lang.Object
StackMap stack:
aload 4
checkcast javax.crypto.SecretKeyFactorySpi
astore 5
start local 5 14: aload 0
aload 3
invokevirtual java.security.Provider$Service.getProvider:()Ljava/security/Provider;
putfield javax.crypto.SecretKeyFactory.provider:Ljava/security/Provider;
15: aload 0
aload 5
putfield javax.crypto.SecretKeyFactory.spi:Ljavax/crypto/SecretKeyFactorySpi;
16: aload 5
17: aload 2
monitorexit
18: areturn
end local 5 end local 4 19: StackMap locals: javax.crypto.SecretKeyFactory javax.crypto.SecretKeyFactorySpi java.lang.Object java.security.Provider$Service
StackMap stack: java.security.NoSuchAlgorithmException
pop
end local 3 20: StackMap locals:
StackMap stack:
aload 0
getfield javax.crypto.SecretKeyFactory.serviceIterator:Ljava/util/Iterator;
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
21: aload 0
aconst_null
putfield javax.crypto.SecretKeyFactory.serviceIterator:Ljava/util/Iterator;
22: aload 2
monitorexit
23: aconst_null
areturn
24: StackMap locals:
StackMap stack: java.lang.Throwable
aload 2
monitorexit
25: athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Ljavax/crypto/SecretKeyFactory;
0 26 1 oldSpi Ljavax/crypto/SecretKeyFactorySpi;
8 20 3 s Ljava/security/Provider$Service;
11 19 4 obj Ljava/lang/Object;
14 19 5 spi Ljavax/crypto/SecretKeyFactorySpi;
Exception table:
from to target type
10 12 19 Class java.security.NoSuchAlgorithmException
13 17 19 Class java.security.NoSuchAlgorithmException
1 3 24 any
4 6 24 any
7 18 24 any
19 23 24 any
24 25 24 any
MethodParameters:
Name Flags
oldSpi
public final javax.crypto.SecretKey generateSecret(java.security.spec.KeySpec);
descriptor: (Ljava/security/spec/KeySpec;)Ljavax/crypto/SecretKey;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield javax.crypto.SecretKeyFactory.serviceIterator:Ljava/util/Iterator;
ifnonnull 2
1: aload 0
getfield javax.crypto.SecretKeyFactory.spi:Ljavax/crypto/SecretKeyFactorySpi;
aload 1
invokevirtual javax.crypto.SecretKeyFactorySpi.engineGenerateSecret:(Ljava/security/spec/KeySpec;)Ljavax/crypto/SecretKey;
areturn
2: StackMap locals:
StackMap stack:
aconst_null
astore 2
start local 2 3: aload 0
getfield javax.crypto.SecretKeyFactory.spi:Ljavax/crypto/SecretKeyFactorySpi;
astore 3
start local 3 4: StackMap locals: java.lang.Exception javax.crypto.SecretKeyFactorySpi
StackMap stack:
aload 3
aload 1
invokevirtual javax.crypto.SecretKeyFactorySpi.engineGenerateSecret:(Ljava/security/spec/KeySpec;)Ljavax/crypto/SecretKey;
5: areturn
6: StackMap locals:
StackMap stack: java.lang.Exception
astore 4
start local 4 7: aload 2
ifnonnull 9
8: aload 4
astore 2
9: StackMap locals: java.lang.Exception
StackMap stack:
aload 0
aload 3
invokevirtual javax.crypto.SecretKeyFactory.nextSpi:(Ljavax/crypto/SecretKeyFactorySpi;)Ljavax/crypto/SecretKeyFactorySpi;
astore 3
end local 4 10: aload 3
ifnonnull 4
11: aload 2
instanceof java.security.spec.InvalidKeySpecException
ifeq 13
12: aload 2
checkcast java.security.spec.InvalidKeySpecException
athrow
13: StackMap locals:
StackMap stack:
new java.security.spec.InvalidKeySpecException
dup
14: ldc "Could not generate secret key"
aload 2
15: invokespecial java.security.spec.InvalidKeySpecException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Ljavax/crypto/SecretKeyFactory;
0 16 1 keySpec Ljava/security/spec/KeySpec;
3 16 2 failure Ljava/lang/Exception;
4 16 3 mySpi Ljavax/crypto/SecretKeyFactorySpi;
7 10 4 e Ljava/lang/Exception;
Exception table:
from to target type
4 5 6 Class java.lang.Exception
Exceptions:
throws java.security.spec.InvalidKeySpecException
MethodParameters:
Name Flags
keySpec
public final java.security.spec.KeySpec getKeySpec(javax.crypto.SecretKey, java.lang.Class<?>);
descriptor: (Ljavax/crypto/SecretKey;Ljava/lang/Class;)Ljava/security/spec/KeySpec;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=4, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield javax.crypto.SecretKeyFactory.serviceIterator:Ljava/util/Iterator;
ifnonnull 2
1: aload 0
getfield javax.crypto.SecretKeyFactory.spi:Ljavax/crypto/SecretKeyFactorySpi;
aload 1
aload 2
invokevirtual javax.crypto.SecretKeyFactorySpi.engineGetKeySpec:(Ljavax/crypto/SecretKey;Ljava/lang/Class;)Ljava/security/spec/KeySpec;
areturn
2: StackMap locals:
StackMap stack:
aconst_null
astore 3
start local 3 3: aload 0
getfield javax.crypto.SecretKeyFactory.spi:Ljavax/crypto/SecretKeyFactorySpi;
astore 4
start local 4 4: StackMap locals: java.lang.Exception javax.crypto.SecretKeyFactorySpi
StackMap stack:
aload 4
aload 1
aload 2
invokevirtual javax.crypto.SecretKeyFactorySpi.engineGetKeySpec:(Ljavax/crypto/SecretKey;Ljava/lang/Class;)Ljava/security/spec/KeySpec;
5: areturn
6: StackMap locals:
StackMap stack: java.lang.Exception
astore 5
start local 5 7: aload 3
ifnonnull 9
8: aload 5
astore 3
9: StackMap locals: java.lang.Exception
StackMap stack:
aload 0
aload 4
invokevirtual javax.crypto.SecretKeyFactory.nextSpi:(Ljavax/crypto/SecretKeyFactorySpi;)Ljavax/crypto/SecretKeyFactorySpi;
astore 4
end local 5 10: aload 4
ifnonnull 4
11: aload 3
instanceof java.security.spec.InvalidKeySpecException
ifeq 13
12: aload 3
checkcast java.security.spec.InvalidKeySpecException
athrow
13: StackMap locals:
StackMap stack:
new java.security.spec.InvalidKeySpecException
dup
14: ldc "Could not get key spec"
aload 3
15: invokespecial java.security.spec.InvalidKeySpecException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Ljavax/crypto/SecretKeyFactory;
0 16 1 key Ljavax/crypto/SecretKey;
0 16 2 keySpec Ljava/lang/Class<*>;
3 16 3 failure Ljava/lang/Exception;
4 16 4 mySpi Ljavax/crypto/SecretKeyFactorySpi;
7 10 5 e Ljava/lang/Exception;
Exception table:
from to target type
4 5 6 Class java.lang.Exception
Exceptions:
throws java.security.spec.InvalidKeySpecException
Signature: (Ljavax/crypto/SecretKey;Ljava/lang/Class<*>;)Ljava/security/spec/KeySpec;
MethodParameters:
Name Flags
key
keySpec
public final javax.crypto.SecretKey translateKey(javax.crypto.SecretKey);
descriptor: (Ljavax/crypto/SecretKey;)Ljavax/crypto/SecretKey;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield javax.crypto.SecretKeyFactory.serviceIterator:Ljava/util/Iterator;
ifnonnull 2
1: aload 0
getfield javax.crypto.SecretKeyFactory.spi:Ljavax/crypto/SecretKeyFactorySpi;
aload 1
invokevirtual javax.crypto.SecretKeyFactorySpi.engineTranslateKey:(Ljavax/crypto/SecretKey;)Ljavax/crypto/SecretKey;
areturn
2: StackMap locals:
StackMap stack:
aconst_null
astore 2
start local 2 3: aload 0
getfield javax.crypto.SecretKeyFactory.spi:Ljavax/crypto/SecretKeyFactorySpi;
astore 3
start local 3 4: StackMap locals: java.lang.Exception javax.crypto.SecretKeyFactorySpi
StackMap stack:
aload 3
aload 1
invokevirtual javax.crypto.SecretKeyFactorySpi.engineTranslateKey:(Ljavax/crypto/SecretKey;)Ljavax/crypto/SecretKey;
5: areturn
6: StackMap locals:
StackMap stack: java.lang.Exception
astore 4
start local 4 7: aload 2
ifnonnull 9
8: aload 4
astore 2
9: StackMap locals: java.lang.Exception
StackMap stack:
aload 0
aload 3
invokevirtual javax.crypto.SecretKeyFactory.nextSpi:(Ljavax/crypto/SecretKeyFactorySpi;)Ljavax/crypto/SecretKeyFactorySpi;
astore 3
end local 4 10: aload 3
ifnonnull 4
11: aload 2
instanceof java.security.InvalidKeyException
ifeq 13
12: aload 2
checkcast java.security.InvalidKeyException
athrow
13: StackMap locals:
StackMap stack:
new java.security.InvalidKeyException
dup
14: ldc "Could not translate key"
aload 2
15: invokespecial java.security.InvalidKeyException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Ljavax/crypto/SecretKeyFactory;
0 16 1 key Ljavax/crypto/SecretKey;
3 16 2 failure Ljava/lang/Exception;
4 16 3 mySpi Ljavax/crypto/SecretKeyFactorySpi;
7 10 4 e Ljava/lang/Exception;
Exception table:
from to target type
4 5 6 Class java.lang.Exception
Exceptions:
throws java.security.InvalidKeyException
MethodParameters:
Name Flags
key
}
SourceFile: "SecretKeyFactory.java"
InnerClasses:
public Service = java.security.Provider$Service of java.security.Provider
public final Instance = sun.security.jca.GetInstance$Instance of sun.security.jca.GetInstance