final class sun.security.ssl.SupportedVersionsExtension$CHSupportedVersionsProducer implements sun.security.ssl.HandshakeProducer
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.security.ssl.SupportedVersionsExtension$CHSupportedVersionsProducer
super_class: java.lang.Object
{
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 // sun.security.ssl.SupportedVersionsExtension$CHSupportedVersionsProducer this
0: .line 155
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 157
return
end local 0 // sun.security.ssl.SupportedVersionsExtension$CHSupportedVersionsProducer this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/ssl/SupportedVersionsExtension$CHSupportedVersionsProducer;
public byte[] produce(sun.security.ssl.ConnectionContext, sun.security.ssl.SSLHandshake$HandshakeMessage);
descriptor: (Lsun/security/ssl/ConnectionContext;Lsun/security/ssl/SSLHandshake$HandshakeMessage;)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=11, args_size=3
start local 0 // sun.security.ssl.SupportedVersionsExtension$CHSupportedVersionsProducer this
start local 1 // sun.security.ssl.ConnectionContext context
start local 2 // sun.security.ssl.SSLHandshake$HandshakeMessage message
0: .line 163
aload 1 /* context */
checkcast sun.security.ssl.ClientHandshakeContext
astore 3 /* chc */
start local 3 // sun.security.ssl.ClientHandshakeContext chc
1: .line 166
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
getstatic sun.security.ssl.SSLExtension.CH_SUPPORTED_VERSIONS:Lsun/security/ssl/SSLExtension;
invokevirtual sun.security.ssl.SSLConfiguration.isAvailable:(Lsun/security/ssl/SSLExtension;)Z
ifne 8
2: .line 167
getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 7
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 7
3: .line 169
new java.lang.StringBuilder
dup
ldc "Ignore unavailable extension: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
4: .line 170
getstatic sun.security.ssl.SSLExtension.CH_SUPPORTED_VERSIONS:Lsun/security/ssl/SSLExtension;
getfield sun.security.ssl.SSLExtension.name:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
5: .line 169
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
anewarray java.lang.Object
6: .line 168
invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
7: .line 172
StackMap locals: sun.security.ssl.ClientHandshakeContext
StackMap stack:
aconst_null
areturn
8: .line 178
StackMap locals:
StackMap stack:
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.activeProtocols:Ljava/util/List;
invokeinterface java.util.List.size:()I
newarray 10
astore 4 /* protocols */
start local 4 // int[] protocols
9: .line 179
aload 4 /* protocols */
arraylength
iconst_2
imul
istore 5 /* verLen */
start local 5 // int verLen
10: .line 180
iload 5 /* verLen */
iconst_1
iadd
newarray 8
astore 6 /* extData */
start local 6 // byte[] extData
11: .line 181
aload 6 /* extData */
iconst_0
iload 5 /* verLen */
sipush 255
iand
i2b
bastore
12: .line 182
iconst_0
istore 7 /* i */
start local 7 // int i
13: iconst_1
istore 8 /* j */
start local 8 // int j
14: .line 183
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.activeProtocols:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 10
goto 19
StackMap locals: sun.security.ssl.SupportedVersionsExtension$CHSupportedVersionsProducer sun.security.ssl.ConnectionContext sun.security.ssl.SSLHandshake$HandshakeMessage sun.security.ssl.ClientHandshakeContext int[] int byte[] int int top java.util.Iterator
StackMap stack:
15: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.security.ssl.ProtocolVersion
astore 9 /* pv */
start local 9 // sun.security.ssl.ProtocolVersion pv
16: .line 184
aload 4 /* protocols */
iload 7 /* i */
iinc 7 /* i */ 1
aload 9 /* pv */
getfield sun.security.ssl.ProtocolVersion.id:I
iastore
17: .line 185
aload 6 /* extData */
iload 8 /* j */
iinc 8 /* j */ 1
aload 9 /* pv */
getfield sun.security.ssl.ProtocolVersion.major:B
bastore
18: .line 186
aload 6 /* extData */
iload 8 /* j */
iinc 8 /* j */ 1
aload 9 /* pv */
getfield sun.security.ssl.ProtocolVersion.minor:B
bastore
end local 9 // sun.security.ssl.ProtocolVersion pv
19: .line 183
StackMap locals:
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 15
20: .line 190
aload 3 /* chc */
getfield sun.security.ssl.ClientHandshakeContext.handshakeExtensions:Ljava/util/Map;
getstatic sun.security.ssl.SSLExtension.CH_SUPPORTED_VERSIONS:Lsun/security/ssl/SSLExtension;
21: .line 191
new sun.security.ssl.SupportedVersionsExtension$CHSupportedVersionsSpec
dup
aload 4 /* protocols */
invokespecial sun.security.ssl.SupportedVersionsExtension$CHSupportedVersionsSpec.<init>:([I)V
22: .line 190
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
23: .line 193
aload 6 /* extData */
areturn
end local 8 // int j
end local 7 // int i
end local 6 // byte[] extData
end local 5 // int verLen
end local 4 // int[] protocols
end local 3 // sun.security.ssl.ClientHandshakeContext chc
end local 2 // sun.security.ssl.SSLHandshake$HandshakeMessage message
end local 1 // sun.security.ssl.ConnectionContext context
end local 0 // sun.security.ssl.SupportedVersionsExtension$CHSupportedVersionsProducer this
LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lsun/security/ssl/SupportedVersionsExtension$CHSupportedVersionsProducer;
0 24 1 context Lsun/security/ssl/ConnectionContext;
0 24 2 message Lsun/security/ssl/SSLHandshake$HandshakeMessage;
1 24 3 chc Lsun/security/ssl/ClientHandshakeContext;
9 24 4 protocols [I
10 24 5 verLen I
11 24 6 extData [B
13 24 7 i I
14 24 8 j I
16 19 9 pv Lsun/security/ssl/ProtocolVersion;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
context
message
}
SourceFile: "SupportedVersionsExtension.java"
NestHost: sun.security.ssl.SupportedVersionsExtension
InnerClasses:
abstract HandshakeMessage = sun.security.ssl.SSLHandshake$HandshakeMessage of sun.security.ssl.SSLHandshake
private final CHSupportedVersionsProducer = sun.security.ssl.SupportedVersionsExtension$CHSupportedVersionsProducer of sun.security.ssl.SupportedVersionsExtension
final CHSupportedVersionsSpec = sun.security.ssl.SupportedVersionsExtension$CHSupportedVersionsSpec of sun.security.ssl.SupportedVersionsExtension