final class sun.security.ssl.RSAServerKeyExchange$RSAServerKeyExchangeProducer implements sun.security.ssl.HandshakeProducer
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.security.ssl.RSAServerKeyExchange$RSAServerKeyExchangeProducer
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.RSAServerKeyExchange$RSAServerKeyExchangeProducer this
0: .line 220
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 222
return
end local 0 // sun.security.ssl.RSAServerKeyExchange$RSAServerKeyExchangeProducer this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/security/ssl/RSAServerKeyExchange$RSAServerKeyExchangeProducer;
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=8, args_size=3
start local 0 // sun.security.ssl.RSAServerKeyExchange$RSAServerKeyExchangeProducer this
start local 1 // sun.security.ssl.ConnectionContext context
start local 2 // sun.security.ssl.SSLHandshake$HandshakeMessage message
0: .line 228
aload 1 /* context */
checkcast sun.security.ssl.ServerHandshakeContext
astore 3 /* shc */
start local 3 // sun.security.ssl.ServerHandshakeContext shc
1: .line 230
aconst_null
astore 4 /* rsaPossession */
start local 4 // sun.security.ssl.RSAKeyExchange$EphemeralRSAPossession rsaPossession
2: .line 231
aconst_null
astore 5 /* x509Possession */
start local 5 // sun.security.ssl.X509Authentication$X509Possession x509Possession
3: .line 232
aload 3 /* shc */
getfield sun.security.ssl.ServerHandshakeContext.handshakePossessions:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 7
goto 13
StackMap locals: sun.security.ssl.RSAServerKeyExchange$RSAServerKeyExchangeProducer sun.security.ssl.ConnectionContext sun.security.ssl.SSLHandshake$HandshakeMessage sun.security.ssl.ServerHandshakeContext sun.security.ssl.RSAKeyExchange$EphemeralRSAPossession sun.security.ssl.X509Authentication$X509Possession top java.util.Iterator
StackMap stack:
4: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.security.ssl.SSLPossession
astore 6 /* possession */
start local 6 // sun.security.ssl.SSLPossession possession
5: .line 233
aload 6 /* possession */
instanceof sun.security.ssl.RSAKeyExchange$EphemeralRSAPossession
ifeq 9
6: .line 234
aload 6 /* possession */
checkcast sun.security.ssl.RSAKeyExchange$EphemeralRSAPossession
astore 4 /* rsaPossession */
7: .line 235
aload 5 /* x509Possession */
ifnull 13
8: .line 236
goto 14
9: .line 238
StackMap locals: sun.security.ssl.RSAServerKeyExchange$RSAServerKeyExchangeProducer sun.security.ssl.ConnectionContext sun.security.ssl.SSLHandshake$HandshakeMessage sun.security.ssl.ServerHandshakeContext sun.security.ssl.RSAKeyExchange$EphemeralRSAPossession sun.security.ssl.X509Authentication$X509Possession sun.security.ssl.SSLPossession java.util.Iterator
StackMap stack:
aload 6 /* possession */
instanceof sun.security.ssl.X509Authentication$X509Possession
ifeq 13
10: .line 239
aload 6 /* possession */
checkcast sun.security.ssl.X509Authentication$X509Possession
astore 5 /* x509Possession */
11: .line 240
aload 4 /* rsaPossession */
ifnull 13
12: .line 241
goto 14
end local 6 // sun.security.ssl.SSLPossession possession
13: .line 232
StackMap locals: sun.security.ssl.RSAServerKeyExchange$RSAServerKeyExchangeProducer sun.security.ssl.ConnectionContext sun.security.ssl.SSLHandshake$HandshakeMessage sun.security.ssl.ServerHandshakeContext sun.security.ssl.RSAKeyExchange$EphemeralRSAPossession sun.security.ssl.X509Authentication$X509Possession top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
14: .line 246
StackMap locals: sun.security.ssl.RSAServerKeyExchange$RSAServerKeyExchangeProducer sun.security.ssl.ConnectionContext sun.security.ssl.SSLHandshake$HandshakeMessage sun.security.ssl.ServerHandshakeContext sun.security.ssl.RSAKeyExchange$EphemeralRSAPossession sun.security.ssl.X509Authentication$X509Possession
StackMap stack:
aload 4 /* rsaPossession */
ifnonnull 16
15: .line 250
aconst_null
areturn
16: .line 251
StackMap locals:
StackMap stack:
aload 5 /* x509Possession */
ifnonnull 20
17: .line 253
aload 3 /* shc */
getfield sun.security.ssl.ServerHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.ILLEGAL_PARAMETER:Lsun/security/ssl/Alert;
18: .line 254
ldc "No RSA certificate negotiated for server key exchange"
19: .line 253
invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
20: .line 255
StackMap locals:
StackMap stack:
ldc "RSA"
21: .line 256
aload 5 /* x509Possession */
getfield sun.security.ssl.X509Authentication$X509Possession.popPrivateKey:Ljava/security/PrivateKey;
invokeinterface java.security.PrivateKey.getAlgorithm:()Ljava/lang/String;
22: .line 255
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
23: .line 256
ifne 27
24: .line 258
aload 3 /* shc */
getfield sun.security.ssl.ServerHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
getstatic sun.security.ssl.Alert.ILLEGAL_PARAMETER:Lsun/security/ssl/Alert;
25: .line 259
ldc "No X.509 possession can be used for ephemeral RSA ServerKeyExchange"
26: .line 258
invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
athrow
27: .line 264
StackMap locals:
StackMap stack:
new sun.security.ssl.RSAServerKeyExchange$RSAServerKeyExchangeMessage
dup
28: .line 265
aload 3 /* shc */
aload 5 /* x509Possession */
aload 4 /* rsaPossession */
29: .line 264
invokespecial sun.security.ssl.RSAServerKeyExchange$RSAServerKeyExchangeMessage.<init>:(Lsun/security/ssl/HandshakeContext;Lsun/security/ssl/X509Authentication$X509Possession;Lsun/security/ssl/RSAKeyExchange$EphemeralRSAPossession;)V
30: .line 263
astore 6 /* skem */
start local 6 // sun.security.ssl.RSAServerKeyExchange$RSAServerKeyExchangeMessage skem
31: .line 266
getstatic sun.security.ssl.SSLLogger.isOn:Z
ifeq 34
ldc "ssl,handshake"
invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
ifeq 34
32: .line 268
ldc "Produced RSA ServerKeyExchange handshake message"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 6 /* skem */
aastore
33: .line 267
invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
34: .line 272
StackMap locals: sun.security.ssl.RSAServerKeyExchange$RSAServerKeyExchangeMessage
StackMap stack:
aload 6 /* skem */
aload 3 /* shc */
getfield sun.security.ssl.ServerHandshakeContext.handshakeOutput:Lsun/security/ssl/HandshakeOutStream;
invokevirtual sun.security.ssl.RSAServerKeyExchange$RSAServerKeyExchangeMessage.write:(Lsun/security/ssl/HandshakeOutStream;)V
35: .line 273
aload 3 /* shc */
getfield sun.security.ssl.ServerHandshakeContext.handshakeOutput:Lsun/security/ssl/HandshakeOutStream;
invokevirtual sun.security.ssl.HandshakeOutStream.flush:()V
36: .line 276
aconst_null
areturn
end local 6 // sun.security.ssl.RSAServerKeyExchange$RSAServerKeyExchangeMessage skem
end local 5 // sun.security.ssl.X509Authentication$X509Possession x509Possession
end local 4 // sun.security.ssl.RSAKeyExchange$EphemeralRSAPossession rsaPossession
end local 3 // sun.security.ssl.ServerHandshakeContext shc
end local 2 // sun.security.ssl.SSLHandshake$HandshakeMessage message
end local 1 // sun.security.ssl.ConnectionContext context
end local 0 // sun.security.ssl.RSAServerKeyExchange$RSAServerKeyExchangeProducer this
LocalVariableTable:
Start End Slot Name Signature
0 37 0 this Lsun/security/ssl/RSAServerKeyExchange$RSAServerKeyExchangeProducer;
0 37 1 context Lsun/security/ssl/ConnectionContext;
0 37 2 message Lsun/security/ssl/SSLHandshake$HandshakeMessage;
1 37 3 shc Lsun/security/ssl/ServerHandshakeContext;
2 37 4 rsaPossession Lsun/security/ssl/RSAKeyExchange$EphemeralRSAPossession;
3 37 5 x509Possession Lsun/security/ssl/X509Authentication$X509Possession;
5 13 6 possession Lsun/security/ssl/SSLPossession;
31 37 6 skem Lsun/security/ssl/RSAServerKeyExchange$RSAServerKeyExchangeMessage;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
context
message
}
SourceFile: "RSAServerKeyExchange.java"
NestHost: sun.security.ssl.RSAServerKeyExchange
InnerClasses:
final EphemeralRSAPossession = sun.security.ssl.RSAKeyExchange$EphemeralRSAPossession of sun.security.ssl.RSAKeyExchange
private final RSAServerKeyExchangeMessage = sun.security.ssl.RSAServerKeyExchange$RSAServerKeyExchangeMessage of sun.security.ssl.RSAServerKeyExchange
private final RSAServerKeyExchangeProducer = sun.security.ssl.RSAServerKeyExchange$RSAServerKeyExchangeProducer of sun.security.ssl.RSAServerKeyExchange
abstract HandshakeMessage = sun.security.ssl.SSLHandshake$HandshakeMessage of sun.security.ssl.SSLHandshake
final X509Possession = sun.security.ssl.X509Authentication$X509Possession of sun.security.ssl.X509Authentication