final class sun.security.ssl.ChangeCipherSpec$T10ChangeCipherSpecProducer implements sun.security.ssl.HandshakeProducer
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.security.ssl.ChangeCipherSpec$T10ChangeCipherSpecProducer
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$T10ChangeCipherSpecProducer this
0: .line 58
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 60
return
end local 0 // sun.security.ssl.ChangeCipherSpec$T10ChangeCipherSpecProducer this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/ssl/ChangeCipherSpec$T10ChangeCipherSpecProducer;
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=6, locals=13, args_size=3
start local 0 // sun.security.ssl.ChangeCipherSpec$T10ChangeCipherSpecProducer this
start local 1 // sun.security.ssl.ConnectionContext context
start local 2 // sun.security.ssl.SSLHandshake$HandshakeMessage message
0: .line 65
aload 1 /* context */
checkcast sun.security.ssl.HandshakeContext
astore 3 /* hc */
start local 3 // sun.security.ssl.HandshakeContext hc
1: .line 66
aload 3 /* hc */
getfield sun.security.ssl.HandshakeContext.handshakeKeyDerivation:Lsun/security/ssl/SSLKeyDerivation;
astore 4 /* kd */
start local 4 // sun.security.ssl.SSLKeyDerivation kd
2: .line 68
aload 4 /* kd */
instanceof sun.security.ssl.SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation
ifne 4
3: .line 69
new java.lang.UnsupportedOperationException
dup
ldc "Not supported."
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
4: .line 71
StackMap locals: sun.security.ssl.HandshakeContext sun.security.ssl.SSLKeyDerivation
StackMap stack:
aload 4 /* kd */
checkcast sun.security.ssl.SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation
astore 5 /* tkd */
start local 5 // sun.security.ssl.SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation tkd
5: .line 72
aload 3 /* hc */
getfield sun.security.ssl.HandshakeContext.negotiatedCipherSuite:Lsun/security/ssl/CipherSuite;
astore 6 /* ncs */
start local 6 // sun.security.ssl.CipherSuite ncs
6: .line 74
aload 6 /* 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 10
7: .line 76
aload 3 /* 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;
8: .line 75
astore 7 /* writeAuthenticator */
start local 7 // sun.security.ssl.Authenticator writeAuthenticator
9: .line 77
goto 19
end local 7 // sun.security.ssl.Authenticator writeAuthenticator
10: .line 80
StackMap locals: sun.security.ssl.SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation sun.security.ssl.CipherSuite
StackMap stack:
aload 3 /* hc */
getfield sun.security.ssl.HandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
aload 6 /* ncs */
getfield sun.security.ssl.CipherSuite.macAlg:Lsun/security/ssl/CipherSuite$MacAlg;
11: .line 81
aload 5 /* tkd */
aload 3 /* hc */
getfield sun.security.ssl.HandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
getfield sun.security.ssl.SSLConfiguration.isClientMode:Z
ifeq 13
12: .line 82
ldc "clientMacKey"
goto 14
StackMap locals: sun.security.ssl.ChangeCipherSpec$T10ChangeCipherSpecProducer sun.security.ssl.ConnectionContext sun.security.ssl.SSLHandshake$HandshakeMessage 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
13: ldc "serverMacKey"
14: .line 81
StackMap locals: sun.security.ssl.ChangeCipherSpec$T10ChangeCipherSpecProducer sun.security.ssl.ConnectionContext sun.security.ssl.SSLHandshake$HandshakeMessage 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;
15: .line 79
invokestatic sun.security.ssl.Authenticator.valueOf:(Lsun/security/ssl/ProtocolVersion;Lsun/security/ssl/CipherSuite$MacAlg;Ljavax/crypto/SecretKey;)Lsun/security/ssl/Authenticator;
astore 7 /* writeAuthenticator */
start local 7 // sun.security.ssl.Authenticator writeAuthenticator
16: .line 83
goto 19
end local 7 // sun.security.ssl.Authenticator writeAuthenticator
StackMap locals:
StackMap stack: java.security.GeneralSecurityException
17: astore 8 /* e */
start local 8 // java.security.GeneralSecurityException e
18: .line 85
new javax.net.ssl.SSLException
dup
ldc "Algorithm missing: "
aload 8 /* e */
invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 8 // java.security.GeneralSecurityException e
start local 7 // sun.security.ssl.Authenticator writeAuthenticator
19: .line 90
StackMap locals: sun.security.ssl.Authenticator
StackMap stack:
aload 5 /* tkd */
aload 3 /* hc */
getfield sun.security.ssl.HandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
getfield sun.security.ssl.SSLConfiguration.isClientMode:Z
ifeq 21
20: .line 91
ldc "clientWriteKey"
goto 22
StackMap locals:
StackMap stack: sun.security.ssl.SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation
21: ldc "serverWriteKey"
22: .line 90
StackMap locals: sun.security.ssl.ChangeCipherSpec$T10ChangeCipherSpecProducer sun.security.ssl.ConnectionContext sun.security.ssl.SSLHandshake$HandshakeMessage 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;
23: .line 89
astore 8 /* writeKey */
start local 8 // javax.crypto.SecretKey writeKey
24: .line 93
aload 5 /* tkd */
aload 3 /* hc */
getfield sun.security.ssl.HandshakeContext.sslConfig:Lsun/security/ssl/SSLConfiguration;
getfield sun.security.ssl.SSLConfiguration.isClientMode:Z
ifeq 26
25: .line 94
ldc "clientWriteIv"
goto 27
StackMap locals: sun.security.ssl.ChangeCipherSpec$T10ChangeCipherSpecProducer sun.security.ssl.ConnectionContext sun.security.ssl.SSLHandshake$HandshakeMessage 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
26: ldc "serverWriteIv"
27: .line 93
StackMap locals: sun.security.ssl.ChangeCipherSpec$T10ChangeCipherSpecProducer sun.security.ssl.ConnectionContext sun.security.ssl.SSLHandshake$HandshakeMessage 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;
28: .line 92
astore 9 /* writeIv */
start local 9 // javax.crypto.SecretKey writeIv
29: .line 95
aload 9 /* writeIv */
ifnonnull 30
aconst_null
goto 31
30: .line 96
StackMap locals: javax.crypto.SecretKey
StackMap stack:
new javax.crypto.spec.IvParameterSpec
dup
aload 9 /* writeIv */
invokeinterface javax.crypto.SecretKey.getEncoded:()[B
invokespecial javax.crypto.spec.IvParameterSpec.<init>:([B)V
31: .line 95
StackMap locals:
StackMap stack: javax.crypto.spec.IvParameterSpec
astore 10 /* iv */
start local 10 // javax.crypto.spec.IvParameterSpec iv
32: .line 99
aload 6 /* ncs */
getfield sun.security.ssl.CipherSuite.bulkCipher:Lsun/security/ssl/SSLCipher;
33: .line 100
aload 7 /* writeAuthenticator */
34: .line 101
aload 3 /* hc */
getfield sun.security.ssl.HandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
aload 8 /* writeKey */
aload 10 /* iv */
35: .line 102
aload 3 /* hc */
getfield sun.security.ssl.HandshakeContext.sslContext:Lsun/security/ssl/SSLContextImpl;
invokevirtual sun.security.ssl.SSLContextImpl.getSecureRandom:()Ljava/security/SecureRandom;
36: .line 99
invokevirtual sun.security.ssl.SSLCipher.createWriteCipher:(Lsun/security/ssl/Authenticator;Lsun/security/ssl/ProtocolVersion;Ljavax/crypto/SecretKey;Ljavax/crypto/spec/IvParameterSpec;Ljava/security/SecureRandom;)Lsun/security/ssl/SSLCipher$SSLWriteCipher;
astore 11 /* writeCipher */
start local 11 // sun.security.ssl.SSLCipher$SSLWriteCipher writeCipher
37: .line 103
goto 40
end local 11 // sun.security.ssl.SSLCipher$SSLWriteCipher writeCipher
StackMap locals: sun.security.ssl.ChangeCipherSpec$T10ChangeCipherSpecProducer sun.security.ssl.ConnectionContext sun.security.ssl.SSLHandshake$HandshakeMessage 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
38: astore 12 /* gse */
start local 12 // java.security.GeneralSecurityException gse
39: .line 105
new javax.net.ssl.SSLException
dup
ldc "Algorithm missing: "
aload 12 /* gse */
invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 12 // java.security.GeneralSecurityException gse
start local 11 // sun.security.ssl.SSLCipher$SSLWriteCipher writeCipher
40: .line 108
StackMap locals: sun.security.ssl.SSLCipher$SSLWriteCipher
StackMap stack:
aload 11 /* writeCipher */
ifnonnull 46
41: .line 109
aload 3 /* hc */
getfield sun.security.ssl.HandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.ILLEGAL_PARAMETER:Lsun/security/ssl/Alert;
42: .line 110
new java.lang.StringBuilder
dup
ldc "Illegal cipher suite ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6 /* ncs */
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
43: .line 111
ldc ") and protocol version ("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3 /* hc */
getfield sun.security.ssl.HandshakeContext.negotiatedProtocol:Lsun/security/ssl/ProtocolVersion;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
44: .line 110
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
45: .line 109
invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
46: .line 114
StackMap locals:
StackMap stack:
getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 48
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 48
47: .line 115
ldc "Produced ChangeCipherSpec message"
iconst_0
anewarray java.lang.Object
invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
48: .line 118
StackMap locals:
StackMap stack:
aload 3 /* hc */
getfield sun.security.ssl.HandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getfield sun.security.ssl.TransportContext.outputRecord:Lsun/security/ssl/OutputRecord;
aload 11 /* writeCipher */
iconst_1
invokevirtual sun.security.ssl.OutputRecord.changeWriteCiphers:(Lsun/security/ssl/SSLCipher$SSLWriteCipher;Z)V
49: .line 121
aconst_null
areturn
end local 11 // sun.security.ssl.SSLCipher$SSLWriteCipher writeCipher
end local 10 // javax.crypto.spec.IvParameterSpec iv
end local 9 // javax.crypto.SecretKey writeIv
end local 8 // javax.crypto.SecretKey writeKey
end local 7 // sun.security.ssl.Authenticator writeAuthenticator
end local 6 // sun.security.ssl.CipherSuite ncs
end local 5 // sun.security.ssl.SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation tkd
end local 4 // sun.security.ssl.SSLKeyDerivation kd
end local 3 // sun.security.ssl.HandshakeContext hc
end local 2 // sun.security.ssl.SSLHandshake$HandshakeMessage message
end local 1 // sun.security.ssl.ConnectionContext context
end local 0 // sun.security.ssl.ChangeCipherSpec$T10ChangeCipherSpecProducer this
LocalVariableTable:
Start End Slot Name Signature
0 50 0 this Lsun/security/ssl/ChangeCipherSpec$T10ChangeCipherSpecProducer;
0 50 1 context Lsun/security/ssl/ConnectionContext;
0 50 2 message Lsun/security/ssl/SSLHandshake$HandshakeMessage;
1 50 3 hc Lsun/security/ssl/HandshakeContext;
2 50 4 kd Lsun/security/ssl/SSLKeyDerivation;
5 50 5 tkd Lsun/security/ssl/SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation;
6 50 6 ncs Lsun/security/ssl/CipherSuite;
9 10 7 writeAuthenticator Lsun/security/ssl/Authenticator;
16 17 7 writeAuthenticator Lsun/security/ssl/Authenticator;
19 50 7 writeAuthenticator Lsun/security/ssl/Authenticator;
18 19 8 e Ljava/security/GeneralSecurityException;
24 50 8 writeKey Ljavax/crypto/SecretKey;
29 50 9 writeIv Ljavax/crypto/SecretKey;
32 50 10 iv Ljavax/crypto/spec/IvParameterSpec;
37 38 11 writeCipher Lsun/security/ssl/SSLCipher$SSLWriteCipher;
40 50 11 writeCipher Lsun/security/ssl/SSLCipher$SSLWriteCipher;
39 40 12 gse Ljava/security/GeneralSecurityException;
Exception table:
from to target type
10 16 17 Class java.security.NoSuchAlgorithmException
10 16 17 Class java.security.InvalidKeyException
32 37 38 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 T10ChangeCipherSpecProducer = sun.security.ssl.ChangeCipherSpec$T10ChangeCipherSpecProducer of sun.security.ssl.ChangeCipherSpec
final MacAlg = sun.security.ssl.CipherSuite$MacAlg of sun.security.ssl.CipherSuite
abstract SSLWriteCipher = sun.security.ssl.SSLCipher$SSLWriteCipher of sun.security.ssl.SSLCipher
abstract HandshakeMessage = sun.security.ssl.SSLHandshake$HandshakeMessage of sun.security.ssl.SSLHandshake
final LegacyTrafficKeyDerivation = sun.security.ssl.SSLTrafficKeyDerivation$LegacyTrafficKeyDerivation of sun.security.ssl.SSLTrafficKeyDerivation