final class sun.security.ssl.CertificateRequest$T10CertificateRequestConsumer implements sun.security.ssl.SSLConsumer
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: sun.security.ssl.CertificateRequest$T10CertificateRequestConsumer
  super_class: java.lang.Object
{
  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.CertificateRequest$T10CertificateRequestConsumer this
         0: .line 320
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 322
            return
        end local 0 // sun.security.ssl.CertificateRequest$T10CertificateRequestConsumer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/security/ssl/CertificateRequest$T10CertificateRequestConsumer;

  public void consume(sun.security.ssl.ConnectionContext, java.nio.ByteBuffer);
    descriptor: (Lsun/security/ssl/ConnectionContext;Ljava/nio/ByteBuffer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=10, args_size=3
        start local 0 // sun.security.ssl.CertificateRequest$T10CertificateRequestConsumer this
        start local 1 // sun.security.ssl.ConnectionContext context
        start local 2 // java.nio.ByteBuffer message
         0: .line 328
            aload 1 /* context */
            checkcast sun.security.ssl.ClientHandshakeContext
            astore 3 /* chc */
        start local 3 // sun.security.ssl.ClientHandshakeContext chc
         1: .line 331
            aload 3 /* chc */
            getfield sun.security.ssl.ClientHandshakeContext.handshakeConsumers:Ljava/util/LinkedHashMap;
            getstatic sun.security.ssl.SSLHandshake.CERTIFICATE_REQUEST:Lsun/security/ssl/SSLHandshake;
            getfield sun.security.ssl.SSLHandshake.id:B
            invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
            invokevirtual java.util.LinkedHashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 333
            aload 3 /* chc */
            getfield sun.security.ssl.ClientHandshakeContext.handshakeConsumers:Ljava/util/LinkedHashMap;
         3: .line 334
            getstatic sun.security.ssl.SSLHandshake.CERTIFICATE_STATUS:Lsun/security/ssl/SSLHandshake;
            getfield sun.security.ssl.SSLHandshake.id:B
            invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
         4: .line 333
            invokevirtual java.util.LinkedHashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast sun.security.ssl.SSLConsumer
            astore 4 /* certStatCons */
        start local 4 // sun.security.ssl.SSLConsumer certStatCons
         5: .line 335
            aload 4 /* certStatCons */
            ifnull 7
         6: .line 339
            getstatic sun.security.ssl.CertificateStatus.handshakeAbsence:Lsun/security/ssl/HandshakeAbsence;
            aload 1 /* context */
            aconst_null
            invokeinterface sun.security.ssl.HandshakeAbsence.absent:(Lsun/security/ssl/ConnectionContext;Lsun/security/ssl/SSLHandshake$HandshakeMessage;)V
         7: .line 343
      StackMap locals: sun.security.ssl.ClientHandshakeContext sun.security.ssl.SSLConsumer
      StackMap stack:
            new sun.security.ssl.CertificateRequest$T10CertificateRequestMessage
            dup
            aload 3 /* chc */
            aload 2 /* message */
            invokespecial sun.security.ssl.CertificateRequest$T10CertificateRequestMessage.<init>:(Lsun/security/ssl/HandshakeContext;Ljava/nio/ByteBuffer;)V
         8: .line 342
            astore 5 /* crm */
        start local 5 // sun.security.ssl.CertificateRequest$T10CertificateRequestMessage crm
         9: .line 344
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 12
            ldc "ssl,handshake"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 12
        10: .line 346
            ldc "Consuming CertificateRequest handshake message"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 5 /* crm */
            aastore
        11: .line 345
            invokestatic sun.security.ssl.SSLLogger.fine:(Ljava/lang/String;[Ljava/lang/Object;)V
        12: .line 359
      StackMap locals: sun.security.ssl.CertificateRequest$T10CertificateRequestMessage
      StackMap stack:
            aload 3 /* chc */
            getfield sun.security.ssl.ClientHandshakeContext.handshakeProducers:Ljava/util/HashMap;
            getstatic sun.security.ssl.SSLHandshake.CERTIFICATE:Lsun/security/ssl/SSLHandshake;
            getfield sun.security.ssl.SSLHandshake.id:B
            invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
        13: .line 360
            getstatic sun.security.ssl.SSLHandshake.CERTIFICATE:Lsun/security/ssl/SSLHandshake;
        14: .line 359
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        15: .line 362
            aload 3 /* chc */
            getfield sun.security.ssl.ClientHandshakeContext.sslContext:Lsun/security/ssl/SSLContextImpl;
            invokevirtual sun.security.ssl.SSLContextImpl.getX509KeyManager:()Ljavax/net/ssl/X509ExtendedKeyManager;
            astore 6 /* km */
        start local 6 // javax.net.ssl.X509ExtendedKeyManager km
        16: .line 363
            aconst_null
            astore 7 /* clientAlias */
        start local 7 // java.lang.String clientAlias
        17: .line 364
            aload 3 /* chc */
            getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.transport:Lsun/security/ssl/SSLTransport;
            instanceof sun.security.ssl.SSLSocketImpl
            ifeq 22
        18: .line 365
            aload 6 /* km */
            aload 5 /* crm */
            invokevirtual sun.security.ssl.CertificateRequest$T10CertificateRequestMessage.getKeyTypes:()[Ljava/lang/String;
        19: .line 366
            aload 5 /* crm */
            invokevirtual sun.security.ssl.CertificateRequest$T10CertificateRequestMessage.getAuthorities:()[Ljavax/security/auth/x500/X500Principal;
            aload 3 /* chc */
            getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.transport:Lsun/security/ssl/SSLTransport;
            checkcast javax.net.ssl.SSLSocket
        20: .line 365
            invokevirtual javax.net.ssl.X509ExtendedKeyManager.chooseClientAlias:([Ljava/lang/String;[Ljava/security/Principal;Ljava/net/Socket;)Ljava/lang/String;
            astore 7 /* clientAlias */
        21: .line 367
            goto 26
      StackMap locals: javax.net.ssl.X509ExtendedKeyManager java.lang.String
      StackMap stack:
        22: aload 3 /* chc */
            getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.transport:Lsun/security/ssl/SSLTransport;
            instanceof sun.security.ssl.SSLEngineImpl
            ifeq 26
        23: .line 368
            aload 6 /* km */
            aload 5 /* crm */
            invokevirtual sun.security.ssl.CertificateRequest$T10CertificateRequestMessage.getKeyTypes:()[Ljava/lang/String;
        24: .line 369
            aload 5 /* crm */
            invokevirtual sun.security.ssl.CertificateRequest$T10CertificateRequestMessage.getAuthorities:()[Ljavax/security/auth/x500/X500Principal;
            aload 3 /* chc */
            getfield sun.security.ssl.ClientHandshakeContext.conContext:Lsun/security/ssl/TransportContext;
            getfield sun.security.ssl.TransportContext.transport:Lsun/security/ssl/SSLTransport;
            checkcast javax.net.ssl.SSLEngine
        25: .line 368
            invokevirtual javax.net.ssl.X509ExtendedKeyManager.chooseEngineClientAlias:([Ljava/lang/String;[Ljava/security/Principal;Ljavax/net/ssl/SSLEngine;)Ljava/lang/String;
            astore 7 /* clientAlias */
        26: .line 373
      StackMap locals:
      StackMap stack:
            aload 7 /* clientAlias */
            ifnonnull 30
        27: .line 374
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 29
            ldc "ssl,handshake"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 29
        28: .line 375
            ldc "No available client authentication"
            iconst_0
            anewarray java.lang.Object
            invokestatic sun.security.ssl.SSLLogger.warning:(Ljava/lang/String;[Ljava/lang/Object;)V
        29: .line 377
      StackMap locals:
      StackMap stack:
            return
        30: .line 380
      StackMap locals:
      StackMap stack:
            aload 6 /* km */
            aload 7 /* clientAlias */
            invokevirtual javax.net.ssl.X509ExtendedKeyManager.getPrivateKey:(Ljava/lang/String;)Ljava/security/PrivateKey;
            astore 8 /* clientPrivateKey */
        start local 8 // java.security.PrivateKey clientPrivateKey
        31: .line 381
            aload 8 /* clientPrivateKey */
            ifnonnull 35
        32: .line 382
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 34
            ldc "ssl,handshake"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 34
        33: .line 383
            ldc "No available client private key"
            iconst_0
            anewarray java.lang.Object
            invokestatic sun.security.ssl.SSLLogger.warning:(Ljava/lang/String;[Ljava/lang/Object;)V
        34: .line 385
      StackMap locals: java.security.PrivateKey
      StackMap stack:
            return
        35: .line 388
      StackMap locals:
      StackMap stack:
            aload 6 /* km */
            aload 7 /* clientAlias */
            invokevirtual javax.net.ssl.X509ExtendedKeyManager.getCertificateChain:(Ljava/lang/String;)[Ljava/security/cert/X509Certificate;
            astore 9 /* clientCerts */
        start local 9 // java.security.cert.X509Certificate[] clientCerts
        36: .line 389
            aload 9 /* clientCerts */
            ifnull 37
            aload 9 /* clientCerts */
            arraylength
            ifne 40
        37: .line 390
      StackMap locals: java.security.cert.X509Certificate[]
      StackMap stack:
            getstatic sun.security.ssl.SSLLogger.isOn:Z
            ifeq 39
            ldc "ssl,handshake"
            invokestatic sun.security.ssl.SSLLogger.isOn:(Ljava/lang/String;)Z
            ifeq 39
        38: .line 391
            ldc "No available client certificate"
            iconst_0
            anewarray java.lang.Object
            invokestatic sun.security.ssl.SSLLogger.warning:(Ljava/lang/String;[Ljava/lang/Object;)V
        39: .line 393
      StackMap locals:
      StackMap stack:
            return
        40: .line 396
      StackMap locals:
      StackMap stack:
            aload 3 /* chc */
            getfield sun.security.ssl.ClientHandshakeContext.handshakePossessions:Ljava/util/List;
        41: .line 397
            new sun.security.ssl.X509Authentication$X509Possession
            dup
            aload 8 /* clientPrivateKey */
            aload 9 /* clientCerts */
            invokespecial sun.security.ssl.X509Authentication$X509Possession.<init>:(Ljava/security/PrivateKey;[Ljava/security/cert/X509Certificate;)V
        42: .line 396
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        43: .line 398
            aload 3 /* chc */
            getfield sun.security.ssl.ClientHandshakeContext.handshakeProducers:Ljava/util/HashMap;
            getstatic sun.security.ssl.SSLHandshake.CERTIFICATE_VERIFY:Lsun/security/ssl/SSLHandshake;
            getfield sun.security.ssl.SSLHandshake.id:B
            invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
        44: .line 399
            getstatic sun.security.ssl.SSLHandshake.CERTIFICATE_VERIFY:Lsun/security/ssl/SSLHandshake;
        45: .line 398
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        46: .line 400
            return
        end local 9 // java.security.cert.X509Certificate[] clientCerts
        end local 8 // java.security.PrivateKey clientPrivateKey
        end local 7 // java.lang.String clientAlias
        end local 6 // javax.net.ssl.X509ExtendedKeyManager km
        end local 5 // sun.security.ssl.CertificateRequest$T10CertificateRequestMessage crm
        end local 4 // sun.security.ssl.SSLConsumer certStatCons
        end local 3 // sun.security.ssl.ClientHandshakeContext chc
        end local 2 // java.nio.ByteBuffer message
        end local 1 // sun.security.ssl.ConnectionContext context
        end local 0 // sun.security.ssl.CertificateRequest$T10CertificateRequestConsumer this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   47     0              this  Lsun/security/ssl/CertificateRequest$T10CertificateRequestConsumer;
            0   47     1           context  Lsun/security/ssl/ConnectionContext;
            0   47     2           message  Ljava/nio/ByteBuffer;
            1   47     3               chc  Lsun/security/ssl/ClientHandshakeContext;
            5   47     4      certStatCons  Lsun/security/ssl/SSLConsumer;
            9   47     5               crm  Lsun/security/ssl/CertificateRequest$T10CertificateRequestMessage;
           16   47     6                km  Ljavax/net/ssl/X509ExtendedKeyManager;
           17   47     7       clientAlias  Ljava/lang/String;
           31   47     8  clientPrivateKey  Ljava/security/PrivateKey;
           36   47     9       clientCerts  [Ljava/security/cert/X509Certificate;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      context  
      message  
}
SourceFile: "CertificateRequest.java"
NestHost: sun.security.ssl.CertificateRequest
InnerClasses:
  private final T10CertificateRequestConsumer = sun.security.ssl.CertificateRequest$T10CertificateRequestConsumer of sun.security.ssl.CertificateRequest
  final T10CertificateRequestMessage = sun.security.ssl.CertificateRequest$T10CertificateRequestMessage of sun.security.ssl.CertificateRequest
  abstract HandshakeMessage = sun.security.ssl.SSLHandshake$HandshakeMessage of sun.security.ssl.SSLHandshake
  final X509Possession = sun.security.ssl.X509Authentication$X509Possession of sun.security.ssl.X509Authentication