final class sun.security.ssl.HandshakeMessage$CertificateRequest extends sun.security.ssl.HandshakeMessage
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.security.ssl.HandshakeMessage$CertificateRequest
super_class: sun.security.ssl.HandshakeMessage
{
static final int cct_rsa_sign;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 1
static final int cct_dss_sign;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 2
static final int cct_rsa_fixed_dh;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 3
static final int cct_dss_fixed_dh;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 4
static final int cct_rsa_ephemeral_dh;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 5
static final int cct_dss_ephemeral_dh;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 6
static final int cct_ecdsa_sign;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 64
static final int cct_rsa_fixed_ecdh;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 65
static final int cct_ecdsa_fixed_ecdh;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 66
private static final byte[] TYPES_NO_ECC;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final byte[] TYPES_ECC;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
byte[] types;
descriptor: [B
flags: (0x0000)
sun.security.ssl.HandshakeMessage$DistinguishedName[] authorities;
descriptor: [Lsun/security/ssl/HandshakeMessage$DistinguishedName;
flags: (0x0000)
sun.security.ssl.ProtocolVersion protocolVersion;
descriptor: Lsun/security/ssl/ProtocolVersion;
flags: (0x0000)
private java.util.Collection<sun.security.ssl.SignatureAndHashAlgorithm> algorithms;
descriptor: Ljava/util/Collection;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Collection<Lsun/security/ssl/SignatureAndHashAlgorithm;>;
private int algorithmsLen;
descriptor: I
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: iconst_2
newarray 8
dup
iconst_0
iconst_1
bastore
dup
iconst_1
iconst_2
bastore
putstatic sun.security.ssl.HandshakeMessage$CertificateRequest.TYPES_NO_ECC:[B
1: iconst_3
newarray 8
dup
iconst_0
iconst_1
bastore
dup
iconst_1
iconst_2
bastore
dup
iconst_2
bipush 64
bastore
2: putstatic sun.security.ssl.HandshakeMessage$CertificateRequest.TYPES_ECC:[B
3: return
LocalVariableTable:
Start End Slot Name Signature
void <init>(java.security.cert.X509Certificate[], sun.security.ssl.CipherSuite$KeyExchange, java.util.Collection<sun.security.ssl.SignatureAndHashAlgorithm>, sun.security.ssl.ProtocolVersion);
descriptor: ([Ljava/security/cert/X509Certificate;Lsun/security/ssl/CipherSuite$KeyExchange;Ljava/util/Collection;Lsun/security/ssl/ProtocolVersion;)V
flags: (0x0000)
Code:
stack=5, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokespecial sun.security.ssl.HandshakeMessage.<init>:()V
1: aload 0
aload 4
putfield sun.security.ssl.HandshakeMessage$CertificateRequest.protocolVersion:Lsun/security/ssl/ProtocolVersion;
2: aload 0
aload 1
arraylength
anewarray sun.security.ssl.HandshakeMessage$DistinguishedName
putfield sun.security.ssl.HandshakeMessage$CertificateRequest.authorities:[Lsun/security/ssl/HandshakeMessage$DistinguishedName;
3: iconst_0
istore 5
start local 5 4: goto 8
5: StackMap locals: sun.security.ssl.HandshakeMessage$CertificateRequest java.security.cert.X509Certificate[] sun.security.ssl.CipherSuite$KeyExchange java.util.Collection sun.security.ssl.ProtocolVersion int
StackMap stack:
aload 1
iload 5
aaload
invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
astore 6
start local 6 6: aload 0
getfield sun.security.ssl.HandshakeMessage$CertificateRequest.authorities:[Lsun/security/ssl/HandshakeMessage$DistinguishedName;
iload 5
new sun.security.ssl.HandshakeMessage$DistinguishedName
dup
aload 6
invokespecial sun.security.ssl.HandshakeMessage$DistinguishedName.<init>:(Ljavax/security/auth/x500/X500Principal;)V
aastore
end local 6 7: iinc 5 1
StackMap locals:
StackMap stack:
8: iload 5
aload 1
arraylength
if_icmplt 5
end local 5 9: aload 0
invokestatic sun.security.ssl.JsseJce.isEcAvailable:()Z
ifeq 10
getstatic sun.security.ssl.HandshakeMessage$CertificateRequest.TYPES_ECC:[B
goto 11
StackMap locals: sun.security.ssl.HandshakeMessage$CertificateRequest java.security.cert.X509Certificate[] sun.security.ssl.CipherSuite$KeyExchange java.util.Collection sun.security.ssl.ProtocolVersion
StackMap stack: sun.security.ssl.HandshakeMessage$CertificateRequest
10: getstatic sun.security.ssl.HandshakeMessage$CertificateRequest.TYPES_NO_ECC:[B
StackMap locals: sun.security.ssl.HandshakeMessage$CertificateRequest java.security.cert.X509Certificate[] sun.security.ssl.CipherSuite$KeyExchange java.util.Collection sun.security.ssl.ProtocolVersion
StackMap stack: sun.security.ssl.HandshakeMessage$CertificateRequest byte[]
11: putfield sun.security.ssl.HandshakeMessage$CertificateRequest.types:[B
12: aload 4
invokevirtual sun.security.ssl.ProtocolVersion.useTLS12PlusSpec:()Z
ifeq 22
13: aload 3
ifnull 14
aload 3
invokeinterface java.util.Collection.isEmpty:()Z
ifeq 17
14: StackMap locals:
StackMap stack:
new javax.net.ssl.SSLProtocolException
dup
15: ldc "No supported signature algorithms"
16: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
17: StackMap locals:
StackMap stack:
aload 0
new java.util.ArrayList
dup
aload 3
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
putfield sun.security.ssl.HandshakeMessage$CertificateRequest.algorithms:Ljava/util/Collection;
18: aload 0
19: invokestatic sun.security.ssl.SignatureAndHashAlgorithm.sizeInRecord:()I
aload 0
getfield sun.security.ssl.HandshakeMessage$CertificateRequest.algorithms:Ljava/util/Collection;
invokeinterface java.util.Collection.size:()I
imul
20: putfield sun.security.ssl.HandshakeMessage$CertificateRequest.algorithmsLen:I
21: goto 24
22: StackMap locals:
StackMap stack:
aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield sun.security.ssl.HandshakeMessage$CertificateRequest.algorithms:Ljava/util/Collection;
23: aload 0
iconst_0
putfield sun.security.ssl.HandshakeMessage$CertificateRequest.algorithmsLen:I
24: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lsun/security/ssl/HandshakeMessage$CertificateRequest;
0 25 1 ca [Ljava/security/cert/X509Certificate;
0 25 2 keyExchange Lsun/security/ssl/CipherSuite$KeyExchange;
0 25 3 signAlgs Ljava/util/Collection<Lsun/security/ssl/SignatureAndHashAlgorithm;>;
0 25 4 protocolVersion Lsun/security/ssl/ProtocolVersion;
4 9 5 i I
6 7 6 x500Principal Ljavax/security/auth/x500/X500Principal;
Exceptions:
throws java.io.IOException
Signature: ([Ljava/security/cert/X509Certificate;Lsun/security/ssl/CipherSuite$KeyExchange;Ljava/util/Collection<Lsun/security/ssl/SignatureAndHashAlgorithm;>;Lsun/security/ssl/ProtocolVersion;)V
MethodParameters:
Name Flags
ca
keyExchange
signAlgs
protocolVersion
void <init>(sun.security.ssl.HandshakeInStream, sun.security.ssl.ProtocolVersion);
descriptor: (Lsun/security/ssl/HandshakeInStream;Lsun/security/ssl/ProtocolVersion;)V
flags: (0x0000)
Code:
stack=5, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial sun.security.ssl.HandshakeMessage.<init>:()V
1: aload 0
aload 2
putfield sun.security.ssl.HandshakeMessage$CertificateRequest.protocolVersion:Lsun/security/ssl/ProtocolVersion;
2: aload 0
aload 1
invokevirtual sun.security.ssl.HandshakeInStream.getBytes8:()[B
putfield sun.security.ssl.HandshakeMessage$CertificateRequest.types:[B
3: aload 2
invokevirtual sun.security.ssl.ProtocolVersion.useTLS12PlusSpec:()Z
ifeq 30
4: aload 0
aload 1
invokevirtual sun.security.ssl.HandshakeInStream.getInt16:()I
putfield sun.security.ssl.HandshakeMessage$CertificateRequest.algorithmsLen:I
5: aload 0
getfield sun.security.ssl.HandshakeMessage$CertificateRequest.algorithmsLen:I
iconst_2
if_icmpge 11
6: new javax.net.ssl.SSLProtocolException
dup
7: new java.lang.StringBuilder
dup
ldc "Invalid supported_signature_algorithms field: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
8: aload 0
getfield sun.security.ssl.HandshakeMessage$CertificateRequest.algorithmsLen:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
9: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
10: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals: sun.security.ssl.HandshakeMessage$CertificateRequest sun.security.ssl.HandshakeInStream sun.security.ssl.ProtocolVersion
StackMap stack:
aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield sun.security.ssl.HandshakeMessage$CertificateRequest.algorithms:Ljava/util/Collection;
12: aload 0
getfield sun.security.ssl.HandshakeMessage$CertificateRequest.algorithmsLen:I
istore 3
start local 3 13: iconst_0
istore 4
start local 4 14: goto 23
15: StackMap locals: int int
StackMap stack:
aload 1
invokevirtual sun.security.ssl.HandshakeInStream.getInt8:()I
istore 5
start local 5 16: aload 1
invokevirtual sun.security.ssl.HandshakeInStream.getInt8:()I
istore 6
start local 6 17: iload 5
iload 6
18: iinc 4 1
iload 4
19: invokestatic sun.security.ssl.SignatureAndHashAlgorithm.valueOf:(III)Lsun/security/ssl/SignatureAndHashAlgorithm;
20: astore 7
start local 7 21: aload 0
getfield sun.security.ssl.HandshakeMessage$CertificateRequest.algorithms:Ljava/util/Collection;
aload 7
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
22: iinc 3 -2
end local 7 end local 6 end local 5 23: StackMap locals:
StackMap stack:
iload 3
iconst_1
if_icmpgt 15
24: iload 3
ifeq 32
25: new javax.net.ssl.SSLProtocolException
dup
26: new java.lang.StringBuilder
dup
ldc "Invalid supported_signature_algorithms field. remains: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
27: iload 3
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
28: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
29: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
end local 4 end local 3 30: StackMap locals:
StackMap stack:
aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield sun.security.ssl.HandshakeMessage$CertificateRequest.algorithms:Ljava/util/Collection;
31: aload 0
iconst_0
putfield sun.security.ssl.HandshakeMessage$CertificateRequest.algorithmsLen:I
32: StackMap locals:
StackMap stack:
aload 1
invokevirtual sun.security.ssl.HandshakeInStream.getInt16:()I
istore 3
start local 3 33: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 4
start local 4 34: goto 38
35: StackMap locals: int java.util.ArrayList
StackMap stack:
new sun.security.ssl.HandshakeMessage$DistinguishedName
dup
aload 1
invokespecial sun.security.ssl.HandshakeMessage$DistinguishedName.<init>:(Lsun/security/ssl/HandshakeInStream;)V
astore 5
start local 5 36: aload 4
aload 5
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
37: iload 3
aload 5
invokevirtual sun.security.ssl.HandshakeMessage$DistinguishedName.length:()I
isub
istore 3
end local 5 38: StackMap locals:
StackMap stack:
iload 3
iconst_3
if_icmpge 35
39: iload 3
ifeq 43
40: new javax.net.ssl.SSLProtocolException
dup
41: new java.lang.StringBuilder
dup
ldc "Bad CertificateRequest DN length: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 3
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
42: invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
athrow
43: StackMap locals:
StackMap stack:
aload 0
aload 4
aload 4
invokevirtual java.util.ArrayList.size:()I
anewarray sun.security.ssl.HandshakeMessage$DistinguishedName
invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast sun.security.ssl.HandshakeMessage$DistinguishedName[]
putfield sun.security.ssl.HandshakeMessage$CertificateRequest.authorities:[Lsun/security/ssl/HandshakeMessage$DistinguishedName;
44: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 45 0 this Lsun/security/ssl/HandshakeMessage$CertificateRequest;
0 45 1 input Lsun/security/ssl/HandshakeInStream;
0 45 2 protocolVersion Lsun/security/ssl/ProtocolVersion;
13 30 3 remains I
14 30 4 sequence I
16 23 5 hash I
17 23 6 signature I
21 23 7 algorithm Lsun/security/ssl/SignatureAndHashAlgorithm;
33 45 3 len I
34 45 4 v Ljava/util/ArrayList<Lsun/security/ssl/HandshakeMessage$DistinguishedName;>;
36 38 5 dn Lsun/security/ssl/HandshakeMessage$DistinguishedName;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
input
protocolVersion
javax.security.auth.x500.X500Principal[] getAuthorities();
descriptor: ()[Ljavax/security/auth/x500/X500Principal;
flags: (0x0000)
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.HandshakeMessage$CertificateRequest.authorities:[Lsun/security/ssl/HandshakeMessage$DistinguishedName;
arraylength
anewarray javax.security.auth.x500.X500Principal
astore 1
start local 1 1: iconst_0
istore 2
start local 2 2: goto 5
3: StackMap locals: javax.security.auth.x500.X500Principal[] int
StackMap stack:
aload 1
iload 2
aload 0
getfield sun.security.ssl.HandshakeMessage$CertificateRequest.authorities:[Lsun/security/ssl/HandshakeMessage$DistinguishedName;
iload 2
aaload
invokevirtual sun.security.ssl.HandshakeMessage$DistinguishedName.getX500Principal:()Ljavax/security/auth/x500/X500Principal;
aastore
4: iinc 2 1
StackMap locals:
StackMap stack:
5: iload 2
aload 0
getfield sun.security.ssl.HandshakeMessage$CertificateRequest.authorities:[Lsun/security/ssl/HandshakeMessage$DistinguishedName;
arraylength
if_icmplt 3
end local 2 6: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/security/ssl/HandshakeMessage$CertificateRequest;
1 7 1 ret [Ljavax/security/auth/x500/X500Principal;
2 6 2 i I
Exceptions:
throws java.io.IOException
java.util.Collection<sun.security.ssl.SignatureAndHashAlgorithm> getSignAlgorithms();
descriptor: ()Ljava/util/Collection;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.security.ssl.HandshakeMessage$CertificateRequest.algorithms:Ljava/util/Collection;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/HandshakeMessage$CertificateRequest;
Signature: ()Ljava/util/Collection<Lsun/security/ssl/SignatureAndHashAlgorithm;>;
int messageType();
descriptor: ()I
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: bipush 13
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/security/ssl/HandshakeMessage$CertificateRequest;
int messageLength();
descriptor: ()I
flags: (0x0000)
Code:
stack=3, locals=3, args_size=1
start local 0 0: iconst_1
aload 0
getfield sun.security.ssl.HandshakeMessage$CertificateRequest.types:[B
arraylength
iadd
iconst_2
iadd
istore 1
start local 1 1: aload 0
getfield sun.security.ssl.HandshakeMessage$CertificateRequest.protocolVersion:Lsun/security/ssl/ProtocolVersion;
invokevirtual sun.security.ssl.ProtocolVersion.useTLS12PlusSpec:()Z
ifeq 3
2: iload 1
aload 0
getfield sun.security.ssl.HandshakeMessage$CertificateRequest.algorithmsLen:I
iconst_2
iadd
iadd
istore 1
3: StackMap locals: int
StackMap stack:
iconst_0
istore 2
start local 2 4: goto 7
5: StackMap locals: int
StackMap stack:
iload 1
aload 0
getfield sun.security.ssl.HandshakeMessage$CertificateRequest.authorities:[Lsun/security/ssl/HandshakeMessage$DistinguishedName;
iload 2
aaload
invokevirtual sun.security.ssl.HandshakeMessage$DistinguishedName.length:()I
iadd
istore 1
6: iinc 2 1
StackMap locals:
StackMap stack:
7: iload 2
aload 0
getfield sun.security.ssl.HandshakeMessage$CertificateRequest.authorities:[Lsun/security/ssl/HandshakeMessage$DistinguishedName;
arraylength
if_icmplt 5
end local 2 8: iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/security/ssl/HandshakeMessage$CertificateRequest;
1 9 1 len I
4 8 2 i I
void send(sun.security.ssl.HandshakeOutStream);
descriptor: (Lsun/security/ssl/HandshakeOutStream;)V
flags: (0x0000)
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 1
aload 0
getfield sun.security.ssl.HandshakeMessage$CertificateRequest.types:[B
invokevirtual sun.security.ssl.HandshakeOutStream.putBytes8:([B)V
1: aload 0
getfield sun.security.ssl.HandshakeMessage$CertificateRequest.protocolVersion:Lsun/security/ssl/ProtocolVersion;
invokevirtual sun.security.ssl.ProtocolVersion.useTLS12PlusSpec:()Z
ifeq 8
2: aload 1
aload 0
getfield sun.security.ssl.HandshakeMessage$CertificateRequest.algorithmsLen:I
invokevirtual sun.security.ssl.HandshakeOutStream.putInt16:(I)V
3: aload 0
getfield sun.security.ssl.HandshakeMessage$CertificateRequest.algorithms:Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 3
goto 7
StackMap locals: sun.security.ssl.HandshakeMessage$CertificateRequest sun.security.ssl.HandshakeOutStream top java.util.Iterator
StackMap stack:
4: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.security.ssl.SignatureAndHashAlgorithm
astore 2
start local 2 5: aload 1
aload 2
invokevirtual sun.security.ssl.SignatureAndHashAlgorithm.getHashValue:()I
invokevirtual sun.security.ssl.HandshakeOutStream.putInt8:(I)V
6: aload 1
aload 2
invokevirtual sun.security.ssl.SignatureAndHashAlgorithm.getSignatureValue:()I
invokevirtual sun.security.ssl.HandshakeOutStream.putInt8:(I)V
end local 2 7: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
8: StackMap locals: sun.security.ssl.HandshakeMessage$CertificateRequest sun.security.ssl.HandshakeOutStream
StackMap stack:
iconst_0
istore 2
start local 2 9: iconst_0
istore 3
start local 3 10: goto 13
11: StackMap locals: int int
StackMap stack:
iload 2
aload 0
getfield sun.security.ssl.HandshakeMessage$CertificateRequest.authorities:[Lsun/security/ssl/HandshakeMessage$DistinguishedName;
iload 3
aaload
invokevirtual sun.security.ssl.HandshakeMessage$DistinguishedName.length:()I
iadd
istore 2
12: iinc 3 1
StackMap locals:
StackMap stack:
13: iload 3
aload 0
getfield sun.security.ssl.HandshakeMessage$CertificateRequest.authorities:[Lsun/security/ssl/HandshakeMessage$DistinguishedName;
arraylength
if_icmplt 11
end local 3 14: aload 1
iload 2
invokevirtual sun.security.ssl.HandshakeOutStream.putInt16:(I)V
15: iconst_0
istore 3
start local 3 16: goto 19
17: StackMap locals:
StackMap stack:
aload 0
getfield sun.security.ssl.HandshakeMessage$CertificateRequest.authorities:[Lsun/security/ssl/HandshakeMessage$DistinguishedName;
iload 3
aaload
aload 1
invokevirtual sun.security.ssl.HandshakeMessage$DistinguishedName.send:(Lsun/security/ssl/HandshakeOutStream;)V
18: iinc 3 1
StackMap locals:
StackMap stack:
19: iload 3
aload 0
getfield sun.security.ssl.HandshakeMessage$CertificateRequest.authorities:[Lsun/security/ssl/HandshakeMessage$DistinguishedName;
arraylength
if_icmplt 17
end local 3 20: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lsun/security/ssl/HandshakeMessage$CertificateRequest;
0 21 1 output Lsun/security/ssl/HandshakeOutStream;
5 7 2 algorithm Lsun/security/ssl/SignatureAndHashAlgorithm;
9 21 2 len I
10 14 3 i I
16 20 3 i I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
output
void print(java.io.PrintStream);
descriptor: (Ljava/io/PrintStream;)V
flags: (0x0000)
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: aload 1
ldc "*** CertificateRequest"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
1: getstatic sun.security.ssl.HandshakeMessage$CertificateRequest.debug:Lsun/security/ssl/Debug;
ifnull 42
ldc "verbose"
invokestatic sun.security.ssl.Debug.isOn:(Ljava/lang/String;)Z
ifeq 42
2: aload 1
ldc "Cert Types: "
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
3: iconst_0
istore 2
start local 2 4: goto 19
5: StackMap locals: int
StackMap stack:
aload 0
getfield sun.security.ssl.HandshakeMessage$CertificateRequest.types:[B
iload 2
baload
lookupswitch { // 9
1: 6
2: 7
3: 8
4: 9
5: 10
6: 11
64: 12
65: 13
66: 14
default: 15
}
6: StackMap locals:
StackMap stack:
aload 1
ldc "RSA"
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
goto 16
7: StackMap locals:
StackMap stack:
aload 1
ldc "DSS"
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
goto 16
8: StackMap locals:
StackMap stack:
aload 1
ldc "Fixed DH (RSA sig)"
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
goto 16
9: StackMap locals:
StackMap stack:
aload 1
ldc "Fixed DH (DSS sig)"
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
goto 16
10: StackMap locals:
StackMap stack:
aload 1
ldc "Ephemeral DH (RSA sig)"
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
goto 16
11: StackMap locals:
StackMap stack:
aload 1
ldc "Ephemeral DH (DSS sig)"
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
goto 16
12: StackMap locals:
StackMap stack:
aload 1
ldc "ECDSA"
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
goto 16
13: StackMap locals:
StackMap stack:
aload 1
ldc "Fixed ECDH (RSA sig)"
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
goto 16
14: StackMap locals:
StackMap stack:
aload 1
ldc "Fixed ECDH (ECDSA sig)"
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
goto 16
15: StackMap locals:
StackMap stack:
aload 1
new java.lang.StringBuilder
dup
ldc "Type-"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.security.ssl.HandshakeMessage$CertificateRequest.types:[B
iload 2
baload
sipush 255
iand
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
16: StackMap locals:
StackMap stack:
iload 2
aload 0
getfield sun.security.ssl.HandshakeMessage$CertificateRequest.types:[B
arraylength
iconst_1
isub
if_icmpeq 18
17: aload 1
ldc ", "
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
18: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
19: iload 2
aload 0
getfield sun.security.ssl.HandshakeMessage$CertificateRequest.types:[B
arraylength
if_icmplt 5
end local 2 20: aload 1
invokevirtual java.io.PrintStream.println:()V
21: aload 0
getfield sun.security.ssl.HandshakeMessage$CertificateRequest.protocolVersion:Lsun/security/ssl/ProtocolVersion;
invokevirtual sun.security.ssl.ProtocolVersion.useTLS12PlusSpec:()Z
ifeq 33
22: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 2
start local 2 23: iconst_0
istore 3
start local 3 24: aload 0
getfield sun.security.ssl.HandshakeMessage$CertificateRequest.algorithms:Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 5
goto 31
StackMap locals: sun.security.ssl.HandshakeMessage$CertificateRequest java.io.PrintStream java.lang.StringBuilder int top java.util.Iterator
StackMap stack:
25: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.security.ssl.SignatureAndHashAlgorithm
astore 4
start local 4 26: iload 3
ifeq 29
27: aload 2
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
invokevirtual sun.security.ssl.SignatureAndHashAlgorithm.getAlgorithmName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
28: goto 31
29: StackMap locals: sun.security.ssl.HandshakeMessage$CertificateRequest java.io.PrintStream java.lang.StringBuilder int sun.security.ssl.SignatureAndHashAlgorithm java.util.Iterator
StackMap stack:
aload 2
aload 4
invokevirtual sun.security.ssl.SignatureAndHashAlgorithm.getAlgorithmName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
30: iconst_1
istore 3
end local 4 31: StackMap locals: sun.security.ssl.HandshakeMessage$CertificateRequest java.io.PrintStream java.lang.StringBuilder int top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 25
32: aload 1
new java.lang.StringBuilder
dup
ldc "Supported Signature Algorithms: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
end local 3 end local 2 33: StackMap locals: sun.security.ssl.HandshakeMessage$CertificateRequest java.io.PrintStream
StackMap stack:
aload 1
ldc "Cert Authorities:"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
34: aload 0
getfield sun.security.ssl.HandshakeMessage$CertificateRequest.authorities:[Lsun/security/ssl/HandshakeMessage$DistinguishedName;
arraylength
ifne 37
35: aload 1
ldc "<Empty>"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
36: goto 42
37: StackMap locals:
StackMap stack:
iconst_0
istore 2
start local 2 38: goto 41
39: StackMap locals: int
StackMap stack:
aload 0
getfield sun.security.ssl.HandshakeMessage$CertificateRequest.authorities:[Lsun/security/ssl/HandshakeMessage$DistinguishedName;
iload 2
aaload
aload 1
invokevirtual sun.security.ssl.HandshakeMessage$DistinguishedName.print:(Ljava/io/PrintStream;)V
40: iinc 2 1
StackMap locals:
StackMap stack:
41: iload 2
aload 0
getfield sun.security.ssl.HandshakeMessage$CertificateRequest.authorities:[Lsun/security/ssl/HandshakeMessage$DistinguishedName;
arraylength
if_icmplt 39
end local 2 42: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 43 0 this Lsun/security/ssl/HandshakeMessage$CertificateRequest;
0 43 1 s Ljava/io/PrintStream;
4 20 2 i I
23 33 2 sb Ljava/lang/StringBuilder;
24 33 3 opened Z
26 31 4 signAlg Lsun/security/ssl/SignatureAndHashAlgorithm;
38 42 2 i I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
s
}
SourceFile: "HandshakeMessage.java"
NestHost: sun.security.ssl.HandshakeMessage
InnerClasses:
final KeyExchange = sun.security.ssl.CipherSuite$KeyExchange of sun.security.ssl.CipherSuite
final CertificateRequest = sun.security.ssl.HandshakeMessage$CertificateRequest of sun.security.ssl.HandshakeMessage
final DistinguishedName = sun.security.ssl.HandshakeMessage$DistinguishedName of sun.security.ssl.HandshakeMessage