final class sun.security.ssl.EphemeralKeyManager
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.security.ssl.EphemeralKeyManager
super_class: java.lang.Object
{
private static final int INDEX_RSA512;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int INDEX_RSA1024;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private final sun.security.ssl.EphemeralKeyManager$EphemeralKeyPair[] keys;
descriptor: [Lsun/security/ssl/EphemeralKeyManager$EphemeralKeyPair;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.concurrent.locks.ReentrantLock cachedKeysLock;
descriptor: Ljava/util/concurrent/locks/ReentrantLock;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=7, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_2
anewarray sun.security.ssl.EphemeralKeyManager$EphemeralKeyPair
dup
iconst_0
2: new sun.security.ssl.EphemeralKeyManager$EphemeralKeyPair
dup
aconst_null
invokespecial sun.security.ssl.EphemeralKeyManager$EphemeralKeyPair.<init>:(Ljava/security/KeyPair;)V
aastore
dup
iconst_1
3: new sun.security.ssl.EphemeralKeyManager$EphemeralKeyPair
dup
aconst_null
invokespecial sun.security.ssl.EphemeralKeyManager$EphemeralKeyPair.<init>:(Ljava/security/KeyPair;)V
aastore
putfield sun.security.ssl.EphemeralKeyManager.keys:[Lsun/security/ssl/EphemeralKeyManager$EphemeralKeyPair;
4: aload 0
new java.util.concurrent.locks.ReentrantLock
dup
invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
putfield sun.security.ssl.EphemeralKeyManager.cachedKeysLock:Ljava/util/concurrent/locks/ReentrantLock;
5: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/security/ssl/EphemeralKeyManager;
java.security.KeyPair getRSAKeyPair(boolean, java.security.SecureRandom);
descriptor: (ZLjava/security/SecureRandom;)Ljava/security/KeyPair;
flags: (0x0000)
Code:
stack=5, locals=9, args_size=3
start local 0 start local 1 start local 2 0: iload 1
ifeq 4
1: sipush 512
istore 3
start local 3 2: iconst_0
istore 4
start local 4 3: goto 6
end local 4 end local 3 4: StackMap locals:
StackMap stack:
sipush 1024
istore 3
start local 3 5: iconst_1
istore 4
start local 4 6: StackMap locals: int int
StackMap stack:
aload 0
getfield sun.security.ssl.EphemeralKeyManager.keys:[Lsun/security/ssl/EphemeralKeyManager$EphemeralKeyPair;
iload 4
aaload
invokevirtual sun.security.ssl.EphemeralKeyManager$EphemeralKeyPair.getKeyPair:()Ljava/security/KeyPair;
astore 5
start local 5 7: aload 5
ifnull 9
8: aload 5
areturn
9: StackMap locals: java.security.KeyPair
StackMap stack:
aload 0
getfield sun.security.ssl.EphemeralKeyManager.cachedKeysLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.lock:()V
10: aload 0
getfield sun.security.ssl.EphemeralKeyManager.keys:[Lsun/security/ssl/EphemeralKeyManager$EphemeralKeyPair;
iload 4
aaload
invokevirtual sun.security.ssl.EphemeralKeyManager$EphemeralKeyPair.getKeyPair:()Ljava/security/KeyPair;
astore 5
11: aload 5
ifnull 15
12: aload 5
astore 8
13: aload 0
getfield sun.security.ssl.EphemeralKeyManager.cachedKeysLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
14: aload 8
areturn
15: StackMap locals:
StackMap stack:
ldc "RSA"
invokestatic java.security.KeyPairGenerator.getInstance:(Ljava/lang/String;)Ljava/security/KeyPairGenerator;
astore 6
start local 6 16: aload 6
iload 3
aload 2
invokevirtual java.security.KeyPairGenerator.initialize:(ILjava/security/SecureRandom;)V
17: aload 0
getfield sun.security.ssl.EphemeralKeyManager.keys:[Lsun/security/ssl/EphemeralKeyManager$EphemeralKeyPair;
iload 4
new sun.security.ssl.EphemeralKeyManager$EphemeralKeyPair
dup
aload 6
invokevirtual java.security.KeyPairGenerator.genKeyPair:()Ljava/security/KeyPair;
invokespecial sun.security.ssl.EphemeralKeyManager$EphemeralKeyPair.<init>:(Ljava/security/KeyPair;)V
aastore
18: aload 0
getfield sun.security.ssl.EphemeralKeyManager.keys:[Lsun/security/ssl/EphemeralKeyManager$EphemeralKeyPair;
iload 4
aaload
invokevirtual sun.security.ssl.EphemeralKeyManager$EphemeralKeyPair.getKeyPair:()Ljava/security/KeyPair;
astore 5
end local 6 19: goto 25
StackMap locals:
StackMap stack: java.lang.Exception
20: pop
21: goto 25
StackMap locals:
StackMap stack: java.lang.Throwable
22: astore 7
23: aload 0
getfield sun.security.ssl.EphemeralKeyManager.cachedKeysLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
24: aload 7
athrow
25: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.EphemeralKeyManager.cachedKeysLock:Ljava/util/concurrent/locks/ReentrantLock;
invokevirtual java.util.concurrent.locks.ReentrantLock.unlock:()V
26: aload 5
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lsun/security/ssl/EphemeralKeyManager;
0 27 1 export Z
0 27 2 random Ljava/security/SecureRandom;
2 4 3 length I
5 27 3 length I
3 4 4 index I
6 27 4 index I
7 27 5 kp Ljava/security/KeyPair;
16 19 6 kgen Ljava/security/KeyPairGenerator;
Exception table:
from to target type
15 19 20 Class java.lang.Exception
10 13 22 any
15 22 22 any
MethodParameters:
Name Flags
export
random
}
SourceFile: "EphemeralKeyManager.java"
NestMembers:
sun.security.ssl.EphemeralKeyManager$EphemeralKeyPair
InnerClasses:
private EphemeralKeyPair = sun.security.ssl.EphemeralKeyManager$EphemeralKeyPair of sun.security.ssl.EphemeralKeyManager