final class sun.security.ssl.CertificateRequest$T12CertificateRequestMessage extends sun.security.ssl.SSLHandshake$HandshakeMessage
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: sun.security.ssl.CertificateRequest$T12CertificateRequestMessage
  super_class: sun.security.ssl.SSLHandshake$HandshakeMessage
{
  final byte[] types;
    descriptor: [B
    flags: (0x0010) ACC_FINAL

  final int[] algorithmIds;
    descriptor: [I
    flags: (0x0010) ACC_FINAL

  final java.util.List<byte[]> authorities;
    descriptor: Ljava/util/List;
    flags: (0x0010) ACC_FINAL
    Signature: Ljava/util/List<[B>;

  void <init>(sun.security.ssl.HandshakeContext, java.security.cert.X509Certificate[], sun.security.ssl.CipherSuite$KeyExchange, java.util.List<sun.security.ssl.SignatureScheme>);
    descriptor: (Lsun/security/ssl/HandshakeContext;[Ljava/security/cert/X509Certificate;Lsun/security/ssl/CipherSuite$KeyExchange;Ljava/util/List;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=11, args_size=5
        start local 0 // sun.security.ssl.CertificateRequest$T12CertificateRequestMessage this
        start local 1 // sun.security.ssl.HandshakeContext handshakeContext
        start local 2 // java.security.cert.X509Certificate[] trustedCerts
        start local 3 // sun.security.ssl.CipherSuite$KeyExchange keyExchange
        start local 4 // java.util.List signatureSchemes
         0: .line 413
            aload 0 /* this */
            aload 1 /* handshakeContext */
            invokespecial sun.security.ssl.SSLHandshake$HandshakeMessage.<init>:(Lsun/security/ssl/HandshakeContext;)V
         1: .line 415
            aload 0 /* this */
            getstatic sun.security.ssl.CertificateRequest$ClientCertificateType.CERT_TYPES:[B
            putfield sun.security.ssl.CertificateRequest$T12CertificateRequestMessage.types:[B
         2: .line 417
            aload 4 /* signatureSchemes */
            ifnull 3
            aload 4 /* signatureSchemes */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 6
         3: .line 418
      StackMap locals: sun.security.ssl.CertificateRequest$T12CertificateRequestMessage sun.security.ssl.HandshakeContext java.security.cert.X509Certificate[] sun.security.ssl.CipherSuite$KeyExchange java.util.List
      StackMap stack:
            aload 1 /* handshakeContext */
            getfield sun.security.ssl.HandshakeContext.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.ILLEGAL_PARAMETER:Lsun/security/ssl/Alert;
         4: .line 419
            ldc "No signature algorithms specified for CertificateRequest hanshake message"
         5: .line 418
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
            athrow
         6: .line 422
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* signatureSchemes */
            invokeinterface java.util.List.size:()I
            newarray 10
            putfield sun.security.ssl.CertificateRequest$T12CertificateRequestMessage.algorithmIds:[I
         7: .line 423
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         8: .line 424
            aload 4 /* signatureSchemes */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 11
      StackMap locals: sun.security.ssl.CertificateRequest$T12CertificateRequestMessage sun.security.ssl.HandshakeContext java.security.cert.X509Certificate[] sun.security.ssl.CipherSuite$KeyExchange java.util.List int top java.util.Iterator
      StackMap stack:
         9: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.security.ssl.SignatureScheme
            astore 6 /* scheme */
        start local 6 // sun.security.ssl.SignatureScheme scheme
        10: .line 425
            aload 0 /* this */
            getfield sun.security.ssl.CertificateRequest$T12CertificateRequestMessage.algorithmIds:[I
            iload 5 /* i */
            iinc 5 /* i */ 1
            aload 6 /* scheme */
            getfield sun.security.ssl.SignatureScheme.id:I
            iastore
        end local 6 // sun.security.ssl.SignatureScheme scheme
        11: .line 424
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        12: .line 428
            aload 0 /* this */
            new java.util.ArrayList
            dup
            aload 2 /* trustedCerts */
            arraylength
            invokespecial java.util.ArrayList.<init>:(I)V
            putfield sun.security.ssl.CertificateRequest$T12CertificateRequestMessage.authorities:Ljava/util/List;
        13: .line 429
            aload 2 /* trustedCerts */
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 18
      StackMap locals: sun.security.ssl.CertificateRequest$T12CertificateRequestMessage sun.security.ssl.HandshakeContext java.security.cert.X509Certificate[] sun.security.ssl.CipherSuite$KeyExchange java.util.List int top int int java.security.cert.X509Certificate[]
      StackMap stack:
        14: aload 9
            iload 7
            aaload
            astore 6 /* cert */
        start local 6 // java.security.cert.X509Certificate cert
        15: .line 430
            aload 6 /* cert */
            invokevirtual java.security.cert.X509Certificate.getSubjectX500Principal:()Ljavax/security/auth/x500/X500Principal;
            astore 10 /* x500Principal */
        start local 10 // javax.security.auth.x500.X500Principal x500Principal
        16: .line 431
            aload 0 /* this */
            getfield sun.security.ssl.CertificateRequest$T12CertificateRequestMessage.authorities:Ljava/util/List;
            aload 10 /* x500Principal */
            invokevirtual javax.security.auth.x500.X500Principal.getEncoded:()[B
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 10 // javax.security.auth.x500.X500Principal x500Principal
        end local 6 // java.security.cert.X509Certificate cert
        17: .line 429
            iinc 7 1
      StackMap locals:
      StackMap stack:
        18: iload 7
            iload 8
            if_icmplt 14
        19: .line 433
            return
        end local 5 // int i
        end local 4 // java.util.List signatureSchemes
        end local 3 // sun.security.ssl.CipherSuite$KeyExchange keyExchange
        end local 2 // java.security.cert.X509Certificate[] trustedCerts
        end local 1 // sun.security.ssl.HandshakeContext handshakeContext
        end local 0 // sun.security.ssl.CertificateRequest$T12CertificateRequestMessage this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   20     0              this  Lsun/security/ssl/CertificateRequest$T12CertificateRequestMessage;
            0   20     1  handshakeContext  Lsun/security/ssl/HandshakeContext;
            0   20     2      trustedCerts  [Ljava/security/cert/X509Certificate;
            0   20     3       keyExchange  Lsun/security/ssl/CipherSuite$KeyExchange;
            0   20     4  signatureSchemes  Ljava/util/List<Lsun/security/ssl/SignatureScheme;>;
            8   20     5                 i  I
           10   11     6            scheme  Lsun/security/ssl/SignatureScheme;
           15   17     6              cert  Ljava/security/cert/X509Certificate;
           16   17    10     x500Principal  Ljavax/security/auth/x500/X500Principal;
    Exceptions:
      throws java.io.IOException
    Signature: (Lsun/security/ssl/HandshakeContext;[Ljava/security/cert/X509Certificate;Lsun/security/ssl/CipherSuite$KeyExchange;Ljava/util/List<Lsun/security/ssl/SignatureScheme;>;)V
    MethodParameters:
                  Name  Flags
      handshakeContext  
      trustedCerts      
      keyExchange       
      signatureSchemes  

  void <init>(sun.security.ssl.HandshakeContext, java.nio.ByteBuffer);
    descriptor: (Lsun/security/ssl/HandshakeContext;Ljava/nio/ByteBuffer;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // sun.security.ssl.CertificateRequest$T12CertificateRequestMessage this
        start local 1 // sun.security.ssl.HandshakeContext handshakeContext
        start local 2 // java.nio.ByteBuffer m
         0: .line 437
            aload 0 /* this */
            aload 1 /* handshakeContext */
            invokespecial sun.security.ssl.SSLHandshake$HandshakeMessage.<init>:(Lsun/security/ssl/HandshakeContext;)V
         1: .line 447
            aload 2 /* m */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            bipush 8
            if_icmpge 5
         2: .line 448
            aload 1 /* handshakeContext */
            getfield sun.security.ssl.HandshakeContext.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.ILLEGAL_PARAMETER:Lsun/security/ssl/Alert;
         3: .line 449
            ldc "Invalid CertificateRequest handshake message: no sufficient data"
         4: .line 448
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
            athrow
         5: .line 452
      StackMap locals: sun.security.ssl.CertificateRequest$T12CertificateRequestMessage sun.security.ssl.HandshakeContext java.nio.ByteBuffer
      StackMap stack:
            aload 0 /* this */
            aload 2 /* m */
            invokestatic sun.security.ssl.Record.getBytes8:(Ljava/nio/ByteBuffer;)[B
            putfield sun.security.ssl.CertificateRequest$T12CertificateRequestMessage.types:[B
         6: .line 455
            aload 2 /* m */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            bipush 6
            if_icmpge 10
         7: .line 456
            aload 1 /* handshakeContext */
            getfield sun.security.ssl.HandshakeContext.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.ILLEGAL_PARAMETER:Lsun/security/ssl/Alert;
         8: .line 457
            ldc "Invalid CertificateRequest handshake message: no sufficient data"
         9: .line 456
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
            athrow
        10: .line 461
      StackMap locals:
      StackMap stack:
            aload 2 /* m */
            invokestatic sun.security.ssl.Record.getBytes16:(Ljava/nio/ByteBuffer;)[B
            astore 3 /* algs */
        start local 3 // byte[] algs
        11: .line 462
            aload 3 /* algs */
            ifnull 12
            aload 3 /* algs */
            arraylength
            ifeq 12
            aload 3 /* algs */
            arraylength
            iconst_1
            iand
            ifeq 15
        12: .line 463
      StackMap locals: byte[]
      StackMap stack:
            aload 1 /* handshakeContext */
            getfield sun.security.ssl.HandshakeContext.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.ILLEGAL_PARAMETER:Lsun/security/ssl/Alert;
        13: .line 464
            ldc "Invalid CertificateRequest handshake message: incomplete signature algorithms"
        14: .line 463
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
            athrow
        15: .line 468
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* algs */
            arraylength
            iconst_1
            ishr
            newarray 10
            putfield sun.security.ssl.CertificateRequest$T12CertificateRequestMessage.algorithmIds:[I
        16: .line 469
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        17: iconst_0
            istore 5 /* j */
        start local 5 // int j
        18: goto 22
        19: .line 470
      StackMap locals: int int
      StackMap stack:
            aload 3 /* algs */
            iload 4 /* i */
            iinc 4 /* i */ 1
            baload
            istore 6 /* hash */
        start local 6 // byte hash
        20: .line 471
            aload 3 /* algs */
            iload 4 /* i */
            iinc 4 /* i */ 1
            baload
            istore 7 /* sign */
        start local 7 // byte sign
        21: .line 472
            aload 0 /* this */
            getfield sun.security.ssl.CertificateRequest$T12CertificateRequestMessage.algorithmIds:[I
            iload 5 /* j */
            iinc 5 /* j */ 1
            iload 6 /* hash */
            sipush 255
            iand
            bipush 8
            ishl
            iload 7 /* sign */
            sipush 255
            iand
            ior
            iastore
        end local 7 // byte sign
        end local 6 // byte hash
        22: .line 469
      StackMap locals:
      StackMap stack:
            iload 4 /* i */
            aload 3 /* algs */
            arraylength
            if_icmplt 19
        end local 5 // int j
        end local 4 // int i
        23: .line 476
            aload 2 /* m */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            iconst_2
            if_icmpge 27
        24: .line 477
            aload 1 /* handshakeContext */
            getfield sun.security.ssl.HandshakeContext.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.ILLEGAL_PARAMETER:Lsun/security/ssl/Alert;
        25: .line 478
            ldc "Invalid CertificateRequest handshake message: no sufficient data"
        26: .line 477
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
            athrow
        27: .line 482
      StackMap locals:
      StackMap stack:
            aload 2 /* m */
            invokestatic sun.security.ssl.Record.getInt16:(Ljava/nio/ByteBuffer;)I
            istore 4 /* listLen */
        start local 4 // int listLen
        28: .line 483
            iload 4 /* listLen */
            aload 2 /* m */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            if_icmple 32
        29: .line 484
            aload 1 /* handshakeContext */
            getfield sun.security.ssl.HandshakeContext.conContext:Lsun/security/ssl/TransportContext;
            getstatic sun.security.ssl.Alert.ILLEGAL_PARAMETER:Lsun/security/ssl/Alert;
        30: .line 485
            ldc "Invalid CertificateRequest message: no sufficient data"
        31: .line 484
            invokevirtual sun.security.ssl.TransportContext.fatal:(Lsun/security/ssl/Alert;Ljava/lang/String;)Ljavax/net/ssl/SSLException;
            athrow
        32: .line 488
      StackMap locals: int
      StackMap stack:
            iload 4 /* listLen */
            ifle 40
        33: .line 489
            aload 0 /* this */
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            putfield sun.security.ssl.CertificateRequest$T12CertificateRequestMessage.authorities:Ljava/util/List;
        34: .line 490
            goto 38
        35: .line 492
      StackMap locals:
      StackMap stack:
            aload 2 /* m */
            invokestatic sun.security.ssl.Record.getBytes16:(Ljava/nio/ByteBuffer;)[B
            astore 5 /* encoded */
        start local 5 // byte[] encoded
        36: .line 493
            iload 4 /* listLen */
            iconst_2
            aload 5 /* encoded */
            arraylength
            iadd
            isub
            istore 4 /* listLen */
        37: .line 494
            aload 0 /* this */
            getfield sun.security.ssl.CertificateRequest$T12CertificateRequestMessage.authorities:Ljava/util/List;
            aload 5 /* encoded */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 5 // byte[] encoded
        38: .line 490
      StackMap locals:
      StackMap stack:
            iload 4 /* listLen */
            ifgt 35
        39: .line 496
            goto 41
        40: .line 497
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            putfield sun.security.ssl.CertificateRequest$T12CertificateRequestMessage.authorities:Ljava/util/List;
        41: .line 499
      StackMap locals:
      StackMap stack:
            return
        end local 4 // int listLen
        end local 3 // byte[] algs
        end local 2 // java.nio.ByteBuffer m
        end local 1 // sun.security.ssl.HandshakeContext handshakeContext
        end local 0 // sun.security.ssl.CertificateRequest$T12CertificateRequestMessage this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   42     0              this  Lsun/security/ssl/CertificateRequest$T12CertificateRequestMessage;
            0   42     1  handshakeContext  Lsun/security/ssl/HandshakeContext;
            0   42     2                 m  Ljava/nio/ByteBuffer;
           11   42     3              algs  [B
           17   23     4                 i  I
           18   23     5                 j  I
           20   22     6              hash  B
           21   22     7              sign  B
           28   42     4           listLen  I
           36   38     5           encoded  [B
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                  Name  Flags
      handshakeContext  
      m                 

  java.lang.String[] getKeyTypes();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.CertificateRequest$T12CertificateRequestMessage this
         0: .line 502
            aload 0 /* this */
            getfield sun.security.ssl.CertificateRequest$T12CertificateRequestMessage.types:[B
            invokestatic sun.security.ssl.CertificateRequest$ClientCertificateType.getKeyTypes:([B)[Ljava/lang/String;
            areturn
        end local 0 // sun.security.ssl.CertificateRequest$T12CertificateRequestMessage this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/CertificateRequest$T12CertificateRequestMessage;

  javax.security.auth.x500.X500Principal[] getAuthorities();
    descriptor: ()[Ljavax/security/auth/x500/X500Principal;
    flags: (0x0000) 
    Code:
      stack=5, locals=5, args_size=1
        start local 0 // sun.security.ssl.CertificateRequest$T12CertificateRequestMessage this
         0: .line 506
            aload 0 /* this */
            getfield sun.security.ssl.CertificateRequest$T12CertificateRequestMessage.authorities:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            anewarray javax.security.auth.x500.X500Principal
            astore 1 /* principals */
        start local 1 // javax.security.auth.x500.X500Principal[] principals
         1: .line 507
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: .line 508
            aload 0 /* this */
            getfield sun.security.ssl.CertificateRequest$T12CertificateRequestMessage.authorities:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 5
      StackMap locals: sun.security.ssl.CertificateRequest$T12CertificateRequestMessage javax.security.auth.x500.X500Principal[] int top java.util.Iterator
      StackMap stack:
         3: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast byte[]
            astore 3 /* encoded */
        start local 3 // byte[] encoded
         4: .line 509
            aload 1 /* principals */
            iload 2 /* i */
            iinc 2 /* i */ 1
            new javax.security.auth.x500.X500Principal
            dup
            aload 3 /* encoded */
            invokespecial javax.security.auth.x500.X500Principal.<init>:([B)V
            aastore
        end local 3 // byte[] encoded
         5: .line 508
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         6: .line 512
            aload 1 /* principals */
            areturn
        end local 2 // int i
        end local 1 // javax.security.auth.x500.X500Principal[] principals
        end local 0 // sun.security.ssl.CertificateRequest$T12CertificateRequestMessage this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lsun/security/ssl/CertificateRequest$T12CertificateRequestMessage;
            1    7     1  principals  [Ljavax/security/auth/x500/X500Principal;
            2    7     2           i  I
            4    5     3     encoded  [B

  public sun.security.ssl.SSLHandshake handshakeType();
    descriptor: ()Lsun/security/ssl/SSLHandshake;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.CertificateRequest$T12CertificateRequestMessage this
         0: .line 517
            getstatic sun.security.ssl.SSLHandshake.CERTIFICATE_REQUEST:Lsun/security/ssl/SSLHandshake;
            areturn
        end local 0 // sun.security.ssl.CertificateRequest$T12CertificateRequestMessage this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/CertificateRequest$T12CertificateRequestMessage;

  public int messageLength();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // sun.security.ssl.CertificateRequest$T12CertificateRequestMessage this
         0: .line 522
            iconst_1
            aload 0 /* this */
            getfield sun.security.ssl.CertificateRequest$T12CertificateRequestMessage.types:[B
            arraylength
            iadd
            iconst_2
            iadd
            aload 0 /* this */
            getfield sun.security.ssl.CertificateRequest$T12CertificateRequestMessage.algorithmIds:[I
            arraylength
            iconst_1
            ishl
            iadd
            iconst_2
            iadd
            istore 1 /* len */
        start local 1 // int len
         1: .line 523
            aload 0 /* this */
            getfield sun.security.ssl.CertificateRequest$T12CertificateRequestMessage.authorities:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: sun.security.ssl.CertificateRequest$T12CertificateRequestMessage int top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast byte[]
            astore 2 /* encoded */
        start local 2 // byte[] encoded
         3: .line 524
            iload 1 /* len */
            aload 2 /* encoded */
            arraylength
            iconst_2
            iadd
            iadd
            istore 1 /* len */
        end local 2 // byte[] encoded
         4: .line 523
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 526
            iload 1 /* len */
            ireturn
        end local 1 // int len
        end local 0 // sun.security.ssl.CertificateRequest$T12CertificateRequestMessage this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lsun/security/ssl/CertificateRequest$T12CertificateRequestMessage;
            1    6     1      len  I
            3    4     2  encoded  [B

  public void send(sun.security.ssl.HandshakeOutStream);
    descriptor: (Lsun/security/ssl/HandshakeOutStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // sun.security.ssl.CertificateRequest$T12CertificateRequestMessage this
        start local 1 // sun.security.ssl.HandshakeOutStream hos
         0: .line 531
            aload 1 /* hos */
            aload 0 /* this */
            getfield sun.security.ssl.CertificateRequest$T12CertificateRequestMessage.types:[B
            invokevirtual sun.security.ssl.HandshakeOutStream.putBytes8:([B)V
         1: .line 533
            iconst_0
            istore 2 /* listLen */
        start local 2 // int listLen
         2: .line 534
            aload 0 /* this */
            getfield sun.security.ssl.CertificateRequest$T12CertificateRequestMessage.authorities:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 5
      StackMap locals: sun.security.ssl.CertificateRequest$T12CertificateRequestMessage sun.security.ssl.HandshakeOutStream int top java.util.Iterator
      StackMap stack:
         3: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast byte[]
            astore 3 /* encoded */
        start local 3 // byte[] encoded
         4: .line 535
            iload 2 /* listLen */
            aload 3 /* encoded */
            arraylength
            iconst_2
            iadd
            iadd
            istore 2 /* listLen */
        end local 3 // byte[] encoded
         5: .line 534
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
         6: .line 538
            aload 1 /* hos */
            aload 0 /* this */
            getfield sun.security.ssl.CertificateRequest$T12CertificateRequestMessage.algorithmIds:[I
            arraylength
            iconst_1
            ishl
            invokevirtual sun.security.ssl.HandshakeOutStream.putInt16:(I)V
         7: .line 539
            aload 0 /* this */
            getfield sun.security.ssl.CertificateRequest$T12CertificateRequestMessage.algorithmIds:[I
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 11
      StackMap locals: sun.security.ssl.CertificateRequest$T12CertificateRequestMessage sun.security.ssl.HandshakeOutStream int top int int int[]
      StackMap stack:
         8: aload 6
            iload 4
            iaload
            istore 3 /* algorithmId */
        start local 3 // int algorithmId
         9: .line 540
            aload 1 /* hos */
            iload 3 /* algorithmId */
            invokevirtual sun.security.ssl.HandshakeOutStream.putInt16:(I)V
        end local 3 // int algorithmId
        10: .line 539
            iinc 4 1
      StackMap locals:
      StackMap stack:
        11: iload 4
            iload 5
            if_icmplt 8
        12: .line 543
            aload 1 /* hos */
            iload 2 /* listLen */
            invokevirtual sun.security.ssl.HandshakeOutStream.putInt16:(I)V
        13: .line 544
            aload 0 /* this */
            getfield sun.security.ssl.CertificateRequest$T12CertificateRequestMessage.authorities:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 16
      StackMap locals: sun.security.ssl.CertificateRequest$T12CertificateRequestMessage sun.security.ssl.HandshakeOutStream int top java.util.Iterator
      StackMap stack:
        14: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast byte[]
            astore 3 /* encoded */
        start local 3 // byte[] encoded
        15: .line 545
            aload 1 /* hos */
            aload 3 /* encoded */
            invokevirtual sun.security.ssl.HandshakeOutStream.putBytes16:([B)V
        end local 3 // byte[] encoded
        16: .line 544
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 14
        17: .line 547
            return
        end local 2 // int listLen
        end local 1 // sun.security.ssl.HandshakeOutStream hos
        end local 0 // sun.security.ssl.CertificateRequest$T12CertificateRequestMessage this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   18     0         this  Lsun/security/ssl/CertificateRequest$T12CertificateRequestMessage;
            0   18     1          hos  Lsun/security/ssl/HandshakeOutStream;
            2   18     2      listLen  I
            4    5     3      encoded  [B
            9   10     3  algorithmId  I
           15   16     3      encoded  [B
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      hos   

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=1
        start local 0 // sun.security.ssl.CertificateRequest$T12CertificateRequestMessage this
         0: .line 551
            new java.text.MessageFormat
            dup
         1: .line 552
            ldc "\"CertificateRequest\": '{'\n  \"certificate types\": {0}\n  \"supported signature algorithms\": {1}\n  \"certificate authorities\": {2}\n'}'"
         2: .line 557
            getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
         3: .line 551
            invokespecial java.text.MessageFormat.<init>:(Ljava/lang/String;Ljava/util/Locale;)V
            astore 1 /* messageFormat */
        start local 1 // java.text.MessageFormat messageFormat
         4: .line 559
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield sun.security.ssl.CertificateRequest$T12CertificateRequestMessage.types:[B
            arraylength
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 2 /* typeNames */
        start local 2 // java.util.List typeNames
         5: .line 560
            aload 0 /* this */
            getfield sun.security.ssl.CertificateRequest$T12CertificateRequestMessage.types:[B
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 9
      StackMap locals: sun.security.ssl.CertificateRequest$T12CertificateRequestMessage java.text.MessageFormat java.util.List top int int byte[]
      StackMap stack:
         6: aload 6
            iload 4
            baload
            istore 3 /* type */
        start local 3 // byte type
         7: .line 561
            aload 2 /* typeNames */
            iload 3 /* type */
            invokestatic sun.security.ssl.CertificateRequest$ClientCertificateType.nameOf:(B)Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // byte type
         8: .line 560
            iinc 4 1
      StackMap locals:
      StackMap stack:
         9: iload 4
            iload 5
            if_icmplt 6
        10: .line 564
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield sun.security.ssl.CertificateRequest$T12CertificateRequestMessage.algorithmIds:[I
            arraylength
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 3 /* algorithmNames */
        start local 3 // java.util.List algorithmNames
        11: .line 565
            aload 0 /* this */
            getfield sun.security.ssl.CertificateRequest$T12CertificateRequestMessage.algorithmIds:[I
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 15
      StackMap locals: sun.security.ssl.CertificateRequest$T12CertificateRequestMessage java.text.MessageFormat java.util.List java.util.List top int int int[]
      StackMap stack:
        12: aload 7
            iload 5
            iaload
            istore 4 /* algorithmId */
        start local 4 // int algorithmId
        13: .line 566
            aload 3 /* algorithmNames */
            iload 4 /* algorithmId */
            invokestatic sun.security.ssl.SignatureScheme.nameOf:(I)Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // int algorithmId
        14: .line 565
            iinc 5 1
      StackMap locals:
      StackMap stack:
        15: iload 5
            iload 6
            if_icmplt 12
        16: .line 569
            new java.util.ArrayList
            dup
            aload 0 /* this */
            getfield sun.security.ssl.CertificateRequest$T12CertificateRequestMessage.authorities:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 4 /* authorityNames */
        start local 4 // java.util.List authorityNames
        17: .line 570
            aload 0 /* this */
            getfield sun.security.ssl.CertificateRequest$T12CertificateRequestMessage.authorities:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 21
      StackMap locals: sun.security.ssl.CertificateRequest$T12CertificateRequestMessage java.text.MessageFormat java.util.List java.util.List java.util.List top java.util.Iterator
      StackMap stack:
        18: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast byte[]
            astore 5 /* encoded */
        start local 5 // byte[] encoded
        19: .line 571
            new javax.security.auth.x500.X500Principal
            dup
            aload 5 /* encoded */
            invokespecial javax.security.auth.x500.X500Principal.<init>:([B)V
            astore 7 /* principal */
        start local 7 // javax.security.auth.x500.X500Principal principal
        20: .line 572
            aload 4 /* authorityNames */
            aload 7 /* principal */
            invokevirtual javax.security.auth.x500.X500Principal.toString:()Ljava/lang/String;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // javax.security.auth.x500.X500Principal principal
        end local 5 // byte[] encoded
        21: .line 570
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 18
        22: .line 574
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
        23: .line 575
            aload 2 /* typeNames */
            aastore
            dup
            iconst_1
        24: .line 576
            aload 3 /* algorithmNames */
            aastore
            dup
            iconst_2
        25: .line 577
            aload 4 /* authorityNames */
            aastore
        26: .line 574
            astore 5 /* messageFields */
        start local 5 // java.lang.Object[] messageFields
        27: .line 580
            aload 1 /* messageFormat */
            aload 5 /* messageFields */
            invokevirtual java.text.MessageFormat.format:(Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 5 // java.lang.Object[] messageFields
        end local 4 // java.util.List authorityNames
        end local 3 // java.util.List algorithmNames
        end local 2 // java.util.List typeNames
        end local 1 // java.text.MessageFormat messageFormat
        end local 0 // sun.security.ssl.CertificateRequest$T12CertificateRequestMessage this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   28     0            this  Lsun/security/ssl/CertificateRequest$T12CertificateRequestMessage;
            4   28     1   messageFormat  Ljava/text/MessageFormat;
            5   28     2       typeNames  Ljava/util/List<Ljava/lang/String;>;
            7    8     3            type  B
           11   28     3  algorithmNames  Ljava/util/List<Ljava/lang/String;>;
           13   14     4     algorithmId  I
           17   28     4  authorityNames  Ljava/util/List<Ljava/lang/String;>;
           19   21     5         encoded  [B
           20   21     7       principal  Ljavax/security/auth/x500/X500Principal;
           27   28     5   messageFields  [Ljava/lang/Object;
}
SourceFile: "CertificateRequest.java"
NestHost: sun.security.ssl.CertificateRequest
InnerClasses:
  private final ClientCertificateType = sun.security.ssl.CertificateRequest$ClientCertificateType of sun.security.ssl.CertificateRequest
  final T12CertificateRequestMessage = sun.security.ssl.CertificateRequest$T12CertificateRequestMessage of sun.security.ssl.CertificateRequest
  final KeyExchange = sun.security.ssl.CipherSuite$KeyExchange of sun.security.ssl.CipherSuite
  abstract HandshakeMessage = sun.security.ssl.SSLHandshake$HandshakeMessage of sun.security.ssl.SSLHandshake