final class sun.security.ssl.DHKeyExchange$DHECredentials implements sun.security.ssl.SSLCredentials
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.security.ssl.DHKeyExchange$DHECredentials
super_class: java.lang.Object
{
final javax.crypto.interfaces.DHPublicKey popPublicKey;
descriptor: Ljavax/crypto/interfaces/DHPublicKey;
flags: (0x0010) ACC_FINAL
final sun.security.ssl.SupportedGroupsExtension$NamedGroup namedGroup;
descriptor: Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
flags: (0x0010) ACC_FINAL
void <init>(javax.crypto.interfaces.DHPublicKey, sun.security.ssl.SupportedGroupsExtension$NamedGroup);
descriptor: (Ljavax/crypto/interfaces/DHPublicKey;Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 // sun.security.ssl.DHKeyExchange$DHECredentials this
start local 1 // javax.crypto.interfaces.DHPublicKey popPublicKey
start local 2 // sun.security.ssl.SupportedGroupsExtension$NamedGroup namedGroup
0: .line 68
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 69
aload 0 /* this */
aload 1 /* popPublicKey */
putfield sun.security.ssl.DHKeyExchange$DHECredentials.popPublicKey:Ljavax/crypto/interfaces/DHPublicKey;
2: .line 70
aload 0 /* this */
aload 2 /* namedGroup */
putfield sun.security.ssl.DHKeyExchange$DHECredentials.namedGroup:Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
3: .line 71
return
end local 2 // sun.security.ssl.SupportedGroupsExtension$NamedGroup namedGroup
end local 1 // javax.crypto.interfaces.DHPublicKey popPublicKey
end local 0 // sun.security.ssl.DHKeyExchange$DHECredentials this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/security/ssl/DHKeyExchange$DHECredentials;
0 4 1 popPublicKey Ljavax/crypto/interfaces/DHPublicKey;
0 4 2 namedGroup Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
MethodParameters:
Name Flags
popPublicKey
namedGroup
static sun.security.ssl.DHKeyExchange$DHECredentials valueOf(sun.security.ssl.SupportedGroupsExtension$NamedGroup, byte[]);
descriptor: (Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;[B)Lsun/security/ssl/DHKeyExchange$DHECredentials;
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=6, args_size=2
start local 0 // sun.security.ssl.SupportedGroupsExtension$NamedGroup ng
start local 1 // byte[] encodedPublic
0: .line 76
aload 0 /* ng */
getfield sun.security.ssl.SupportedGroupsExtension$NamedGroup.type:Lsun/security/ssl/SupportedGroupsExtension$NamedGroupType;
getstatic sun.security.ssl.SupportedGroupsExtension$NamedGroupType.NAMED_GROUP_FFDHE:Lsun/security/ssl/SupportedGroupsExtension$NamedGroupType;
if_acmpeq 4
1: .line 77
new java.lang.RuntimeException
dup
2: .line 78
ldc "Credentials decoding: Not FFDHE named group"
3: .line 77
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
4: .line 81
StackMap locals:
StackMap stack:
aload 1 /* encodedPublic */
ifnull 5
aload 1 /* encodedPublic */
arraylength
ifne 6
5: .line 82
StackMap locals:
StackMap stack:
aconst_null
areturn
6: .line 85
StackMap locals:
StackMap stack:
aload 0 /* ng */
invokevirtual sun.security.ssl.SupportedGroupsExtension$NamedGroup.getParameterSpec:()Ljava/security/spec/AlgorithmParameterSpec;
checkcast javax.crypto.spec.DHParameterSpec
astore 2 /* params */
start local 2 // javax.crypto.spec.DHParameterSpec params
7: .line 86
aload 2 /* params */
ifnonnull 9
8: .line 87
aconst_null
areturn
9: .line 90
StackMap locals: javax.crypto.spec.DHParameterSpec
StackMap stack:
ldc "DiffieHellman"
invokestatic sun.security.ssl.JsseJce.getKeyFactory:(Ljava/lang/String;)Ljava/security/KeyFactory;
astore 3 /* kf */
start local 3 // java.security.KeyFactory kf
10: .line 91
new javax.crypto.spec.DHPublicKeySpec
dup
11: .line 92
new java.math.BigInteger
dup
iconst_1
aload 1 /* encodedPublic */
invokespecial java.math.BigInteger.<init>:(I[B)V
12: .line 93
aload 2 /* params */
invokevirtual javax.crypto.spec.DHParameterSpec.getP:()Ljava/math/BigInteger;
aload 2 /* params */
invokevirtual javax.crypto.spec.DHParameterSpec.getG:()Ljava/math/BigInteger;
13: .line 91
invokespecial javax.crypto.spec.DHPublicKeySpec.<init>:(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V
astore 4 /* spec */
start local 4 // javax.crypto.spec.DHPublicKeySpec spec
14: .line 95
aload 3 /* kf */
aload 4 /* spec */
invokevirtual java.security.KeyFactory.generatePublic:(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;
checkcast javax.crypto.interfaces.DHPublicKey
15: .line 94
astore 5 /* publicKey */
start local 5 // javax.crypto.interfaces.DHPublicKey publicKey
16: .line 97
new sun.security.ssl.DHKeyExchange$DHECredentials
dup
aload 5 /* publicKey */
aload 0 /* ng */
invokespecial sun.security.ssl.DHKeyExchange$DHECredentials.<init>:(Ljavax/crypto/interfaces/DHPublicKey;Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;)V
areturn
end local 5 // javax.crypto.interfaces.DHPublicKey publicKey
end local 4 // javax.crypto.spec.DHPublicKeySpec spec
end local 3 // java.security.KeyFactory kf
end local 2 // javax.crypto.spec.DHParameterSpec params
end local 1 // byte[] encodedPublic
end local 0 // sun.security.ssl.SupportedGroupsExtension$NamedGroup ng
LocalVariableTable:
Start End Slot Name Signature
0 17 0 ng Lsun/security/ssl/SupportedGroupsExtension$NamedGroup;
0 17 1 encodedPublic [B
7 17 2 params Ljavax/crypto/spec/DHParameterSpec;
10 17 3 kf Ljava/security/KeyFactory;
14 17 4 spec Ljavax/crypto/spec/DHPublicKeySpec;
16 17 5 publicKey Ljavax/crypto/interfaces/DHPublicKey;
Exceptions:
throws java.io.IOException, java.security.GeneralSecurityException
MethodParameters:
Name Flags
ng
encodedPublic
}
SourceFile: "DHKeyExchange.java"
NestHost: sun.security.ssl.DHKeyExchange
InnerClasses:
final DHECredentials = sun.security.ssl.DHKeyExchange$DHECredentials of sun.security.ssl.DHKeyExchange
final NamedGroup = sun.security.ssl.SupportedGroupsExtension$NamedGroup of sun.security.ssl.SupportedGroupsExtension
final NamedGroupType = sun.security.ssl.SupportedGroupsExtension$NamedGroupType of sun.security.ssl.SupportedGroupsExtension