final class sun.security.ssl.XDHKeyExchange$XDHEPossession implements sun.security.ssl.NamedGroupPossession
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.security.ssl.XDHKeyExchange$XDHEPossession
super_class: java.lang.Object
{
final java.security.PrivateKey privateKey;
descriptor: Ljava/security/PrivateKey;
flags: (0x0010) ACC_FINAL
final java.security.interfaces.XECPublicKey publicKey;
descriptor: Ljava/security/interfaces/XECPublicKey;
flags: (0x0010) ACC_FINAL
final sun.security.ssl.NamedGroup namedGroup;
descriptor: Lsun/security/ssl/NamedGroup;
flags: (0x0010) ACC_FINAL
private static volatile int[] $SWITCH_TABLE$sun$security$ssl$NamedGroup;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
void <init>(sun.security.ssl.NamedGroup, java.security.SecureRandom);
descriptor: (Lsun/security/ssl/NamedGroup;Ljava/security/SecureRandom;)V
flags: (0x0000)
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 1
getfield sun.security.ssl.NamedGroup.algorithm:Ljava/lang/String;
invokestatic java.security.KeyPairGenerator.getInstance:(Ljava/lang/String;)Ljava/security/KeyPairGenerator;
2: astore 3
start local 3 3: aload 3
aload 1
getfield sun.security.ssl.NamedGroup.keAlgParamSpec:Ljava/security/spec/AlgorithmParameterSpec;
aload 2
invokevirtual java.security.KeyPairGenerator.initialize:(Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V
4: aload 3
invokevirtual java.security.KeyPairGenerator.generateKeyPair:()Ljava/security/KeyPair;
astore 4
start local 4 5: aload 0
aload 4
invokevirtual java.security.KeyPair.getPrivate:()Ljava/security/PrivateKey;
putfield sun.security.ssl.XDHKeyExchange$XDHEPossession.privateKey:Ljava/security/PrivateKey;
6: aload 0
aload 4
invokevirtual java.security.KeyPair.getPublic:()Ljava/security/PublicKey;
checkcast java.security.interfaces.XECPublicKey
putfield sun.security.ssl.XDHKeyExchange$XDHEPossession.publicKey:Ljava/security/interfaces/XECPublicKey;
end local 4 end local 3 7: goto 12
StackMap locals: sun.security.ssl.XDHKeyExchange$XDHEPossession sun.security.ssl.NamedGroup java.security.SecureRandom
StackMap stack: java.security.GeneralSecurityException
8: astore 3
start local 3 9: new java.lang.RuntimeException
dup
10: ldc "Could not generate XDH keypair"
aload 3
11: invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 3 12: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield sun.security.ssl.XDHKeyExchange$XDHEPossession.namedGroup:Lsun/security/ssl/NamedGroup;
13: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lsun/security/ssl/XDHKeyExchange$XDHEPossession;
0 14 1 namedGroup Lsun/security/ssl/NamedGroup;
0 14 2 random Ljava/security/SecureRandom;
3 7 3 kpg Ljava/security/KeyPairGenerator;
5 7 4 kp Ljava/security/KeyPair;
9 12 3 e Ljava/security/GeneralSecurityException;
Exception table:
from to target type
1 7 8 Class java.security.GeneralSecurityException
MethodParameters:
Name Flags
namedGroup
random
public byte[] encode();
descriptor: ()[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.XDHKeyExchange$XDHEPossession.publicKey:Ljava/security/interfaces/XECPublicKey;
invokeinterface java.security.interfaces.XECPublicKey.getU:()Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.toByteArray:()[B
invokestatic sun.security.util.ECUtil.trimZeroes:([B)[B
astore 1
start local 1 1: invokestatic sun.security.ssl.XDHKeyExchange$XDHEPossession.$SWITCH_TABLE$sun$security$ssl$NamedGroup:()[I
aload 0
getfield sun.security.ssl.XDHKeyExchange$XDHEPossession.namedGroup:Lsun/security/ssl/NamedGroup;
invokevirtual sun.security.ssl.NamedGroup.ordinal:()I
iaload
tableswitch { // 26 - 27
26: 2
27: 4
default: 6
}
2: StackMap locals: byte[]
StackMap stack:
bipush 32
istore 2
start local 2 3: goto 7
end local 2 4: StackMap locals:
StackMap stack:
bipush 56
istore 2
start local 2 5: goto 7
end local 2 6: StackMap locals:
StackMap stack:
new java.lang.RuntimeException
dup
ldc "Invalid XDH group"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
start local 2 7: StackMap locals: int
StackMap stack:
aload 1
arraylength
iload 2
if_icmple 9
8: new java.lang.RuntimeException
dup
ldc "Encoded XDH key too large"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals:
StackMap stack:
aload 1
arraylength
iload 2
if_icmpeq 15
10: iload 2
newarray 8
astore 3
start local 3 11: aload 1
iconst_0
aload 3
12: iload 2
aload 1
arraylength
isub
aload 1
arraylength
13: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
14: aload 3
astore 1
end local 3 15: StackMap locals:
StackMap stack:
aload 1
invokestatic sun.security.ssl.Utilities.reverseBytes:([B)V
16: aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lsun/security/ssl/XDHKeyExchange$XDHEPossession;
1 17 1 uBytes [B
3 4 2 expLength I
5 6 2 expLength I
7 17 2 expLength I
11 15 3 tmp [B
public java.security.PublicKey getPublicKey();
descriptor: ()Ljava/security/PublicKey;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.XDHKeyExchange$XDHEPossession.publicKey:Ljava/security/interfaces/XECPublicKey;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/XDHKeyExchange$XDHEPossession;
public sun.security.ssl.NamedGroup getNamedGroup();
descriptor: ()Lsun/security/ssl/NamedGroup;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.XDHKeyExchange$XDHEPossession.namedGroup:Lsun/security/ssl/NamedGroup;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/XDHKeyExchange$XDHEPossession;
public java.security.PrivateKey getPrivateKey();
descriptor: ()Ljava/security/PrivateKey;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.XDHKeyExchange$XDHEPossession.privateKey:Ljava/security/PrivateKey;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/XDHKeyExchange$XDHEPossession;
static int[] $SWITCH_TABLE$sun$security$ssl$NamedGroup();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic sun.security.ssl.XDHKeyExchange$XDHEPossession.$SWITCH_TABLE$sun$security$ssl$NamedGroup:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic sun.security.ssl.NamedGroup.values:()[Lsun/security/ssl/NamedGroup;
arraylength
newarray 10
astore 0
2: aload 0
getstatic sun.security.ssl.NamedGroup.ARBITRARY_CHAR2:Lsun/security/ssl/NamedGroup;
invokevirtual sun.security.ssl.NamedGroup.ordinal:()I
bipush 34
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic sun.security.ssl.NamedGroup.ARBITRARY_PRIME:Lsun/security/ssl/NamedGroup;
invokevirtual sun.security.ssl.NamedGroup.ordinal:()I
bipush 33
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic sun.security.ssl.NamedGroup.FFDHE_2048:Lsun/security/ssl/NamedGroup;
invokevirtual sun.security.ssl.NamedGroup.ordinal:()I
bipush 28
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
getstatic sun.security.ssl.NamedGroup.FFDHE_3072:Lsun/security/ssl/NamedGroup;
invokevirtual sun.security.ssl.NamedGroup.ordinal:()I
bipush 29
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
getstatic sun.security.ssl.NamedGroup.FFDHE_4096:Lsun/security/ssl/NamedGroup;
invokevirtual sun.security.ssl.NamedGroup.ordinal:()I
bipush 30
iastore
15: goto 17
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
16: pop
StackMap locals:
StackMap stack:
17: aload 0
getstatic sun.security.ssl.NamedGroup.FFDHE_6144:Lsun/security/ssl/NamedGroup;
invokevirtual sun.security.ssl.NamedGroup.ordinal:()I
bipush 31
iastore
18: goto 20
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
19: pop
StackMap locals:
StackMap stack:
20: aload 0
getstatic sun.security.ssl.NamedGroup.FFDHE_8192:Lsun/security/ssl/NamedGroup;
invokevirtual sun.security.ssl.NamedGroup.ordinal:()I
bipush 32
iastore
21: goto 23
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
22: pop
StackMap locals:
StackMap stack:
23: aload 0
getstatic sun.security.ssl.NamedGroup.SECP160_K1:Lsun/security/ssl/NamedGroup;
invokevirtual sun.security.ssl.NamedGroup.ordinal:()I
bipush 15
iastore
24: goto 26
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
25: pop
StackMap locals:
StackMap stack:
26: aload 0
getstatic sun.security.ssl.NamedGroup.SECP160_R1:Lsun/security/ssl/NamedGroup;
invokevirtual sun.security.ssl.NamedGroup.ordinal:()I
bipush 16
iastore
27: goto 29
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
28: pop
StackMap locals:
StackMap stack:
29: aload 0
getstatic sun.security.ssl.NamedGroup.SECP160_R2:Lsun/security/ssl/NamedGroup;
invokevirtual sun.security.ssl.NamedGroup.ordinal:()I
bipush 17
iastore
30: goto 32
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
31: pop
StackMap locals:
StackMap stack:
32: aload 0
getstatic sun.security.ssl.NamedGroup.SECP192_K1:Lsun/security/ssl/NamedGroup;
invokevirtual sun.security.ssl.NamedGroup.ordinal:()I
bipush 18
iastore
33: goto 35
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
34: pop
StackMap locals:
StackMap stack:
35: aload 0
getstatic sun.security.ssl.NamedGroup.SECP192_R1:Lsun/security/ssl/NamedGroup;
invokevirtual sun.security.ssl.NamedGroup.ordinal:()I
bipush 19
iastore
36: goto 38
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
37: pop
StackMap locals:
StackMap stack:
38: aload 0
getstatic sun.security.ssl.NamedGroup.SECP224_K1:Lsun/security/ssl/NamedGroup;
invokevirtual sun.security.ssl.NamedGroup.ordinal:()I
bipush 20
iastore
39: goto 41
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
40: pop
StackMap locals:
StackMap stack:
41: aload 0
getstatic sun.security.ssl.NamedGroup.SECP224_R1:Lsun/security/ssl/NamedGroup;
invokevirtual sun.security.ssl.NamedGroup.ordinal:()I
bipush 21
iastore
42: goto 44
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
43: pop
StackMap locals:
StackMap stack:
44: aload 0
getstatic sun.security.ssl.NamedGroup.SECP256_K1:Lsun/security/ssl/NamedGroup;
invokevirtual sun.security.ssl.NamedGroup.ordinal:()I
bipush 22
iastore
45: goto 47
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
46: pop
StackMap locals:
StackMap stack:
47: aload 0
getstatic sun.security.ssl.NamedGroup.SECP256_R1:Lsun/security/ssl/NamedGroup;
invokevirtual sun.security.ssl.NamedGroup.ordinal:()I
bipush 23
iastore
48: goto 50
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
49: pop
StackMap locals:
StackMap stack:
50: aload 0
getstatic sun.security.ssl.NamedGroup.SECP384_R1:Lsun/security/ssl/NamedGroup;
invokevirtual sun.security.ssl.NamedGroup.ordinal:()I
bipush 24
iastore
51: goto 53
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
52: pop
StackMap locals:
StackMap stack:
53: aload 0
getstatic sun.security.ssl.NamedGroup.SECP521_R1:Lsun/security/ssl/NamedGroup;
invokevirtual sun.security.ssl.NamedGroup.ordinal:()I
bipush 25
iastore
54: goto 56
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
55: pop
StackMap locals:
StackMap stack:
56: aload 0
getstatic sun.security.ssl.NamedGroup.SECT163_K1:Lsun/security/ssl/NamedGroup;
invokevirtual sun.security.ssl.NamedGroup.ordinal:()I
iconst_1
iastore
57: goto 59
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
58: pop
StackMap locals:
StackMap stack:
59: aload 0
getstatic sun.security.ssl.NamedGroup.SECT163_R1:Lsun/security/ssl/NamedGroup;
invokevirtual sun.security.ssl.NamedGroup.ordinal:()I
iconst_2
iastore
60: goto 62
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
61: pop
StackMap locals:
StackMap stack:
62: aload 0
getstatic sun.security.ssl.NamedGroup.SECT163_R2:Lsun/security/ssl/NamedGroup;
invokevirtual sun.security.ssl.NamedGroup.ordinal:()I
iconst_3
iastore
63: goto 65
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
64: pop
StackMap locals:
StackMap stack:
65: aload 0
getstatic sun.security.ssl.NamedGroup.SECT193_R1:Lsun/security/ssl/NamedGroup;
invokevirtual sun.security.ssl.NamedGroup.ordinal:()I
iconst_4
iastore
66: goto 68
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
67: pop
StackMap locals:
StackMap stack:
68: aload 0
getstatic sun.security.ssl.NamedGroup.SECT193_R2:Lsun/security/ssl/NamedGroup;
invokevirtual sun.security.ssl.NamedGroup.ordinal:()I
iconst_5
iastore
69: goto 71
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
70: pop
StackMap locals:
StackMap stack:
71: aload 0
getstatic sun.security.ssl.NamedGroup.SECT233_K1:Lsun/security/ssl/NamedGroup;
invokevirtual sun.security.ssl.NamedGroup.ordinal:()I
bipush 6
iastore
72: goto 74
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
73: pop
StackMap locals:
StackMap stack:
74: aload 0
getstatic sun.security.ssl.NamedGroup.SECT233_R1:Lsun/security/ssl/NamedGroup;
invokevirtual sun.security.ssl.NamedGroup.ordinal:()I
bipush 7
iastore
75: goto 77
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
76: pop
StackMap locals:
StackMap stack:
77: aload 0
getstatic sun.security.ssl.NamedGroup.SECT239_K1:Lsun/security/ssl/NamedGroup;
invokevirtual sun.security.ssl.NamedGroup.ordinal:()I
bipush 8
iastore
78: goto 80
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
79: pop
StackMap locals:
StackMap stack:
80: aload 0
getstatic sun.security.ssl.NamedGroup.SECT283_K1:Lsun/security/ssl/NamedGroup;
invokevirtual sun.security.ssl.NamedGroup.ordinal:()I
bipush 9
iastore
81: goto 83
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
82: pop
StackMap locals:
StackMap stack:
83: aload 0
getstatic sun.security.ssl.NamedGroup.SECT283_R1:Lsun/security/ssl/NamedGroup;
invokevirtual sun.security.ssl.NamedGroup.ordinal:()I
bipush 10
iastore
84: goto 86
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
85: pop
StackMap locals:
StackMap stack:
86: aload 0
getstatic sun.security.ssl.NamedGroup.SECT409_K1:Lsun/security/ssl/NamedGroup;
invokevirtual sun.security.ssl.NamedGroup.ordinal:()I
bipush 11
iastore
87: goto 89
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
88: pop
StackMap locals:
StackMap stack:
89: aload 0
getstatic sun.security.ssl.NamedGroup.SECT409_R1:Lsun/security/ssl/NamedGroup;
invokevirtual sun.security.ssl.NamedGroup.ordinal:()I
bipush 12
iastore
90: goto 92
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
91: pop
StackMap locals:
StackMap stack:
92: aload 0
getstatic sun.security.ssl.NamedGroup.SECT571_K1:Lsun/security/ssl/NamedGroup;
invokevirtual sun.security.ssl.NamedGroup.ordinal:()I
bipush 13
iastore
93: goto 95
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
94: pop
StackMap locals:
StackMap stack:
95: aload 0
getstatic sun.security.ssl.NamedGroup.SECT571_R1:Lsun/security/ssl/NamedGroup;
invokevirtual sun.security.ssl.NamedGroup.ordinal:()I
bipush 14
iastore
96: goto 98
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
97: pop
StackMap locals:
StackMap stack:
98: aload 0
getstatic sun.security.ssl.NamedGroup.X25519:Lsun/security/ssl/NamedGroup;
invokevirtual sun.security.ssl.NamedGroup.ordinal:()I
bipush 26
iastore
99: goto 101
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
100: pop
StackMap locals:
StackMap stack:
101: aload 0
getstatic sun.security.ssl.NamedGroup.X448:Lsun/security/ssl/NamedGroup;
invokevirtual sun.security.ssl.NamedGroup.ordinal:()I
bipush 27
iastore
102: goto 104
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
103: pop
StackMap locals:
StackMap stack:
104: aload 0
dup
putstatic sun.security.ssl.XDHKeyExchange$XDHEPossession.$SWITCH_TABLE$sun$security$ssl$NamedGroup:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
11 12 13 Class java.lang.NoSuchFieldError
14 15 16 Class java.lang.NoSuchFieldError
17 18 19 Class java.lang.NoSuchFieldError
20 21 22 Class java.lang.NoSuchFieldError
23 24 25 Class java.lang.NoSuchFieldError
26 27 28 Class java.lang.NoSuchFieldError
29 30 31 Class java.lang.NoSuchFieldError
32 33 34 Class java.lang.NoSuchFieldError
35 36 37 Class java.lang.NoSuchFieldError
38 39 40 Class java.lang.NoSuchFieldError
41 42 43 Class java.lang.NoSuchFieldError
44 45 46 Class java.lang.NoSuchFieldError
47 48 49 Class java.lang.NoSuchFieldError
50 51 52 Class java.lang.NoSuchFieldError
53 54 55 Class java.lang.NoSuchFieldError
56 57 58 Class java.lang.NoSuchFieldError
59 60 61 Class java.lang.NoSuchFieldError
62 63 64 Class java.lang.NoSuchFieldError
65 66 67 Class java.lang.NoSuchFieldError
68 69 70 Class java.lang.NoSuchFieldError
71 72 73 Class java.lang.NoSuchFieldError
74 75 76 Class java.lang.NoSuchFieldError
77 78 79 Class java.lang.NoSuchFieldError
80 81 82 Class java.lang.NoSuchFieldError
83 84 85 Class java.lang.NoSuchFieldError
86 87 88 Class java.lang.NoSuchFieldError
89 90 91 Class java.lang.NoSuchFieldError
92 93 94 Class java.lang.NoSuchFieldError
95 96 97 Class java.lang.NoSuchFieldError
98 99 100 Class java.lang.NoSuchFieldError
101 102 103 Class java.lang.NoSuchFieldError
}
SourceFile: "XDHKeyExchange.java"
NestHost: sun.security.ssl.XDHKeyExchange
InnerClasses:
final XDHEPossession = sun.security.ssl.XDHKeyExchange$XDHEPossession of sun.security.ssl.XDHKeyExchange