final class sun.security.ssl.NamedGroup$NamedGroupSpec extends java.lang.Enum<sun.security.ssl.NamedGroup$NamedGroupSpec> implements sun.security.ssl.NamedGroup$NamedGroupScheme
minor version: 0
major version: 59
flags: flags: (0x4030) ACC_FINAL, ACC_SUPER, ACC_ANNOTATION
this_class: sun.security.ssl.NamedGroup$NamedGroupSpec
super_class: java.lang.Enum
{
public static final sun.security.ssl.NamedGroup$NamedGroupSpec NAMED_GROUP_ECDHE;
descriptor: Lsun/security/ssl/NamedGroup$NamedGroupSpec;
flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ANNOTATION
public static final sun.security.ssl.NamedGroup$NamedGroupSpec NAMED_GROUP_FFDHE;
descriptor: Lsun/security/ssl/NamedGroup$NamedGroupSpec;
flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ANNOTATION
public static final sun.security.ssl.NamedGroup$NamedGroupSpec NAMED_GROUP_XDH;
descriptor: Lsun/security/ssl/NamedGroup$NamedGroupSpec;
flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ANNOTATION
public static final sun.security.ssl.NamedGroup$NamedGroupSpec NAMED_GROUP_ARBITRARY;
descriptor: Lsun/security/ssl/NamedGroup$NamedGroupSpec;
flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ANNOTATION
public static final sun.security.ssl.NamedGroup$NamedGroupSpec NAMED_GROUP_NONE;
descriptor: Lsun/security/ssl/NamedGroup$NamedGroupSpec;
flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ANNOTATION
private final java.lang.String algorithm;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final sun.security.ssl.NamedGroup$NamedGroupScheme scheme;
descriptor: Lsun/security/ssl/NamedGroup$NamedGroupScheme;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static final sun.security.ssl.NamedGroup$NamedGroupSpec[] ENUM$VALUES;
descriptor: [Lsun/security/ssl/NamedGroup$NamedGroupSpec;
flags: (0x101a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=0, args_size=0
0: new sun.security.ssl.NamedGroup$NamedGroupSpec
dup
ldc "NAMED_GROUP_ECDHE"
iconst_0
ldc "EC"
getstatic sun.security.ssl.NamedGroup$ECDHEScheme.instance:Lsun/security/ssl/NamedGroup$ECDHEScheme;
invokespecial sun.security.ssl.NamedGroup$NamedGroupSpec.<init>:(Ljava/lang/String;ILjava/lang/String;Lsun/security/ssl/NamedGroup$NamedGroupScheme;)V
putstatic sun.security.ssl.NamedGroup$NamedGroupSpec.NAMED_GROUP_ECDHE:Lsun/security/ssl/NamedGroup$NamedGroupSpec;
1: new sun.security.ssl.NamedGroup$NamedGroupSpec
dup
ldc "NAMED_GROUP_FFDHE"
iconst_1
ldc "DiffieHellman"
getstatic sun.security.ssl.NamedGroup$FFDHEScheme.instance:Lsun/security/ssl/NamedGroup$FFDHEScheme;
invokespecial sun.security.ssl.NamedGroup$NamedGroupSpec.<init>:(Ljava/lang/String;ILjava/lang/String;Lsun/security/ssl/NamedGroup$NamedGroupScheme;)V
putstatic sun.security.ssl.NamedGroup$NamedGroupSpec.NAMED_GROUP_FFDHE:Lsun/security/ssl/NamedGroup$NamedGroupSpec;
2: new sun.security.ssl.NamedGroup$NamedGroupSpec
dup
ldc "NAMED_GROUP_XDH"
iconst_2
ldc "XDH"
getstatic sun.security.ssl.NamedGroup$XDHScheme.instance:Lsun/security/ssl/NamedGroup$XDHScheme;
invokespecial sun.security.ssl.NamedGroup$NamedGroupSpec.<init>:(Ljava/lang/String;ILjava/lang/String;Lsun/security/ssl/NamedGroup$NamedGroupScheme;)V
putstatic sun.security.ssl.NamedGroup$NamedGroupSpec.NAMED_GROUP_XDH:Lsun/security/ssl/NamedGroup$NamedGroupSpec;
3: new sun.security.ssl.NamedGroup$NamedGroupSpec
dup
ldc "NAMED_GROUP_ARBITRARY"
iconst_3
ldc "EC"
aconst_null
invokespecial sun.security.ssl.NamedGroup$NamedGroupSpec.<init>:(Ljava/lang/String;ILjava/lang/String;Lsun/security/ssl/NamedGroup$NamedGroupScheme;)V
putstatic sun.security.ssl.NamedGroup$NamedGroupSpec.NAMED_GROUP_ARBITRARY:Lsun/security/ssl/NamedGroup$NamedGroupSpec;
4: new sun.security.ssl.NamedGroup$NamedGroupSpec
dup
ldc "NAMED_GROUP_NONE"
iconst_4
ldc ""
aconst_null
invokespecial sun.security.ssl.NamedGroup$NamedGroupSpec.<init>:(Ljava/lang/String;ILjava/lang/String;Lsun/security/ssl/NamedGroup$NamedGroupScheme;)V
putstatic sun.security.ssl.NamedGroup$NamedGroupSpec.NAMED_GROUP_NONE:Lsun/security/ssl/NamedGroup$NamedGroupSpec;
5: iconst_5
anewarray sun.security.ssl.NamedGroup$NamedGroupSpec
dup
iconst_0
getstatic sun.security.ssl.NamedGroup$NamedGroupSpec.NAMED_GROUP_ECDHE:Lsun/security/ssl/NamedGroup$NamedGroupSpec;
aastore
dup
iconst_1
getstatic sun.security.ssl.NamedGroup$NamedGroupSpec.NAMED_GROUP_FFDHE:Lsun/security/ssl/NamedGroup$NamedGroupSpec;
aastore
dup
iconst_2
getstatic sun.security.ssl.NamedGroup$NamedGroupSpec.NAMED_GROUP_XDH:Lsun/security/ssl/NamedGroup$NamedGroupSpec;
aastore
dup
iconst_3
getstatic sun.security.ssl.NamedGroup$NamedGroupSpec.NAMED_GROUP_ARBITRARY:Lsun/security/ssl/NamedGroup$NamedGroupSpec;
aastore
dup
iconst_4
getstatic sun.security.ssl.NamedGroup$NamedGroupSpec.NAMED_GROUP_NONE:Lsun/security/ssl/NamedGroup$NamedGroupSpec;
aastore
putstatic sun.security.ssl.NamedGroup$NamedGroupSpec.ENUM$VALUES:[Lsun/security/ssl/NamedGroup$NamedGroupSpec;
return
LocalVariableTable:
Start End Slot Name Signature
private void <init>(java.lang.String, int, java.lang.String, sun.security.ssl.NamedGroup$NamedGroupScheme);
descriptor: (Ljava/lang/String;ILjava/lang/String;Lsun/security/ssl/NamedGroup$NamedGroupScheme;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=5
start local 0 start local 3 start local 4 0: aload 0
aload 1
iload 2
invokespecial java.lang.Enum.<init>:(Ljava/lang/String;I)V
1: aload 0
aload 3
putfield sun.security.ssl.NamedGroup$NamedGroupSpec.algorithm:Ljava/lang/String;
2: aload 0
aload 4
putfield sun.security.ssl.NamedGroup$NamedGroupSpec.scheme:Lsun/security/ssl/NamedGroup$NamedGroupScheme;
3: return
end local 4 end local 3 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/security/ssl/NamedGroup$NamedGroupSpec;
0 4 3 algorithm Ljava/lang/String;
0 4 4 scheme Lsun/security/ssl/NamedGroup$NamedGroupScheme;
MethodParameters:
Name Flags
$enum$name
$enum$ordinal
algorithm
scheme
boolean isSupported(java.util.List<sun.security.ssl.CipherSuite>);
descriptor: (Ljava/util/List;)Z
flags: (0x0000)
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 5
StackMap locals: sun.security.ssl.NamedGroup$NamedGroupSpec java.util.List top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.security.ssl.CipherSuite
astore 2
start local 2 2: aload 2
getfield sun.security.ssl.CipherSuite.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
ifnull 4
3: aload 2
getfield sun.security.ssl.CipherSuite.keyExchange:Lsun/security/ssl/CipherSuite$KeyExchange;
getfield sun.security.ssl.CipherSuite$KeyExchange.groupTypes:[Lsun/security/ssl/NamedGroup$NamedGroupSpec;
aload 0
invokestatic sun.security.ssl.NamedGroup$NamedGroupSpec.arrayContains:([Lsun/security/ssl/NamedGroup$NamedGroupSpec;Lsun/security/ssl/NamedGroup$NamedGroupSpec;)Z
ifeq 5
4: StackMap locals: sun.security.ssl.NamedGroup$NamedGroupSpec java.util.List sun.security.ssl.CipherSuite java.util.Iterator
StackMap stack:
iconst_1
ireturn
end local 2 5: StackMap locals: sun.security.ssl.NamedGroup$NamedGroupSpec java.util.List top java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
6: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/security/ssl/NamedGroup$NamedGroupSpec;
0 7 1 cipherSuites Ljava/util/List<Lsun/security/ssl/CipherSuite;>;
2 5 2 cs Lsun/security/ssl/CipherSuite;
Signature: (Ljava/util/List<Lsun/security/ssl/CipherSuite;>;)Z
MethodParameters:
Name Flags
cipherSuites
static boolean arrayContains(sun.security.ssl.NamedGroup$NamedGroupSpec[], sun.security.ssl.NamedGroup$NamedGroupSpec);
descriptor: ([Lsun/security/ssl/NamedGroup$NamedGroupSpec;Lsun/security/ssl/NamedGroup$NamedGroupSpec;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: aload 0
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 5
StackMap locals: sun.security.ssl.NamedGroup$NamedGroupSpec[] sun.security.ssl.NamedGroup$NamedGroupSpec top int int sun.security.ssl.NamedGroup$NamedGroupSpec[]
StackMap stack:
1: aload 5
iload 3
aaload
astore 2
start local 2 2: aload 2
aload 1
if_acmpne 4
3: iconst_1
ireturn
end local 2 4: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
5: iload 3
iload 4
if_icmplt 1
6: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 namedGroupTypes [Lsun/security/ssl/NamedGroup$NamedGroupSpec;
0 7 1 namedGroupType Lsun/security/ssl/NamedGroup$NamedGroupSpec;
2 4 2 ng Lsun/security/ssl/NamedGroup$NamedGroupSpec;
MethodParameters:
Name Flags
namedGroupTypes
namedGroupType
public byte[] encodePossessionPublicKey(sun.security.ssl.NamedGroupPossession);
descriptor: (Lsun/security/ssl/NamedGroupPossession;)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.ssl.NamedGroup$NamedGroupSpec.scheme:Lsun/security/ssl/NamedGroup$NamedGroupScheme;
ifnull 2
1: aload 0
getfield sun.security.ssl.NamedGroup$NamedGroupSpec.scheme:Lsun/security/ssl/NamedGroup$NamedGroupScheme;
aload 1
invokeinterface sun.security.ssl.NamedGroup$NamedGroupScheme.encodePossessionPublicKey:(Lsun/security/ssl/NamedGroupPossession;)[B
areturn
2: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/security/ssl/NamedGroup$NamedGroupSpec;
0 3 1 namedGroupPossession Lsun/security/ssl/NamedGroupPossession;
MethodParameters:
Name Flags
namedGroupPossession
public sun.security.ssl.SSLCredentials decodeCredentials(sun.security.ssl.NamedGroup, byte[], java.security.AlgorithmConstraints, sun.security.ssl.NamedGroup$ExceptionSupplier);
descriptor: (Lsun/security/ssl/NamedGroup;[BLjava/security/AlgorithmConstraints;Lsun/security/ssl/NamedGroup$ExceptionSupplier;)Lsun/security/ssl/SSLCredentials;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
getfield sun.security.ssl.NamedGroup$NamedGroupSpec.scheme:Lsun/security/ssl/NamedGroup$NamedGroupScheme;
ifnull 4
1: aload 0
getfield sun.security.ssl.NamedGroup$NamedGroupSpec.scheme:Lsun/security/ssl/NamedGroup$NamedGroupScheme;
2: aload 1
aload 2
aload 3
aload 4
3: invokeinterface sun.security.ssl.NamedGroup$NamedGroupScheme.decodeCredentials:(Lsun/security/ssl/NamedGroup;[BLjava/security/AlgorithmConstraints;Lsun/security/ssl/NamedGroup$ExceptionSupplier;)Lsun/security/ssl/SSLCredentials;
areturn
4: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/security/ssl/NamedGroup$NamedGroupSpec;
0 5 1 ng Lsun/security/ssl/NamedGroup;
0 5 2 encoded [B
0 5 3 constraints Ljava/security/AlgorithmConstraints;
0 5 4 onConstraintFail Lsun/security/ssl/NamedGroup$ExceptionSupplier;
Exceptions:
throws java.io.IOException, java.security.GeneralSecurityException
MethodParameters:
Name Flags
ng
encoded
constraints
onConstraintFail
public sun.security.ssl.SSLPossession createPossession(sun.security.ssl.NamedGroup, java.security.SecureRandom);
descriptor: (Lsun/security/ssl/NamedGroup;Ljava/security/SecureRandom;)Lsun/security/ssl/SSLPossession;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield sun.security.ssl.NamedGroup$NamedGroupSpec.scheme:Lsun/security/ssl/NamedGroup$NamedGroupScheme;
ifnull 2
1: aload 0
getfield sun.security.ssl.NamedGroup$NamedGroupSpec.scheme:Lsun/security/ssl/NamedGroup$NamedGroupScheme;
aload 1
aload 2
invokeinterface sun.security.ssl.NamedGroup$NamedGroupScheme.createPossession:(Lsun/security/ssl/NamedGroup;Ljava/security/SecureRandom;)Lsun/security/ssl/SSLPossession;
areturn
2: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/security/ssl/NamedGroup$NamedGroupSpec;
0 3 1 ng Lsun/security/ssl/NamedGroup;
0 3 2 random Ljava/security/SecureRandom;
MethodParameters:
Name Flags
ng
random
public sun.security.ssl.SSLKeyDerivation createKeyDerivation(sun.security.ssl.HandshakeContext);
descriptor: (Lsun/security/ssl/HandshakeContext;)Lsun/security/ssl/SSLKeyDerivation;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.security.ssl.NamedGroup$NamedGroupSpec.scheme:Lsun/security/ssl/NamedGroup$NamedGroupScheme;
ifnull 2
1: aload 0
getfield sun.security.ssl.NamedGroup$NamedGroupSpec.scheme:Lsun/security/ssl/NamedGroup$NamedGroupScheme;
aload 1
invokeinterface sun.security.ssl.NamedGroup$NamedGroupScheme.createKeyDerivation:(Lsun/security/ssl/HandshakeContext;)Lsun/security/ssl/SSLKeyDerivation;
areturn
2: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/security/ssl/NamedGroup$NamedGroupSpec;
0 3 1 hc Lsun/security/ssl/HandshakeContext;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
hc
public static sun.security.ssl.NamedGroup$NamedGroupSpec[] values();
descriptor: ()[Lsun/security/ssl/NamedGroup$NamedGroupSpec;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=3, args_size=0
0: getstatic sun.security.ssl.NamedGroup$NamedGroupSpec.ENUM$VALUES:[Lsun/security/ssl/NamedGroup$NamedGroupSpec;
dup
astore 0
iconst_0
aload 0
arraylength
dup
istore 1
anewarray sun.security.ssl.NamedGroup$NamedGroupSpec
dup
astore 2
iconst_0
iload 1
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
aload 2
areturn
LocalVariableTable:
Start End Slot Name Signature
public static sun.security.ssl.NamedGroup$NamedGroupSpec valueOf(java.lang.String);
descriptor: (Ljava/lang/String;)Lsun/security/ssl/NamedGroup$NamedGroupSpec;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
0: ldc Lsun/security/ssl/NamedGroup$NamedGroupSpec;
aload 0
invokestatic java.lang.Enum.valueOf:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;
checkcast sun.security.ssl.NamedGroup$NamedGroupSpec
areturn
LocalVariableTable:
Start End Slot Name Signature
MethodParameters:
Name Flags
name
}
Signature: Ljava/lang/Enum<Lsun/security/ssl/NamedGroup$NamedGroupSpec;>;Lsun/security/ssl/NamedGroup$NamedGroupScheme;
SourceFile: "NamedGroup.java"
NestHost: sun.security.ssl.NamedGroup
InnerClasses:
final KeyExchange = sun.security.ssl.CipherSuite$KeyExchange of sun.security.ssl.CipherSuite
private ECDHEScheme = sun.security.ssl.NamedGroup$ECDHEScheme of sun.security.ssl.NamedGroup
abstract ExceptionSupplier = sun.security.ssl.NamedGroup$ExceptionSupplier of sun.security.ssl.NamedGroup
private FFDHEScheme = sun.security.ssl.NamedGroup$FFDHEScheme of sun.security.ssl.NamedGroup
private abstract NamedGroupScheme = sun.security.ssl.NamedGroup$NamedGroupScheme of sun.security.ssl.NamedGroup
final NamedGroupSpec = sun.security.ssl.NamedGroup$NamedGroupSpec of sun.security.ssl.NamedGroup
private XDHScheme = sun.security.ssl.NamedGroup$XDHScheme of sun.security.ssl.NamedGroup