class org.apache.tomcat.util.net.jsse.JSSESSLContext implements org.apache.tomcat.util.net.SSLContext
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.apache.tomcat.util.net.jsse.JSSESSLContext
  super_class: java.lang.Object
{
  private javax.net.ssl.SSLContext context;
    descriptor: Ljavax/net/ssl/SSLContext;
    flags: (0x0002) ACC_PRIVATE

  private javax.net.ssl.KeyManager[] kms;
    descriptor: [Ljavax/net/ssl/KeyManager;
    flags: (0x0002) ACC_PRIVATE

  private javax.net.ssl.TrustManager[] tms;
    descriptor: [Ljavax/net/ssl/TrustManager;
    flags: (0x0002) ACC_PRIVATE

  void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.tomcat.util.net.jsse.JSSESSLContext this
        start local 1 // java.lang.String protocol
         0: .line 45
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 46
            aload 0 /* this */
            aload 1 /* protocol */
            invokestatic javax.net.ssl.SSLContext.getInstance:(Ljava/lang/String;)Ljavax/net/ssl/SSLContext;
            putfield org.apache.tomcat.util.net.jsse.JSSESSLContext.context:Ljavax/net/ssl/SSLContext;
         2: .line 47
            return
        end local 1 // java.lang.String protocol
        end local 0 // org.apache.tomcat.util.net.jsse.JSSESSLContext this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lorg/apache/tomcat/util/net/jsse/JSSESSLContext;
            0    3     1  protocol  Ljava/lang/String;
    Exceptions:
      throws java.security.NoSuchAlgorithmException
    MethodParameters:
          Name  Flags
      protocol  

  public void init(javax.net.ssl.KeyManager[], javax.net.ssl.TrustManager[], java.security.SecureRandom);
    descriptor: ([Ljavax/net/ssl/KeyManager;[Ljavax/net/ssl/TrustManager;Ljava/security/SecureRandom;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // org.apache.tomcat.util.net.jsse.JSSESSLContext this
        start local 1 // javax.net.ssl.KeyManager[] kms
        start local 2 // javax.net.ssl.TrustManager[] tms
        start local 3 // java.security.SecureRandom sr
         0: .line 52
            aload 0 /* this */
            aload 1 /* kms */
            putfield org.apache.tomcat.util.net.jsse.JSSESSLContext.kms:[Ljavax/net/ssl/KeyManager;
         1: .line 53
            aload 0 /* this */
            aload 2 /* tms */
            putfield org.apache.tomcat.util.net.jsse.JSSESSLContext.tms:[Ljavax/net/ssl/TrustManager;
         2: .line 54
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.jsse.JSSESSLContext.context:Ljavax/net/ssl/SSLContext;
            aload 1 /* kms */
            aload 2 /* tms */
            aload 3 /* sr */
            invokevirtual javax.net.ssl.SSLContext.init:([Ljavax/net/ssl/KeyManager;[Ljavax/net/ssl/TrustManager;Ljava/security/SecureRandom;)V
         3: .line 55
            return
        end local 3 // java.security.SecureRandom sr
        end local 2 // javax.net.ssl.TrustManager[] tms
        end local 1 // javax.net.ssl.KeyManager[] kms
        end local 0 // org.apache.tomcat.util.net.jsse.JSSESSLContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/tomcat/util/net/jsse/JSSESSLContext;
            0    4     1   kms  [Ljavax/net/ssl/KeyManager;
            0    4     2   tms  [Ljavax/net/ssl/TrustManager;
            0    4     3    sr  Ljava/security/SecureRandom;
    Exceptions:
      throws java.security.KeyManagementException
    MethodParameters:
      Name  Flags
      kms   
      tms   
      sr    

  public void destroy();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // org.apache.tomcat.util.net.jsse.JSSESSLContext this
         0: .line 59
            return
        end local 0 // org.apache.tomcat.util.net.jsse.JSSESSLContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/tomcat/util/net/jsse/JSSESSLContext;

  public javax.net.ssl.SSLSessionContext getServerSessionContext();
    descriptor: ()Ljavax/net/ssl/SSLSessionContext;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.tomcat.util.net.jsse.JSSESSLContext this
         0: .line 63
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.jsse.JSSESSLContext.context:Ljavax/net/ssl/SSLContext;
            invokevirtual javax.net.ssl.SSLContext.getServerSessionContext:()Ljavax/net/ssl/SSLSessionContext;
            areturn
        end local 0 // org.apache.tomcat.util.net.jsse.JSSESSLContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/tomcat/util/net/jsse/JSSESSLContext;

  public javax.net.ssl.SSLEngine createSSLEngine();
    descriptor: ()Ljavax/net/ssl/SSLEngine;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.tomcat.util.net.jsse.JSSESSLContext this
         0: .line 68
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.jsse.JSSESSLContext.context:Ljavax/net/ssl/SSLContext;
            invokevirtual javax.net.ssl.SSLContext.createSSLEngine:()Ljavax/net/ssl/SSLEngine;
            areturn
        end local 0 // org.apache.tomcat.util.net.jsse.JSSESSLContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/tomcat/util/net/jsse/JSSESSLContext;

  public javax.net.ssl.SSLServerSocketFactory getServerSocketFactory();
    descriptor: ()Ljavax/net/ssl/SSLServerSocketFactory;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.tomcat.util.net.jsse.JSSESSLContext this
         0: .line 73
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.jsse.JSSESSLContext.context:Ljavax/net/ssl/SSLContext;
            invokevirtual javax.net.ssl.SSLContext.getServerSocketFactory:()Ljavax/net/ssl/SSLServerSocketFactory;
            areturn
        end local 0 // org.apache.tomcat.util.net.jsse.JSSESSLContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/tomcat/util/net/jsse/JSSESSLContext;

  public javax.net.ssl.SSLParameters getSupportedSSLParameters();
    descriptor: ()Ljavax/net/ssl/SSLParameters;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.tomcat.util.net.jsse.JSSESSLContext this
         0: .line 78
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.jsse.JSSESSLContext.context:Ljavax/net/ssl/SSLContext;
            invokevirtual javax.net.ssl.SSLContext.getSupportedSSLParameters:()Ljavax/net/ssl/SSLParameters;
            areturn
        end local 0 // org.apache.tomcat.util.net.jsse.JSSESSLContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/tomcat/util/net/jsse/JSSESSLContext;

  public java.security.cert.X509Certificate[] getCertificateChain(java.lang.String);
    descriptor: (Ljava/lang/String;)[Ljava/security/cert/X509Certificate;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.apache.tomcat.util.net.jsse.JSSESSLContext this
        start local 1 // java.lang.String alias
         0: .line 83
            aconst_null
            astore 2 /* result */
        start local 2 // java.security.cert.X509Certificate[] result
         1: .line 84
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.jsse.JSSESSLContext.kms:[Ljavax/net/ssl/KeyManager;
            ifnull 8
         2: .line 85
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 7
         4: .line 86
      StackMap locals: java.security.cert.X509Certificate[] int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.jsse.JSSESSLContext.kms:[Ljavax/net/ssl/KeyManager;
            iload 3 /* i */
            aaload
            instanceof javax.net.ssl.X509KeyManager
            ifeq 6
         5: .line 87
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.jsse.JSSESSLContext.kms:[Ljavax/net/ssl/KeyManager;
            iload 3 /* i */
            aaload
            checkcast javax.net.ssl.X509KeyManager
            aload 1 /* alias */
            invokeinterface javax.net.ssl.X509KeyManager.getCertificateChain:(Ljava/lang/String;)[Ljava/security/cert/X509Certificate;
            astore 2 /* result */
         6: .line 85
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 3 /* i */
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.jsse.JSSESSLContext.kms:[Ljavax/net/ssl/KeyManager;
            arraylength
            if_icmpge 8
            aload 2 /* result */
            ifnull 4
        end local 3 // int i
         8: .line 91
      StackMap locals:
      StackMap stack:
            aload 2 /* result */
            areturn
        end local 2 // java.security.cert.X509Certificate[] result
        end local 1 // java.lang.String alias
        end local 0 // org.apache.tomcat.util.net.jsse.JSSESSLContext this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    this  Lorg/apache/tomcat/util/net/jsse/JSSESSLContext;
            0    9     1   alias  Ljava/lang/String;
            1    9     2  result  [Ljava/security/cert/X509Certificate;
            3    8     3       i  I
    MethodParameters:
       Name  Flags
      alias  

  public java.security.cert.X509Certificate[] getAcceptedIssuers();
    descriptor: ()[Ljava/security/cert/X509Certificate;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=7, args_size=1
        start local 0 // org.apache.tomcat.util.net.jsse.JSSESSLContext this
         0: .line 96
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 1 /* certs */
        start local 1 // java.util.Set certs
         1: .line 97
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.jsse.JSSESSLContext.tms:[Ljavax/net/ssl/TrustManager;
            ifnull 10
         2: .line 98
            aload 0 /* this */
            getfield org.apache.tomcat.util.net.jsse.JSSESSLContext.tms:[Ljavax/net/ssl/TrustManager;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 9
      StackMap locals: org.apache.tomcat.util.net.jsse.JSSESSLContext java.util.Set top int int javax.net.ssl.TrustManager[]
      StackMap stack:
         3: aload 5
            iload 3
            aaload
            astore 2 /* tm */
        start local 2 // javax.net.ssl.TrustManager tm
         4: .line 99
            aload 2 /* tm */
            instanceof javax.net.ssl.X509TrustManager
            ifeq 8
         5: .line 100
            aload 2 /* tm */
            checkcast javax.net.ssl.X509TrustManager
            invokeinterface javax.net.ssl.X509TrustManager.getAcceptedIssuers:()[Ljava/security/cert/X509Certificate;
            astore 6 /* accepted */
        start local 6 // java.security.cert.X509Certificate[] accepted
         6: .line 101
            aload 6 /* accepted */
            ifnull 8
         7: .line 102
            aload 1 /* certs */
            aload 6 /* accepted */
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        end local 6 // java.security.cert.X509Certificate[] accepted
        end local 2 // javax.net.ssl.TrustManager tm
         8: .line 98
      StackMap locals:
      StackMap stack:
            iinc 3 1
      StackMap locals:
      StackMap stack:
         9: iload 3
            iload 4
            if_icmplt 3
        10: .line 107
      StackMap locals: org.apache.tomcat.util.net.jsse.JSSESSLContext java.util.Set
      StackMap stack:
            aload 1 /* certs */
            iconst_0
            anewarray java.security.cert.X509Certificate
            invokeinterface java.util.Set.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.security.cert.X509Certificate[]
            areturn
        end local 1 // java.util.Set certs
        end local 0 // org.apache.tomcat.util.net.jsse.JSSESSLContext this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Lorg/apache/tomcat/util/net/jsse/JSSESSLContext;
            1   11     1     certs  Ljava/util/Set<Ljava/security/cert/X509Certificate;>;
            4    8     2        tm  Ljavax/net/ssl/TrustManager;
            6    8     6  accepted  [Ljava/security/cert/X509Certificate;
}
SourceFile: "JSSESSLContext.java"