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: .line 1707
            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: .line 1709
            iconst_3
            newarray 8
            dup
            iconst_0
            iconst_1
            bastore
            dup
            iconst_1
            iconst_2
            bastore
            dup
            iconst_2
            bipush 64
            bastore
         2: .line 1708
            putstatic sun.security.ssl.HandshakeMessage$CertificateRequest.TYPES_ECC:[B
         3: .line 1709
            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 // sun.security.ssl.HandshakeMessage$CertificateRequest this
        start local 1 // java.security.cert.X509Certificate[] ca
        start local 2 // sun.security.ssl.CipherSuite$KeyExchange keyExchange
        start local 3 // java.util.Collection signAlgs
        start local 4 // sun.security.ssl.ProtocolVersion protocolVersion
         0: .line 1724
            aload 0 /* this */
            invokespecial sun.security.ssl.HandshakeMessage.<init>:()V
         1: .line 1728
            aload 0 /* this */
            aload 4 /* protocolVersion */
            putfield sun.security.ssl.HandshakeMessage$CertificateRequest.protocolVersion:Lsun/security/ssl/ProtocolVersion;
         2: .line 1731
            aload 0 /* this */
            aload 1 /* ca */
            arraylength
            anewarray sun.security.ssl.HandshakeMessage$DistinguishedName
            putfield sun.security.ssl.HandshakeMessage$CertificateRequest.authorities:[Lsun/security/ssl/HandshakeMessage$DistinguishedName;
         3: .line 1732
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         4: goto 8
         5: .line 1733
      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 /* ca */
            iload 5 /* i */
            aaload
            invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
            astore 6 /* x500Principal */
        start local 6 // javax.security.auth.x500.X500Principal x500Principal
         6: .line 1734
            aload 0 /* this */
            getfield sun.security.ssl.HandshakeMessage$CertificateRequest.authorities:[Lsun/security/ssl/HandshakeMessage$DistinguishedName;
            iload 5 /* i */
            new sun.security.ssl.HandshakeMessage$DistinguishedName
            dup
            aload 6 /* x500Principal */
            invokespecial sun.security.ssl.HandshakeMessage$DistinguishedName.<init>:(Ljavax/security/auth/x500/X500Principal;)V
            aastore
        end local 6 // javax.security.auth.x500.X500Principal x500Principal
         7: .line 1732
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 5 /* i */
            aload 1 /* ca */
            arraylength
            if_icmplt 5
        end local 5 // int i
         9: .line 1740
            aload 0 /* this */
            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: .line 1743
            aload 4 /* protocolVersion */
            invokevirtual sun.security.ssl.ProtocolVersion.useTLS12PlusSpec:()Z
            ifeq 22
        13: .line 1744
            aload 3 /* signAlgs */
            ifnull 14
            aload 3 /* signAlgs */
            invokeinterface java.util.Collection.isEmpty:()Z
            ifeq 17
        14: .line 1745
      StackMap locals:
      StackMap stack:
            new javax.net.ssl.SSLProtocolException
            dup
        15: .line 1746
            ldc "No supported signature algorithms"
        16: .line 1745
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        17: .line 1749
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new java.util.ArrayList
            dup
            aload 3 /* signAlgs */
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            putfield sun.security.ssl.HandshakeMessage$CertificateRequest.algorithms:Ljava/util/Collection;
        18: .line 1750
            aload 0 /* this */
        19: .line 1751
            invokestatic sun.security.ssl.SignatureAndHashAlgorithm.sizeInRecord:()I
            aload 0 /* this */
            getfield sun.security.ssl.HandshakeMessage$CertificateRequest.algorithms:Ljava/util/Collection;
            invokeinterface java.util.Collection.size:()I
            imul
        20: .line 1750
            putfield sun.security.ssl.HandshakeMessage$CertificateRequest.algorithmsLen:I
        21: .line 1752
            goto 24
        22: .line 1753
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield sun.security.ssl.HandshakeMessage$CertificateRequest.algorithms:Ljava/util/Collection;
        23: .line 1754
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.HandshakeMessage$CertificateRequest.algorithmsLen:I
        24: .line 1756
      StackMap locals:
      StackMap stack:
            return
        end local 4 // sun.security.ssl.ProtocolVersion protocolVersion
        end local 3 // java.util.Collection signAlgs
        end local 2 // sun.security.ssl.CipherSuite$KeyExchange keyExchange
        end local 1 // java.security.cert.X509Certificate[] ca
        end local 0 // sun.security.ssl.HandshakeMessage$CertificateRequest this
      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 // sun.security.ssl.HandshakeMessage$CertificateRequest this
        start local 1 // sun.security.ssl.HandshakeInStream input
        start local 2 // sun.security.ssl.ProtocolVersion protocolVersion
         0: .line 1758
            aload 0 /* this */
            invokespecial sun.security.ssl.HandshakeMessage.<init>:()V
         1: .line 1761
            aload 0 /* this */
            aload 2 /* protocolVersion */
            putfield sun.security.ssl.HandshakeMessage$CertificateRequest.protocolVersion:Lsun/security/ssl/ProtocolVersion;
         2: .line 1764
            aload 0 /* this */
            aload 1 /* input */
            invokevirtual sun.security.ssl.HandshakeInStream.getBytes8:()[B
            putfield sun.security.ssl.HandshakeMessage$CertificateRequest.types:[B
         3: .line 1767
            aload 2 /* protocolVersion */
            invokevirtual sun.security.ssl.ProtocolVersion.useTLS12PlusSpec:()Z
            ifeq 30
         4: .line 1768
            aload 0 /* this */
            aload 1 /* input */
            invokevirtual sun.security.ssl.HandshakeInStream.getInt16:()I
            putfield sun.security.ssl.HandshakeMessage$CertificateRequest.algorithmsLen:I
         5: .line 1769
            aload 0 /* this */
            getfield sun.security.ssl.HandshakeMessage$CertificateRequest.algorithmsLen:I
            iconst_2
            if_icmpge 11
         6: .line 1770
            new javax.net.ssl.SSLProtocolException
            dup
         7: .line 1771
            new java.lang.StringBuilder
            dup
            ldc "Invalid supported_signature_algorithms field: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         8: .line 1772
            aload 0 /* this */
            getfield sun.security.ssl.HandshakeMessage$CertificateRequest.algorithmsLen:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         9: .line 1771
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        10: .line 1770
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 1775
      StackMap locals: sun.security.ssl.HandshakeMessage$CertificateRequest sun.security.ssl.HandshakeInStream sun.security.ssl.ProtocolVersion
      StackMap stack:
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield sun.security.ssl.HandshakeMessage$CertificateRequest.algorithms:Ljava/util/Collection;
        12: .line 1776
            aload 0 /* this */
            getfield sun.security.ssl.HandshakeMessage$CertificateRequest.algorithmsLen:I
            istore 3 /* remains */
        start local 3 // int remains
        13: .line 1777
            iconst_0
            istore 4 /* sequence */
        start local 4 // int sequence
        14: .line 1778
            goto 23
        15: .line 1779
      StackMap locals: int int
      StackMap stack:
            aload 1 /* input */
            invokevirtual sun.security.ssl.HandshakeInStream.getInt8:()I
            istore 5 /* hash */
        start local 5 // int hash
        16: .line 1780
            aload 1 /* input */
            invokevirtual sun.security.ssl.HandshakeInStream.getInt8:()I
            istore 6 /* signature */
        start local 6 // int signature
        17: .line 1783
            iload 5 /* hash */
            iload 6 /* signature */
        18: .line 1784
            iinc 4 /* sequence */ 1
            iload 4 /* sequence */
        19: .line 1783
            invokestatic sun.security.ssl.SignatureAndHashAlgorithm.valueOf:(III)Lsun/security/ssl/SignatureAndHashAlgorithm;
        20: .line 1782
            astore 7 /* algorithm */
        start local 7 // sun.security.ssl.SignatureAndHashAlgorithm algorithm
        21: .line 1785
            aload 0 /* this */
            getfield sun.security.ssl.HandshakeMessage$CertificateRequest.algorithms:Ljava/util/Collection;
            aload 7 /* algorithm */
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
        22: .line 1786
            iinc 3 /* remains */ -2
        end local 7 // sun.security.ssl.SignatureAndHashAlgorithm algorithm
        end local 6 // int signature
        end local 5 // int hash
        23: .line 1778
      StackMap locals:
      StackMap stack:
            iload 3 /* remains */
            iconst_1
            if_icmpgt 15
        24: .line 1789
            iload 3 /* remains */
            ifeq 32
        25: .line 1790
            new javax.net.ssl.SSLProtocolException
            dup
        26: .line 1791
            new java.lang.StringBuilder
            dup
            ldc "Invalid supported_signature_algorithms field. remains: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        27: .line 1792
            iload 3 /* remains */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        28: .line 1791
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        29: .line 1790
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // int sequence
        end local 3 // int remains
        30: .line 1795
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield sun.security.ssl.HandshakeMessage$CertificateRequest.algorithms:Ljava/util/Collection;
        31: .line 1796
            aload 0 /* this */
            iconst_0
            putfield sun.security.ssl.HandshakeMessage$CertificateRequest.algorithmsLen:I
        32: .line 1800
      StackMap locals:
      StackMap stack:
            aload 1 /* input */
            invokevirtual sun.security.ssl.HandshakeInStream.getInt16:()I
            istore 3 /* len */
        start local 3 // int len
        33: .line 1801
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 4 /* v */
        start local 4 // java.util.ArrayList v
        34: .line 1802
            goto 38
        35: .line 1803
      StackMap locals: int java.util.ArrayList
      StackMap stack:
            new sun.security.ssl.HandshakeMessage$DistinguishedName
            dup
            aload 1 /* input */
            invokespecial sun.security.ssl.HandshakeMessage$DistinguishedName.<init>:(Lsun/security/ssl/HandshakeInStream;)V
            astore 5 /* dn */
        start local 5 // sun.security.ssl.HandshakeMessage$DistinguishedName dn
        36: .line 1804
            aload 4 /* v */
            aload 5 /* dn */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        37: .line 1805
            iload 3 /* len */
            aload 5 /* dn */
            invokevirtual sun.security.ssl.HandshakeMessage$DistinguishedName.length:()I
            isub
            istore 3 /* len */
        end local 5 // sun.security.ssl.HandshakeMessage$DistinguishedName dn
        38: .line 1802
      StackMap locals:
      StackMap stack:
            iload 3 /* len */
            iconst_3
            if_icmpge 35
        39: .line 1808
            iload 3 /* len */
            ifeq 43
        40: .line 1809
            new javax.net.ssl.SSLProtocolException
            dup
        41: .line 1810
            new java.lang.StringBuilder
            dup
            ldc "Bad CertificateRequest DN length: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 3 /* len */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        42: .line 1809
            invokespecial javax.net.ssl.SSLProtocolException.<init>:(Ljava/lang/String;)V
            athrow
        43: .line 1813
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* v */
            aload 4 /* v */
            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: .line 1814
            return
        end local 4 // java.util.ArrayList v
        end local 3 // int len
        end local 2 // sun.security.ssl.ProtocolVersion protocolVersion
        end local 1 // sun.security.ssl.HandshakeInStream input
        end local 0 // sun.security.ssl.HandshakeMessage$CertificateRequest this
      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 // sun.security.ssl.HandshakeMessage$CertificateRequest this
         0: .line 1817
            aload 0 /* this */
            getfield sun.security.ssl.HandshakeMessage$CertificateRequest.authorities:[Lsun/security/ssl/HandshakeMessage$DistinguishedName;
            arraylength
            anewarray javax.security.auth.x500.X500Principal
            astore 1 /* ret */
        start local 1 // javax.security.auth.x500.X500Principal[] ret
         1: .line 1818
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 5
         3: .line 1819
      StackMap locals: javax.security.auth.x500.X500Principal[] int
      StackMap stack:
            aload 1 /* ret */
            iload 2 /* i */
            aload 0 /* this */
            getfield sun.security.ssl.HandshakeMessage$CertificateRequest.authorities:[Lsun/security/ssl/HandshakeMessage$DistinguishedName;
            iload 2 /* i */
            aaload
            invokevirtual sun.security.ssl.HandshakeMessage$DistinguishedName.getX500Principal:()Ljavax/security/auth/x500/X500Principal;
            aastore
         4: .line 1818
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* i */
            aload 0 /* this */
            getfield sun.security.ssl.HandshakeMessage$CertificateRequest.authorities:[Lsun/security/ssl/HandshakeMessage$DistinguishedName;
            arraylength
            if_icmplt 3
        end local 2 // int i
         6: .line 1821
            aload 1 /* ret */
            areturn
        end local 1 // javax.security.auth.x500.X500Principal[] ret
        end local 0 // sun.security.ssl.HandshakeMessage$CertificateRequest this
      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 // sun.security.ssl.HandshakeMessage$CertificateRequest this
         0: .line 1825
            aload 0 /* this */
            getfield sun.security.ssl.HandshakeMessage$CertificateRequest.algorithms:Ljava/util/Collection;
            areturn
        end local 0 // sun.security.ssl.HandshakeMessage$CertificateRequest this
      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 // sun.security.ssl.HandshakeMessage$CertificateRequest this
         0: .line 1830
            bipush 13
            ireturn
        end local 0 // sun.security.ssl.HandshakeMessage$CertificateRequest this
      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 // sun.security.ssl.HandshakeMessage$CertificateRequest this
         0: .line 1835
            iconst_1
            aload 0 /* this */
            getfield sun.security.ssl.HandshakeMessage$CertificateRequest.types:[B
            arraylength
            iadd
            iconst_2
            iadd
            istore 1 /* len */
        start local 1 // int len
         1: .line 1837
            aload 0 /* this */
            getfield sun.security.ssl.HandshakeMessage$CertificateRequest.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            invokevirtual sun.security.ssl.ProtocolVersion.useTLS12PlusSpec:()Z
            ifeq 3
         2: .line 1838
            iload 1 /* len */
            aload 0 /* this */
            getfield sun.security.ssl.HandshakeMessage$CertificateRequest.algorithmsLen:I
            iconst_2
            iadd
            iadd
            istore 1 /* len */
         3: .line 1841
      StackMap locals: int
      StackMap stack:
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         4: goto 7
         5: .line 1842
      StackMap locals: int
      StackMap stack:
            iload 1 /* len */
            aload 0 /* this */
            getfield sun.security.ssl.HandshakeMessage$CertificateRequest.authorities:[Lsun/security/ssl/HandshakeMessage$DistinguishedName;
            iload 2 /* i */
            aaload
            invokevirtual sun.security.ssl.HandshakeMessage$DistinguishedName.length:()I
            iadd
            istore 1 /* len */
         6: .line 1841
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 2 /* i */
            aload 0 /* this */
            getfield sun.security.ssl.HandshakeMessage$CertificateRequest.authorities:[Lsun/security/ssl/HandshakeMessage$DistinguishedName;
            arraylength
            if_icmplt 5
        end local 2 // int i
         8: .line 1845
            iload 1 /* len */
            ireturn
        end local 1 // int len
        end local 0 // sun.security.ssl.HandshakeMessage$CertificateRequest this
      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 // sun.security.ssl.HandshakeMessage$CertificateRequest this
        start local 1 // sun.security.ssl.HandshakeOutStream output
         0: .line 1851
            aload 1 /* output */
            aload 0 /* this */
            getfield sun.security.ssl.HandshakeMessage$CertificateRequest.types:[B
            invokevirtual sun.security.ssl.HandshakeOutStream.putBytes8:([B)V
         1: .line 1854
            aload 0 /* this */
            getfield sun.security.ssl.HandshakeMessage$CertificateRequest.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            invokevirtual sun.security.ssl.ProtocolVersion.useTLS12PlusSpec:()Z
            ifeq 8
         2: .line 1855
            aload 1 /* output */
            aload 0 /* this */
            getfield sun.security.ssl.HandshakeMessage$CertificateRequest.algorithmsLen:I
            invokevirtual sun.security.ssl.HandshakeOutStream.putInt16:(I)V
         3: .line 1856
            aload 0 /* this */
            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 /* algorithm */
        start local 2 // sun.security.ssl.SignatureAndHashAlgorithm algorithm
         5: .line 1857
            aload 1 /* output */
            aload 2 /* algorithm */
            invokevirtual sun.security.ssl.SignatureAndHashAlgorithm.getHashValue:()I
            invokevirtual sun.security.ssl.HandshakeOutStream.putInt8:(I)V
         6: .line 1858
            aload 1 /* output */
            aload 2 /* algorithm */
            invokevirtual sun.security.ssl.SignatureAndHashAlgorithm.getSignatureValue:()I
            invokevirtual sun.security.ssl.HandshakeOutStream.putInt8:(I)V
        end local 2 // sun.security.ssl.SignatureAndHashAlgorithm algorithm
         7: .line 1856
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         8: .line 1863
      StackMap locals: sun.security.ssl.HandshakeMessage$CertificateRequest sun.security.ssl.HandshakeOutStream
      StackMap stack:
            iconst_0
            istore 2 /* len */
        start local 2 // int len
         9: .line 1864
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        10: goto 13
        11: .line 1865
      StackMap locals: int int
      StackMap stack:
            iload 2 /* len */
            aload 0 /* this */
            getfield sun.security.ssl.HandshakeMessage$CertificateRequest.authorities:[Lsun/security/ssl/HandshakeMessage$DistinguishedName;
            iload 3 /* i */
            aaload
            invokevirtual sun.security.ssl.HandshakeMessage$DistinguishedName.length:()I
            iadd
            istore 2 /* len */
        12: .line 1864
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 3 /* i */
            aload 0 /* this */
            getfield sun.security.ssl.HandshakeMessage$CertificateRequest.authorities:[Lsun/security/ssl/HandshakeMessage$DistinguishedName;
            arraylength
            if_icmplt 11
        end local 3 // int i
        14: .line 1868
            aload 1 /* output */
            iload 2 /* len */
            invokevirtual sun.security.ssl.HandshakeOutStream.putInt16:(I)V
        15: .line 1869
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        16: goto 19
        17: .line 1870
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.HandshakeMessage$CertificateRequest.authorities:[Lsun/security/ssl/HandshakeMessage$DistinguishedName;
            iload 3 /* i */
            aaload
            aload 1 /* output */
            invokevirtual sun.security.ssl.HandshakeMessage$DistinguishedName.send:(Lsun/security/ssl/HandshakeOutStream;)V
        18: .line 1869
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        19: iload 3 /* i */
            aload 0 /* this */
            getfield sun.security.ssl.HandshakeMessage$CertificateRequest.authorities:[Lsun/security/ssl/HandshakeMessage$DistinguishedName;
            arraylength
            if_icmplt 17
        end local 3 // int i
        20: .line 1872
            return
        end local 2 // int len
        end local 1 // sun.security.ssl.HandshakeOutStream output
        end local 0 // sun.security.ssl.HandshakeMessage$CertificateRequest this
      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 // sun.security.ssl.HandshakeMessage$CertificateRequest this
        start local 1 // java.io.PrintStream s
         0: .line 1876
            aload 1 /* s */
            ldc "*** CertificateRequest"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         1: .line 1878
            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: .line 1879
            aload 1 /* s */
            ldc "Cert Types: "
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
         3: .line 1880
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         4: goto 19
         5: .line 1881
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.HandshakeMessage$CertificateRequest.types:[B
            iload 2 /* i */
            baload
            lookupswitch { // 9
                    1: 6
                    2: 7
                    3: 8
                    4: 9
                    5: 10
                    6: 11
                   64: 12
                   65: 13
                   66: 14
              default: 15
          }
         6: .line 1883
      StackMap locals:
      StackMap stack:
            aload 1 /* s */
            ldc "RSA"
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
            goto 16
         7: .line 1885
      StackMap locals:
      StackMap stack:
            aload 1 /* s */
            ldc "DSS"
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
            goto 16
         8: .line 1887
      StackMap locals:
      StackMap stack:
            aload 1 /* s */
            ldc "Fixed DH (RSA sig)"
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
            goto 16
         9: .line 1889
      StackMap locals:
      StackMap stack:
            aload 1 /* s */
            ldc "Fixed DH (DSS sig)"
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
            goto 16
        10: .line 1891
      StackMap locals:
      StackMap stack:
            aload 1 /* s */
            ldc "Ephemeral DH (RSA sig)"
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
            goto 16
        11: .line 1893
      StackMap locals:
      StackMap stack:
            aload 1 /* s */
            ldc "Ephemeral DH (DSS sig)"
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
            goto 16
        12: .line 1895
      StackMap locals:
      StackMap stack:
            aload 1 /* s */
            ldc "ECDSA"
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
            goto 16
        13: .line 1897
      StackMap locals:
      StackMap stack:
            aload 1 /* s */
            ldc "Fixed ECDH (RSA sig)"
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
            goto 16
        14: .line 1899
      StackMap locals:
      StackMap stack:
            aload 1 /* s */
            ldc "Fixed ECDH (ECDSA sig)"
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
            goto 16
        15: .line 1901
      StackMap locals:
      StackMap stack:
            aload 1 /* s */
            new java.lang.StringBuilder
            dup
            ldc "Type-"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield sun.security.ssl.HandshakeMessage$CertificateRequest.types:[B
            iload 2 /* i */
            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: .line 1903
      StackMap locals:
      StackMap stack:
            iload 2 /* i */
            aload 0 /* this */
            getfield sun.security.ssl.HandshakeMessage$CertificateRequest.types:[B
            arraylength
            iconst_1
            isub
            if_icmpeq 18
        17: .line 1904
            aload 1 /* s */
            ldc ", "
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        18: .line 1880
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        19: iload 2 /* i */
            aload 0 /* this */
            getfield sun.security.ssl.HandshakeMessage$CertificateRequest.types:[B
            arraylength
            if_icmplt 5
        end local 2 // int i
        20: .line 1907
            aload 1 /* s */
            invokevirtual java.io.PrintStream.println:()V
        21: .line 1909
            aload 0 /* this */
            getfield sun.security.ssl.HandshakeMessage$CertificateRequest.protocolVersion:Lsun/security/ssl/ProtocolVersion;
            invokevirtual sun.security.ssl.ProtocolVersion.useTLS12PlusSpec:()Z
            ifeq 33
        22: .line 1910
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 2 /* sb */
        start local 2 // java.lang.StringBuilder sb
        23: .line 1911
            iconst_0
            istore 3 /* opened */
        start local 3 // boolean opened
        24: .line 1912
            aload 0 /* this */
            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 /* signAlg */
        start local 4 // sun.security.ssl.SignatureAndHashAlgorithm signAlg
        26: .line 1913
            iload 3 /* opened */
            ifeq 29
        27: .line 1914
            aload 2 /* sb */
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* signAlg */
            invokevirtual sun.security.ssl.SignatureAndHashAlgorithm.getAlgorithmName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        28: .line 1915
            goto 31
        29: .line 1916
      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 /* sb */
            aload 4 /* signAlg */
            invokevirtual sun.security.ssl.SignatureAndHashAlgorithm.getAlgorithmName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        30: .line 1917
            iconst_1
            istore 3 /* opened */
        end local 4 // sun.security.ssl.SignatureAndHashAlgorithm signAlg
        31: .line 1912
      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: .line 1920
            aload 1 /* s */
            new java.lang.StringBuilder
            dup
            ldc "Supported Signature Algorithms: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* sb */
            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 // boolean opened
        end local 2 // java.lang.StringBuilder sb
        33: .line 1923
      StackMap locals: sun.security.ssl.HandshakeMessage$CertificateRequest java.io.PrintStream
      StackMap stack:
            aload 1 /* s */
            ldc "Cert Authorities:"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        34: .line 1924
            aload 0 /* this */
            getfield sun.security.ssl.HandshakeMessage$CertificateRequest.authorities:[Lsun/security/ssl/HandshakeMessage$DistinguishedName;
            arraylength
            ifne 37
        35: .line 1925
            aload 1 /* s */
            ldc "<Empty>"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        36: .line 1926
            goto 42
        37: .line 1927
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* i */
        start local 2 // int i
        38: goto 41
        39: .line 1928
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.ssl.HandshakeMessage$CertificateRequest.authorities:[Lsun/security/ssl/HandshakeMessage$DistinguishedName;
            iload 2 /* i */
            aaload
            aload 1 /* s */
            invokevirtual sun.security.ssl.HandshakeMessage$DistinguishedName.print:(Ljava/io/PrintStream;)V
        40: .line 1927
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        41: iload 2 /* i */
            aload 0 /* this */
            getfield sun.security.ssl.HandshakeMessage$CertificateRequest.authorities:[Lsun/security/ssl/HandshakeMessage$DistinguishedName;
            arraylength
            if_icmplt 39
        end local 2 // int i
        42: .line 1932
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.io.PrintStream s
        end local 0 // sun.security.ssl.HandshakeMessage$CertificateRequest this
      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