final class sun.security.ssl.ChangeCipherSpec$T10ChangeCipherSpecConsumer implements sun.security.ssl.SSLConsumer
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.security.ssl.ChangeCipherSpec$T10ChangeCipherSpecConsumer
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.ChangeCipherSpec$T10ChangeCipherSpecConsumer this
0: .line 131
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 133
return
end local 0 // sun.security.ssl.ChangeCipherSpec$T10ChangeCipherSpecConsumer this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/ssl/ChangeCipherSpec$T10ChangeCipherSpecConsumer;
public void consume(sun.security.ssl.ConnectionContext, java.nio.ByteBuffer);
descriptor: (Lsun/security/ssl/ConnectionContext;Ljava/nio/ByteBuffer;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=14, args_size=3
start local 0 // sun.security.ssl.ChangeCipherSpec$T10ChangeCipherSpecConsumer this
start local 1 // sun.security.ssl.ConnectionContext context
start local 2 // java.nio.ByteBuffer message
0: .line 138
aload 1 /* context */
checkcast sun.security.ssl.TransportContext
astore 3 /* tc */
start local 3 // sun.security.ssl.TransportContext tc
1: .line 141
aload 3 /* tc */
getfield sun.security.ssl.TransportContext.consumers:Ljava/util/Map;
getstatic sun.security.ssl.ContentType.CHANGE_CIPHER_SPEC:Lsun/security/ssl/ContentType;
getfield sun.security.ssl.ContentType.id:B
invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
2: .line 144
aload 2 /* message */
invokevirtual java.nio.ByteBuffer.remaining:()I
iconst_1
if_icmpne 3
aload 2 /* message */
invokevirtual java.nio.ByteBuffer.get:()B
iconst_1
if_icmpeq 6
3: .line 145
StackMap locals: sun.security.ssl.TransportContext
StackMap stack:
aload 3 /* tc */
getstatic sun.security.ssl.Alert.UNEXPECTED_MESSAGE:Lsun/security/ssl/Alert;
4: .line 146
ldc "Malformed or unexpected ChangeCipherSpec message"
5: .line 145
invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
6: .line 148
StackMap locals:
StackMap stack:
getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 8
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 8
7: .line 149
ldc "Consuming ChangeCipherSpec message"
iconst_0
anewarray java.lang.Object
invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
8: .line 153
StackMap locals:
StackMap stack:
aload 3 /* tc */
getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
ifnonnull 12
9: .line 154
aload 3 /* tc */
getstatic sun.security.ssl.Alert.HANDSHAKE_FAILURE:Lsun/security/ssl/Alert;
10: .line 155
ldc "Unexpected ChangeCipherSpec message"
11: .line 154
invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
12: .line 159
StackMap locals:
StackMap stack:
aload 3 /* tc */
getfield sun.security.ssl.TransportContext.handshakeContext:Lsun/security/ssl/HandshakeContext;
astore 4 /* hc */
start local 4 // sun.security.ssl.HandshakeContext hc
13: .line 161
aload 4 /* hc */
getfield sun.security.ssl.HandshakeContext.handshakeKeyDerivation:Lsun/security/ssl/SSLKeyDerivation;
ifnonnull 17
14: .line 162
aload 3 /* tc */
getstatic sun.security.ssl.Alert.UNEXPECTED_MESSAGE:Lsun/security/ssl/Alert;
15: .line 163
ldc "Unexpected ChangeCipherSpec message"
16: .line 162
invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
17: .line 166
StackMap locals: sun.security.ssl.HandshakeContext
StackMap stack:
aload 4 /* hc */
getfield sun.security.ssl.HandshakeContext.handshakeKeyDerivation:Lsun/security/ssl/SSLKeyDerivation;
astore 5 /* kd */
start local 5 // sun.security.ssl.SSLKeyDerivation kd
18: .line 167
aload 5 /* kd */
instanceof sun.security.ssl.SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation
ifeq 64
19: .line 168
aload 5 /* kd */
checkcast sun.security.ssl.SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation
astore 6 /* tkd */
start local 6 // sun.security.ssl.SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation tkd
20: .line 169
aload 4 /* hc */
getfield sun.security.ssl.HandshakeContext.negotiatedCipherSuite:Lsun/security/ssl/CipherSuite;
astore 7 /* ncs */
start local 7 // sun.security.ssl.CipherSuite ncs
21: .line 171
aload 7 /* ncs */
getfield sun.security.ssl.CipherSuite.bulkCipher:Lsun/security/ssl/SSLCipher;
getfield sun.security.ssl.SSLCipher.cipherType:Lsun/security/ssl/CipherType;
getstatic sun.security.ssl.CipherType.AEAD_CIPHER:Lsun/security/ssl/CipherType;
if_acmpne 25
22: .line 173
aload 4 /* hc */
getfield sun.security.ssl.HandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
invokestatic sun.security.ssl.Authenticator.valueOf:(Lsun/security/ssl/ProtocolVersion;)Lsun/security/ssl/Authenticator;
23: .line 172
astore 8 /* readAuthenticator */
start local 8 // sun.security.ssl.Authenticator readAuthenticator
24: .line 174
goto 34
end local 8 // sun.security.ssl.Authenticator readAuthenticator
25: .line 177
StackMap locals: sun.security.ssl.SSLKeyDerivation sun.security.ssl.SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation sun.security.ssl.CipherSuite
StackMap stack:
aload 4 /* hc */
getfield sun.security.ssl.HandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
aload 7 /* ncs */
getfield sun.security.ssl.CipherSuite.macAlg:Lsun/security/ssl/CipherSuite$MacAlg;
26: .line 178
aload 6 /* tkd */
aload 4 /* hc */
getfield sun.security.ssl.HandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
getfield sun.security.ssl.SSLConfiguration.isClientMode:Z
ifeq 28
27: .line 179
ldc "serverMacKey"
goto 29
StackMap locals: sun.security.ssl.ChangeCipherSpec$T10ChangeCipherSpecConsumer sun.security.ssl.ConnectionContext java.nio.ByteBuffer sun.security.ssl.TransportContext sun.security.ssl.HandshakeContext sun.security.ssl.SSLKeyDerivation sun.security.ssl.SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation sun.security.ssl.CipherSuite
StackMap stack: sun.security.ssl.ProtocolVersion sun.security.ssl.CipherSuite$MacAlg sun.security.ssl.SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation
28: ldc "clientMacKey"
29: .line 178
StackMap locals: sun.security.ssl.ChangeCipherSpec$T10ChangeCipherSpecConsumer sun.security.ssl.ConnectionContext java.nio.ByteBuffer sun.security.ssl.TransportContext sun.security.ssl.HandshakeContext sun.security.ssl.SSLKeyDerivation sun.security.ssl.SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation sun.security.ssl.CipherSuite
StackMap stack: sun.security.ssl.ProtocolVersion sun.security.ssl.CipherSuite$MacAlg sun.security.ssl.SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation java.lang.String
invokevirtual sun.security.ssl.SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation.getTrafficKey:(Ljava/lang/String;)Ljavax/crypto/SecretKey;
30: .line 176
invokestatic sun.security.ssl.Authenticator.valueOf:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/CipherSuite$MacAlg;Ljavax/crypto/SecretKey;)Lsun/security/ssl/Authenticator;
astore 8 /* readAuthenticator */
start local 8 // sun.security.ssl.Authenticator readAuthenticator
31: .line 180
goto 34
end local 8 // sun.security.ssl.Authenticator readAuthenticator
StackMap locals:
StackMap stack: java.security.GeneralSecurityException
32: astore 9 /* e */
start local 9 // java.security.GeneralSecurityException e
33: .line 182
new javax.net.ssl.SSLException
dup
ldc "Algorithm missing: "
aload 9 /* e */
invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 9 // java.security.GeneralSecurityException e
start local 8 // sun.security.ssl.Authenticator readAuthenticator
34: .line 187
StackMap locals: sun.security.ssl.Authenticator
StackMap stack:
aload 6 /* tkd */
aload 4 /* hc */
getfield sun.security.ssl.HandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
getfield sun.security.ssl.SSLConfiguration.isClientMode:Z
ifeq 36
35: .line 188
ldc "serverWriteKey"
goto 37
StackMap locals:
StackMap stack: sun.security.ssl.SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation
36: ldc "clientWriteKey"
37: .line 187
StackMap locals: sun.security.ssl.ChangeCipherSpec$T10ChangeCipherSpecConsumer sun.security.ssl.ConnectionContext java.nio.ByteBuffer sun.security.ssl.TransportContext sun.security.ssl.HandshakeContext sun.security.ssl.SSLKeyDerivation sun.security.ssl.SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation sun.security.ssl.CipherSuite sun.security.ssl.Authenticator
StackMap stack: sun.security.ssl.SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation java.lang.String
invokevirtual sun.security.ssl.SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation.getTrafficKey:(Ljava/lang/String;)Ljavax/crypto/SecretKey;
38: .line 186
astore 9 /* readKey */
start local 9 // javax.crypto.SecretKey readKey
39: .line 190
aload 6 /* tkd */
aload 4 /* hc */
getfield sun.security.ssl.HandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
getfield sun.security.ssl.SSLConfiguration.isClientMode:Z
ifeq 41
40: .line 191
ldc "serverWriteIv"
goto 42
StackMap locals: sun.security.ssl.ChangeCipherSpec$T10ChangeCipherSpecConsumer sun.security.ssl.ConnectionContext java.nio.ByteBuffer sun.security.ssl.TransportContext sun.security.ssl.HandshakeContext sun.security.ssl.SSLKeyDerivation sun.security.ssl.SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation sun.security.ssl.CipherSuite sun.security.ssl.Authenticator javax.crypto.SecretKey
StackMap stack: sun.security.ssl.SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation
41: ldc "clientWriteIv"
42: .line 190
StackMap locals: sun.security.ssl.ChangeCipherSpec$T10ChangeCipherSpecConsumer sun.security.ssl.ConnectionContext java.nio.ByteBuffer sun.security.ssl.TransportContext sun.security.ssl.HandshakeContext sun.security.ssl.SSLKeyDerivation sun.security.ssl.SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation sun.security.ssl.CipherSuite sun.security.ssl.Authenticator javax.crypto.SecretKey
StackMap stack: sun.security.ssl.SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation java.lang.String
invokevirtual sun.security.ssl.SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation.getTrafficKey:(Ljava/lang/String;)Ljavax/crypto/SecretKey;
43: .line 189
astore 10 /* readIv */
start local 10 // javax.crypto.SecretKey readIv
44: .line 192
aload 10 /* readIv */
ifnonnull 45
aconst_null
goto 46
45: .line 193
StackMap locals: javax.crypto.SecretKey
StackMap stack:
new javax.crypto.spec.IvParameterSpec
dup
aload 10 /* readIv */
invokeinterface javax.crypto.SecretKey.getEncoded:()[B
invokespecial javax.crypto.spec.IvParameterSpec.<init>:([B)V
46: .line 192
StackMap locals:
StackMap stack: javax.crypto.spec.IvParameterSpec
astore 11 /* iv */
start local 11 // javax.crypto.spec.IvParameterSpec iv
47: .line 196
aload 7 /* ncs */
getfield sun.security.ssl.CipherSuite.bulkCipher:Lsun/security/ssl/SSLCipher;
48: .line 197
aload 8 /* readAuthenticator */
49: .line 198
aload 4 /* hc */
getfield sun.security.ssl.HandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
aload 9 /* readKey */
aload 11 /* iv */
50: .line 199
aload 4 /* hc */
getfield sun.security.ssl.HandshakeContext.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
51: .line 196
invokevirtual sun.security.ssl.SSLCipher.createReadCipher:(Lsun/security/ssl/Authenticator;Lsun/security/ssl/ProtocolVersion;Ljavax/crypto/SecretKey;Ljavax/crypto/spec/IvParameterSpec;Ljava/security/SecureRandom;)Lsun/security/ssl/SSLCipher$SSLReadCipher;
astore 12 /* readCipher */
start local 12 // sun.security.ssl.SSLCipher$SSLReadCipher readCipher
52: .line 200
goto 55
end local 12 // sun.security.ssl.SSLCipher$SSLReadCipher readCipher
StackMap locals: sun.security.ssl.ChangeCipherSpec$T10ChangeCipherSpecConsumer sun.security.ssl.ConnectionContext java.nio.ByteBuffer sun.security.ssl.TransportContext sun.security.ssl.HandshakeContext sun.security.ssl.SSLKeyDerivation sun.security.ssl.SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation sun.security.ssl.CipherSuite sun.security.ssl.Authenticator javax.crypto.SecretKey javax.crypto.SecretKey javax.crypto.spec.IvParameterSpec
StackMap stack: java.security.GeneralSecurityException
53: astore 13 /* gse */
start local 13 // java.security.GeneralSecurityException gse
54: .line 202
new javax.net.ssl.SSLException
dup
ldc "Algorithm missing: "
aload 13 /* gse */
invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 13 // java.security.GeneralSecurityException gse
start local 12 // sun.security.ssl.SSLCipher$SSLReadCipher readCipher
55: .line 205
StackMap locals: sun.security.ssl.SSLCipher$SSLReadCipher
StackMap stack:
aload 12 /* readCipher */
ifnonnull 62
56: .line 206
aload 4 /* hc */
getfield sun.security.ssl.HandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.ILLEGAL_PARAMETER:Lsun/security/ssl/Alert;
57: .line 207
new java.lang.StringBuilder
dup
ldc "Illegal cipher suite ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4 /* hc */
getfield sun.security.ssl.HandshakeContext.negotiatedCipherSuite:Lsun/security/ssl/CipherSuite;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
58: .line 208
ldc ") and protocol version ("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4 /* hc */
getfield sun.security.ssl.HandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
59: .line 209
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
60: .line 207
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
61: .line 206
invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
62: .line 212
StackMap locals:
StackMap stack:
aload 3 /* tc */
getfield sun.security.ssl.TransportContext.inputRecord:Lsun/security/ssl/InputRecord;
aload 12 /* readCipher */
invokevirtual sun.security.ssl.InputRecord.changeReadCiphers:(Lsun/security/ssl/SSLCipher$SSLReadCipher;)V
end local 12 // sun.security.ssl.SSLCipher$SSLReadCipher readCipher
end local 11 // javax.crypto.spec.IvParameterSpec iv
end local 10 // javax.crypto.SecretKey readIv
end local 9 // javax.crypto.SecretKey readKey
end local 8 // sun.security.ssl.Authenticator readAuthenticator
end local 7 // sun.security.ssl.CipherSuite ncs
end local 6 // sun.security.ssl.SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation tkd
63: .line 213
goto 65
64: .line 214
StackMap locals: sun.security.ssl.ChangeCipherSpec$T10ChangeCipherSpecConsumer sun.security.ssl.ConnectionContext java.nio.ByteBuffer sun.security.ssl.TransportContext sun.security.ssl.HandshakeContext sun.security.ssl.SSLKeyDerivation
StackMap stack:
new java.lang.UnsupportedOperationException
dup
ldc "Not supported."
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
65: .line 216
StackMap locals:
StackMap stack:
return
end local 5 // sun.security.ssl.SSLKeyDerivation kd
end local 4 // sun.security.ssl.HandshakeContext hc
end local 3 // sun.security.ssl.TransportContext tc
end local 2 // java.nio.ByteBuffer message
end local 1 // sun.security.ssl.ConnectionContext context
end local 0 // sun.security.ssl.ChangeCipherSpec$T10ChangeCipherSpecConsumer this
LocalVariableTable:
Start End Slot Name Signature
0 66 0 this Lsun/security/ssl/ChangeCipherSpec$T10ChangeCipherSpecConsumer;
0 66 1 context Lsun/security/ssl/ConnectionContext;
0 66 2 message Ljava/nio/ByteBuffer;
1 66 3 tc Lsun/security/ssl/TransportContext;
13 66 4 hc Lsun/security/ssl/HandshakeContext;
18 66 5 kd Lsun/security/ssl/SSLKeyDerivation;
20 63 6 tkd Lsun/security/ssl/SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation;
21 63 7 ncs Lsun/security/ssl/CipherSuite;
24 25 8 readAuthenticator Lsun/security/ssl/Authenticator;
31 32 8 readAuthenticator Lsun/security/ssl/Authenticator;
34 63 8 readAuthenticator Lsun/security/ssl/Authenticator;
33 34 9 e Ljava/security/GeneralSecurityException;
39 63 9 readKey Ljavax/crypto/SecretKey;
44 63 10 readIv Ljavax/crypto/SecretKey;
47 63 11 iv Ljavax/crypto/spec/IvParameterSpec;
52 53 12 readCipher Lsun/security/ssl/SSLCipher$SSLReadCipher;
55 63 12 readCipher Lsun/security/ssl/SSLCipher$SSLReadCipher;
54 55 13 gse Ljava/security/GeneralSecurityException;
Exception table:
from to target type
25 31 32 Class java.security.NoSuchAlgorithmException
25 31 32 Class java.security.InvalidKeyException
47 52 53 Class java.security.GeneralSecurityException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
context
message
}
SourceFile: "ChangeCipherSpec.java"
NestHost: sun.security.ssl.ChangeCipherSpec
InnerClasses:
abstract MAC = sun.security.ssl.Authenticator$MAC of sun.security.ssl.Authenticator
private final T10ChangeCipherSpecConsumer = sun.security.ssl.ChangeCipherSpec$T10ChangeCipherSpecConsumer of sun.security.ssl.ChangeCipherSpec
final MacAlg = sun.security.ssl.CipherSuite$MacAlg of sun.security.ssl.CipherSuite
abstract SSLReadCipher = sun.security.ssl.SSLCipher$SSLReadCipher of sun.security.ssl.SSLCipher
final LegacyTrafficKeyDerivation = sun.security.ssl.SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation of sun.security.ssl.SSLTrafficKeyDerivation