final class io.netty.handler.ssl.ReferenceCountedOpenSslClientContext$OpenSslCertificateRequestedCallback implements io.netty.internal.tcnative.CertificateRequestedCallback
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: io.netty.handler.ssl.ReferenceCountedOpenSslClientContext$OpenSslCertificateRequestedCallback
  super_class: java.lang.Object
{
  private final io.netty.handler.ssl.OpenSslEngineMap engineMap;
    descriptor: Lio/netty/handler/ssl/OpenSslEngineMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.netty.handler.ssl.OpenSslKeyMaterialManager keyManagerHolder;
    descriptor: Lio/netty/handler/ssl/OpenSslKeyMaterialManager;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  void <init>(io.netty.handler.ssl.OpenSslEngineMap, io.netty.handler.ssl.OpenSslKeyMaterialManager);
    descriptor: (Lio/netty/handler/ssl/OpenSslEngineMap;Lio/netty/handler/ssl/OpenSslKeyMaterialManager;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // io.netty.handler.ssl.ReferenceCountedOpenSslClientContext$OpenSslCertificateRequestedCallback this
        start local 1 // io.netty.handler.ssl.OpenSslEngineMap engineMap
        start local 2 // io.netty.handler.ssl.OpenSslKeyMaterialManager keyManagerHolder
         0: .line 229
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 230
            aload 0 /* this */
            aload 1 /* engineMap */
            putfield io.netty.handler.ssl.ReferenceCountedOpenSslClientContext$OpenSslCertificateRequestedCallback.engineMap:Lio/netty/handler/ssl/OpenSslEngineMap;
         2: .line 231
            aload 0 /* this */
            aload 2 /* keyManagerHolder */
            putfield io.netty.handler.ssl.ReferenceCountedOpenSslClientContext$OpenSslCertificateRequestedCallback.keyManagerHolder:Lio/netty/handler/ssl/OpenSslKeyMaterialManager;
         3: .line 232
            return
        end local 2 // io.netty.handler.ssl.OpenSslKeyMaterialManager keyManagerHolder
        end local 1 // io.netty.handler.ssl.OpenSslEngineMap engineMap
        end local 0 // io.netty.handler.ssl.ReferenceCountedOpenSslClientContext$OpenSslCertificateRequestedCallback this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    4     0              this  Lio/netty/handler/ssl/ReferenceCountedOpenSslClientContext$OpenSslCertificateRequestedCallback;
            0    4     1         engineMap  Lio/netty/handler/ssl/OpenSslEngineMap;
            0    4     2  keyManagerHolder  Lio/netty/handler/ssl/OpenSslKeyMaterialManager;
    MethodParameters:
                  Name  Flags
      engineMap         
      keyManagerHolder  

  public io.netty.internal.tcnative.CertificateRequestedCallback$KeyMaterial requested(long, byte[], byte[][]);
    descriptor: (J[B[[B)Lio/netty/internal/tcnative/CertificateRequestedCallback$KeyMaterial;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=10, args_size=4
        start local 0 // io.netty.handler.ssl.ReferenceCountedOpenSslClientContext$OpenSslCertificateRequestedCallback this
        start local 1 // long ssl
        start local 3 // byte[] keyTypeBytes
        start local 4 // byte[][] asn1DerEncodedPrincipals
         0: .line 236
            aload 0 /* this */
            getfield io.netty.handler.ssl.ReferenceCountedOpenSslClientContext$OpenSslCertificateRequestedCallback.engineMap:Lio/netty/handler/ssl/OpenSslEngineMap;
            lload 1 /* ssl */
            invokeinterface io.netty.handler.ssl.OpenSslEngineMap.get:(J)Lio/netty/handler/ssl/ReferenceCountedOpenSslEngine;
            astore 5 /* engine */
        start local 5 // io.netty.handler.ssl.ReferenceCountedOpenSslEngine engine
         1: .line 238
            aload 3 /* keyTypeBytes */
            invokestatic io.netty.handler.ssl.ReferenceCountedOpenSslClientContext$OpenSslCertificateRequestedCallback.supportedClientKeyTypes:([B)Ljava/util/Set;
            astore 6 /* keyTypesSet */
        start local 6 // java.util.Set keyTypesSet
         2: .line 239
            aload 6 /* keyTypesSet */
            aload 6 /* keyTypesSet */
            invokeinterface java.util.Set.size:()I
            anewarray java.lang.String
            invokeinterface java.util.Set.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.lang.String[]
            astore 7 /* keyTypes */
        start local 7 // java.lang.String[] keyTypes
         3: .line 241
            aload 4 /* asn1DerEncodedPrincipals */
            ifnonnull 6
         4: .line 242
            aconst_null
            astore 8 /* issuers */
        start local 8 // javax.security.auth.x500.X500Principal[] issuers
         5: .line 243
            goto 12
        end local 8 // javax.security.auth.x500.X500Principal[] issuers
         6: .line 244
      StackMap locals: io.netty.handler.ssl.ReferenceCountedOpenSslEngine java.util.Set java.lang.String[]
      StackMap stack:
            aload 4 /* asn1DerEncodedPrincipals */
            arraylength
            anewarray javax.security.auth.x500.X500Principal
            astore 8 /* issuers */
        start local 8 // javax.security.auth.x500.X500Principal[] issuers
         7: .line 245
            iconst_0
            istore 9 /* i */
        start local 9 // int i
         8: goto 11
         9: .line 246
      StackMap locals: javax.security.auth.x500.X500Principal[] int
      StackMap stack:
            aload 8 /* issuers */
            iload 9 /* i */
            new javax.security.auth.x500.X500Principal
            dup
            aload 4 /* asn1DerEncodedPrincipals */
            iload 9 /* i */
            aaload
            invokespecial javax.security.auth.x500.X500Principal.<init>:([B)V
            aastore
        10: .line 245
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 9 /* i */
            aload 4 /* asn1DerEncodedPrincipals */
            arraylength
            if_icmplt 9
        end local 9 // int i
        12: .line 249
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.netty.handler.ssl.ReferenceCountedOpenSslClientContext$OpenSslCertificateRequestedCallback.keyManagerHolder:Lio/netty/handler/ssl/OpenSslKeyMaterialManager;
            aload 5 /* engine */
            aload 7 /* keyTypes */
            aload 8 /* issuers */
            invokevirtual io.netty.handler.ssl.OpenSslKeyMaterialManager.keyMaterial:(Lio/netty/handler/ssl/ReferenceCountedOpenSslEngine;[Ljava/lang/String;[Ljavax/security/auth/x500/X500Principal;)Lio/netty/internal/tcnative/CertificateRequestedCallback$KeyMaterial;
        13: areturn
        end local 8 // javax.security.auth.x500.X500Principal[] issuers
        end local 7 // java.lang.String[] keyTypes
        end local 6 // java.util.Set keyTypesSet
        14: .line 250
      StackMap locals: io.netty.handler.ssl.ReferenceCountedOpenSslClientContext$OpenSslCertificateRequestedCallback long byte[] byte[][] io.netty.handler.ssl.ReferenceCountedOpenSslEngine
      StackMap stack: java.lang.Throwable
            astore 6 /* cause */
        start local 6 // java.lang.Throwable cause
        15: .line 251
            getstatic io.netty.handler.ssl.ReferenceCountedOpenSslClientContext.logger:Lio/netty/util/internal/logging/InternalLogger;
            ldc "request of key failed"
            aload 6 /* cause */
            invokeinterface io.netty.util.internal.logging.InternalLogger.debug:(Ljava/lang/String;Ljava/lang/Throwable;)V
        16: .line 252
            new javax.net.ssl.SSLHandshakeException
            dup
            ldc "General OpenSslEngine problem"
            invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
            astore 7 /* e */
        start local 7 // javax.net.ssl.SSLHandshakeException e
        17: .line 253
            aload 7 /* e */
            aload 6 /* cause */
            invokevirtual javax.net.ssl.SSLHandshakeException.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
            pop
        18: .line 254
            aload 5 /* engine */
            aload 7 /* e */
            putfield io.netty.handler.ssl.ReferenceCountedOpenSslEngine.handshakeException:Ljavax/net/ssl/SSLHandshakeException;
        19: .line 255
            aconst_null
            areturn
        end local 7 // javax.net.ssl.SSLHandshakeException e
        end local 6 // java.lang.Throwable cause
        end local 5 // io.netty.handler.ssl.ReferenceCountedOpenSslEngine engine
        end local 4 // byte[][] asn1DerEncodedPrincipals
        end local 3 // byte[] keyTypeBytes
        end local 1 // long ssl
        end local 0 // io.netty.handler.ssl.ReferenceCountedOpenSslClientContext$OpenSslCertificateRequestedCallback this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   20     0                      this  Lio/netty/handler/ssl/ReferenceCountedOpenSslClientContext$OpenSslCertificateRequestedCallback;
            0   20     1                       ssl  J
            0   20     3              keyTypeBytes  [B
            0   20     4  asn1DerEncodedPrincipals  [[B
            1   20     5                    engine  Lio/netty/handler/ssl/ReferenceCountedOpenSslEngine;
            2   14     6               keyTypesSet  Ljava/util/Set<Ljava/lang/String;>;
            3   14     7                  keyTypes  [Ljava/lang/String;
            5    6     8                   issuers  [Ljavax/security/auth/x500/X500Principal;
            7   14     8                   issuers  [Ljavax/security/auth/x500/X500Principal;
            8   12     9                         i  I
           15   20     6                     cause  Ljava/lang/Throwable;
           17   20     7                         e  Ljavax/net/ssl/SSLHandshakeException;
      Exception table:
        from    to  target  type
           1    13      14  Class java.lang.Throwable
    MethodParameters:
                          Name  Flags
      ssl                       
      keyTypeBytes              
      asn1DerEncodedPrincipals  

  private static java.util.Set<java.lang.String> supportedClientKeyTypes(byte[]);
    descriptor: ([B)Ljava/util/Set;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=1
        start local 0 // byte[] clientCertificateTypes
         0: .line 268
            new java.util.HashSet
            dup
            aload 0 /* clientCertificateTypes */
            arraylength
            invokespecial java.util.HashSet.<init>:(I)V
            astore 1 /* result */
        start local 1 // java.util.Set result
         1: .line 269
            aload 0 /* clientCertificateTypes */
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 8
      StackMap locals: byte[] java.util.Set top int int byte[]
      StackMap stack:
         2: aload 5
            iload 3
            baload
            istore 2 /* keyTypeCode */
        start local 2 // byte keyTypeCode
         3: .line 270
            iload 2 /* keyTypeCode */
            invokestatic io.netty.handler.ssl.ReferenceCountedOpenSslClientContext$OpenSslCertificateRequestedCallback.clientKeyType:(B)Ljava/lang/String;
            astore 6 /* keyType */
        start local 6 // java.lang.String keyType
         4: .line 271
            aload 6 /* keyType */
            ifnonnull 6
         5: .line 273
            goto 7
         6: .line 275
      StackMap locals: byte[] java.util.Set int int int byte[] java.lang.String
      StackMap stack:
            aload 1 /* result */
            aload 6 /* keyType */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // java.lang.String keyType
        end local 2 // byte keyTypeCode
         7: .line 269
      StackMap locals: byte[] java.util.Set top int int byte[]
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         8: iload 3
            iload 4
            if_icmplt 2
         9: .line 277
            aload 1 /* result */
            areturn
        end local 1 // java.util.Set result
        end local 0 // byte[] clientCertificateTypes
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   10     0  clientCertificateTypes  [B
            1   10     1                  result  Ljava/util/Set<Ljava/lang/String;>;
            3    7     2             keyTypeCode  B
            4    7     6                 keyType  Ljava/lang/String;
    Signature: ([B)Ljava/util/Set<Ljava/lang/String;>;
    MethodParameters:
                        Name  Flags
      clientCertificateTypes  

  private static java.lang.String clientKeyType(byte);
    descriptor: (B)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // byte clientCertificateType
         0: .line 282
            iload 0 /* clientCertificateType */
            lookupswitch { // 5
                    1: 1
                    3: 2
                   64: 3
                   65: 4
                   66: 5
              default: 6
          }
         1: .line 284
      StackMap locals:
      StackMap stack:
            ldc "RSA"
            areturn
         2: .line 286
      StackMap locals:
      StackMap stack:
            ldc "DH_RSA"
            areturn
         3: .line 288
      StackMap locals:
      StackMap stack:
            ldc "EC"
            areturn
         4: .line 290
      StackMap locals:
      StackMap stack:
            ldc "EC_RSA"
            areturn
         5: .line 292
      StackMap locals:
      StackMap stack:
            ldc "EC_EC"
            areturn
         6: .line 294
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // byte clientCertificateType
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    7     0  clientCertificateType  B
    MethodParameters:
                       Name  Flags
      clientCertificateType  
}
SourceFile: "ReferenceCountedOpenSslClientContext.java"
NestHost: io.netty.handler.ssl.ReferenceCountedOpenSslClientContext
InnerClasses:
  private final OpenSslCertificateRequestedCallback = io.netty.handler.ssl.ReferenceCountedOpenSslClientContext$OpenSslCertificateRequestedCallback of io.netty.handler.ssl.ReferenceCountedOpenSslClientContext
  public KeyMaterial = io.netty.internal.tcnative.CertificateRequestedCallback$KeyMaterial of io.netty.internal.tcnative.CertificateRequestedCallback