final class sun.security.ssl.AbstractTrustManagerWrapper extends javax.net.ssl.X509ExtendedTrustManager implements javax.net.ssl.X509TrustManager
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: sun.security.ssl.AbstractTrustManagerWrapper
  super_class: javax.net.ssl.X509ExtendedTrustManager
{
  private final javax.net.ssl.X509TrustManager tm;
    descriptor: Ljavax/net/ssl/X509TrustManager;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  void <init>(javax.net.ssl.X509TrustManager);
    descriptor: (Ljavax/net/ssl/X509TrustManager;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.ssl.AbstractTrustManagerWrapper this
        start local 1 // javax.net.ssl.X509TrustManager tm
         0: .line 1047
            aload 0 /* this */
            invokespecial javax.net.ssl.X509ExtendedTrustManager.<init>:()V
         1: .line 1048
            aload 0 /* this */
            aload 1 /* tm */
            putfield sun.security.ssl.AbstractTrustManagerWrapper.tm:Ljavax/net/ssl/X509TrustManager;
         2: .line 1049
            return
        end local 1 // javax.net.ssl.X509TrustManager tm
        end local 0 // sun.security.ssl.AbstractTrustManagerWrapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/security/ssl/AbstractTrustManagerWrapper;
            0    3     1    tm  Ljavax/net/ssl/X509TrustManager;
    MethodParameters:
      Name  Flags
      tm    

  public void checkClientTrusted(java.security.cert.X509Certificate[], java.lang.String);
    descriptor: ([Ljava/security/cert/X509Certificate;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // sun.security.ssl.AbstractTrustManagerWrapper this
        start local 1 // java.security.cert.X509Certificate[] chain
        start local 2 // java.lang.String authType
         0: .line 1054
            aload 0 /* this */
            getfield sun.security.ssl.AbstractTrustManagerWrapper.tm:Ljavax/net/ssl/X509TrustManager;
            aload 1 /* chain */
            aload 2 /* authType */
            invokeinterface javax.net.ssl.X509TrustManager.checkClientTrusted:([Ljava/security/cert/X509Certificate;Ljava/lang/String;)V
         1: .line 1055
            return
        end local 2 // java.lang.String authType
        end local 1 // java.security.cert.X509Certificate[] chain
        end local 0 // sun.security.ssl.AbstractTrustManagerWrapper this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lsun/security/ssl/AbstractTrustManagerWrapper;
            0    2     1     chain  [Ljava/security/cert/X509Certificate;
            0    2     2  authType  Ljava/lang/String;
    Exceptions:
      throws java.security.cert.CertificateException
    MethodParameters:
          Name  Flags
      chain     
      authType  

  public void checkServerTrusted(java.security.cert.X509Certificate[], java.lang.String);
    descriptor: ([Ljava/security/cert/X509Certificate;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // sun.security.ssl.AbstractTrustManagerWrapper this
        start local 1 // java.security.cert.X509Certificate[] chain
        start local 2 // java.lang.String authType
         0: .line 1060
            aload 0 /* this */
            getfield sun.security.ssl.AbstractTrustManagerWrapper.tm:Ljavax/net/ssl/X509TrustManager;
            aload 1 /* chain */
            aload 2 /* authType */
            invokeinterface javax.net.ssl.X509TrustManager.checkServerTrusted:([Ljava/security/cert/X509Certificate;Ljava/lang/String;)V
         1: .line 1061
            return
        end local 2 // java.lang.String authType
        end local 1 // java.security.cert.X509Certificate[] chain
        end local 0 // sun.security.ssl.AbstractTrustManagerWrapper this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lsun/security/ssl/AbstractTrustManagerWrapper;
            0    2     1     chain  [Ljava/security/cert/X509Certificate;
            0    2     2  authType  Ljava/lang/String;
    Exceptions:
      throws java.security.cert.CertificateException
    MethodParameters:
          Name  Flags
      chain     
      authType  

  public java.security.cert.X509Certificate[] getAcceptedIssuers();
    descriptor: ()[Ljava/security/cert/X509Certificate;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.ssl.AbstractTrustManagerWrapper this
         0: .line 1065
            aload 0 /* this */
            getfield sun.security.ssl.AbstractTrustManagerWrapper.tm:Ljavax/net/ssl/X509TrustManager;
            invokeinterface javax.net.ssl.X509TrustManager.getAcceptedIssuers:()[Ljava/security/cert/X509Certificate;
            areturn
        end local 0 // sun.security.ssl.AbstractTrustManagerWrapper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ssl/AbstractTrustManagerWrapper;

  public void checkClientTrusted(java.security.cert.X509Certificate[], java.lang.String, java.net.Socket);
    descriptor: ([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljava/net/Socket;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // sun.security.ssl.AbstractTrustManagerWrapper this
        start local 1 // java.security.cert.X509Certificate[] chain
        start local 2 // java.lang.String authType
        start local 3 // java.net.Socket socket
         0: .line 1071
            aload 0 /* this */
            getfield sun.security.ssl.AbstractTrustManagerWrapper.tm:Ljavax/net/ssl/X509TrustManager;
            aload 1 /* chain */
            aload 2 /* authType */
            invokeinterface javax.net.ssl.X509TrustManager.checkClientTrusted:([Ljava/security/cert/X509Certificate;Ljava/lang/String;)V
         1: .line 1072
            aload 0 /* this */
            aload 1 /* chain */
            aload 2 /* authType */
            aload 3 /* socket */
            iconst_1
            invokevirtual sun.security.ssl.AbstractTrustManagerWrapper.checkAdditionalTrust:([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljava/net/Socket;Z)V
         2: .line 1073
            return
        end local 3 // java.net.Socket socket
        end local 2 // java.lang.String authType
        end local 1 // java.security.cert.X509Certificate[] chain
        end local 0 // sun.security.ssl.AbstractTrustManagerWrapper this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lsun/security/ssl/AbstractTrustManagerWrapper;
            0    3     1     chain  [Ljava/security/cert/X509Certificate;
            0    3     2  authType  Ljava/lang/String;
            0    3     3    socket  Ljava/net/Socket;
    Exceptions:
      throws java.security.cert.CertificateException
    MethodParameters:
          Name  Flags
      chain     
      authType  
      socket    

  public void checkServerTrusted(java.security.cert.X509Certificate[], java.lang.String, java.net.Socket);
    descriptor: ([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljava/net/Socket;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // sun.security.ssl.AbstractTrustManagerWrapper this
        start local 1 // java.security.cert.X509Certificate[] chain
        start local 2 // java.lang.String authType
        start local 3 // java.net.Socket socket
         0: .line 1078
            aload 0 /* this */
            getfield sun.security.ssl.AbstractTrustManagerWrapper.tm:Ljavax/net/ssl/X509TrustManager;
            aload 1 /* chain */
            aload 2 /* authType */
            invokeinterface javax.net.ssl.X509TrustManager.checkServerTrusted:([Ljava/security/cert/X509Certificate;Ljava/lang/String;)V
         1: .line 1079
            aload 0 /* this */
            aload 1 /* chain */
            aload 2 /* authType */
            aload 3 /* socket */
            iconst_0
            invokevirtual sun.security.ssl.AbstractTrustManagerWrapper.checkAdditionalTrust:([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljava/net/Socket;Z)V
         2: .line 1080
            return
        end local 3 // java.net.Socket socket
        end local 2 // java.lang.String authType
        end local 1 // java.security.cert.X509Certificate[] chain
        end local 0 // sun.security.ssl.AbstractTrustManagerWrapper this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lsun/security/ssl/AbstractTrustManagerWrapper;
            0    3     1     chain  [Ljava/security/cert/X509Certificate;
            0    3     2  authType  Ljava/lang/String;
            0    3     3    socket  Ljava/net/Socket;
    Exceptions:
      throws java.security.cert.CertificateException
    MethodParameters:
          Name  Flags
      chain     
      authType  
      socket    

  public void checkClientTrusted(java.security.cert.X509Certificate[], java.lang.String, javax.net.ssl.SSLEngine);
    descriptor: ([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljavax/net/ssl/SSLEngine;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // sun.security.ssl.AbstractTrustManagerWrapper this
        start local 1 // java.security.cert.X509Certificate[] chain
        start local 2 // java.lang.String authType
        start local 3 // javax.net.ssl.SSLEngine engine
         0: .line 1085
            aload 0 /* this */
            getfield sun.security.ssl.AbstractTrustManagerWrapper.tm:Ljavax/net/ssl/X509TrustManager;
            aload 1 /* chain */
            aload 2 /* authType */
            invokeinterface javax.net.ssl.X509TrustManager.checkClientTrusted:([Ljava/security/cert/X509Certificate;Ljava/lang/String;)V
         1: .line 1086
            aload 0 /* this */
            aload 1 /* chain */
            aload 2 /* authType */
            aload 3 /* engine */
            iconst_1
            invokevirtual sun.security.ssl.AbstractTrustManagerWrapper.checkAdditionalTrust:([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljavax/net/ssl/SSLEngine;Z)V
         2: .line 1087
            return
        end local 3 // javax.net.ssl.SSLEngine engine
        end local 2 // java.lang.String authType
        end local 1 // java.security.cert.X509Certificate[] chain
        end local 0 // sun.security.ssl.AbstractTrustManagerWrapper this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lsun/security/ssl/AbstractTrustManagerWrapper;
            0    3     1     chain  [Ljava/security/cert/X509Certificate;
            0    3     2  authType  Ljava/lang/String;
            0    3     3    engine  Ljavax/net/ssl/SSLEngine;
    Exceptions:
      throws java.security.cert.CertificateException
    MethodParameters:
          Name  Flags
      chain     
      authType  
      engine    

  public void checkServerTrusted(java.security.cert.X509Certificate[], java.lang.String, javax.net.ssl.SSLEngine);
    descriptor: ([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljavax/net/ssl/SSLEngine;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // sun.security.ssl.AbstractTrustManagerWrapper this
        start local 1 // java.security.cert.X509Certificate[] chain
        start local 2 // java.lang.String authType
        start local 3 // javax.net.ssl.SSLEngine engine
         0: .line 1092
            aload 0 /* this */
            getfield sun.security.ssl.AbstractTrustManagerWrapper.tm:Ljavax/net/ssl/X509TrustManager;
            aload 1 /* chain */
            aload 2 /* authType */
            invokeinterface javax.net.ssl.X509TrustManager.checkServerTrusted:([Ljava/security/cert/X509Certificate;Ljava/lang/String;)V
         1: .line 1093
            aload 0 /* this */
            aload 1 /* chain */
            aload 2 /* authType */
            aload 3 /* engine */
            iconst_0
            invokevirtual sun.security.ssl.AbstractTrustManagerWrapper.checkAdditionalTrust:([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljavax/net/ssl/SSLEngine;Z)V
         2: .line 1094
            return
        end local 3 // javax.net.ssl.SSLEngine engine
        end local 2 // java.lang.String authType
        end local 1 // java.security.cert.X509Certificate[] chain
        end local 0 // sun.security.ssl.AbstractTrustManagerWrapper this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lsun/security/ssl/AbstractTrustManagerWrapper;
            0    3     1     chain  [Ljava/security/cert/X509Certificate;
            0    3     2  authType  Ljava/lang/String;
            0    3     3    engine  Ljavax/net/ssl/SSLEngine;
    Exceptions:
      throws java.security.cert.CertificateException
    MethodParameters:
          Name  Flags
      chain     
      authType  
      engine    

  private void checkAdditionalTrust(java.security.cert.X509Certificate[], java.lang.String, java.net.Socket, boolean);
    descriptor: ([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljava/net/Socket;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=12, args_size=5
        start local 0 // sun.security.ssl.AbstractTrustManagerWrapper this
        start local 1 // java.security.cert.X509Certificate[] chain
        start local 2 // java.lang.String authType
        start local 3 // java.net.Socket socket
        start local 4 // boolean isClient
         0: .line 1098
            aload 3 /* socket */
            ifnull 31
            aload 3 /* socket */
            invokevirtual java.net.Socket.isConnected:()Z
            ifeq 31
         1: .line 1099
            aload 3 /* socket */
            instanceof javax.net.ssl.SSLSocket
            ifeq 31
         2: .line 1101
            aload 3 /* socket */
            checkcast javax.net.ssl.SSLSocket
            astore 5 /* sslSocket */
        start local 5 // javax.net.ssl.SSLSocket sslSocket
         3: .line 1102
            aload 5 /* sslSocket */
            invokevirtual javax.net.ssl.SSLSocket.getHandshakeSession:()Ljavax/net/ssl/SSLSession;
            astore 6 /* session */
        start local 6 // javax.net.ssl.SSLSession session
         4: .line 1103
            aload 6 /* session */
            ifnonnull 6
         5: .line 1104
            new java.security.cert.CertificateException
            dup
            ldc "No handshake session"
            invokespecial java.security.cert.CertificateException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 1108
      StackMap locals: javax.net.ssl.SSLSocket javax.net.ssl.SSLSession
      StackMap stack:
            aload 5 /* sslSocket */
            invokevirtual javax.net.ssl.SSLSocket.getSSLParameters:()Ljavax/net/ssl/SSLParameters;
         7: .line 1109
            invokevirtual javax.net.ssl.SSLParameters.getEndpointIdentificationAlgorithm:()Ljava/lang/String;
         8: .line 1108
            astore 7 /* identityAlg */
        start local 7 // java.lang.String identityAlg
         9: .line 1110
            aload 7 /* identityAlg */
            ifnull 13
            aload 7 /* identityAlg */
            invokevirtual java.lang.String.length:()I
            ifeq 13
        10: .line 1111
            aload 6 /* session */
            invokeinterface javax.net.ssl.SSLSession.getPeerHost:()Ljava/lang/String;
            astore 8 /* hostname */
        start local 8 // java.lang.String hostname
        11: .line 1113
            aload 8 /* hostname */
            aload 1 /* chain */
            iconst_0
            aaload
            aload 7 /* identityAlg */
        12: .line 1112
            invokestatic sun.security.ssl.X509TrustManagerImpl.checkIdentity:(Ljava/lang/String;Ljava/security/cert/X509Certificate;Ljava/lang/String;)V
        end local 8 // java.lang.String hostname
        13: .line 1118
      StackMap locals: java.lang.String
      StackMap stack:
            aload 6 /* session */
            invokeinterface javax.net.ssl.SSLSession.getProtocol:()Ljava/lang/String;
            invokestatic sun.security.ssl.ProtocolVersion.valueOf:(Ljava/lang/String;)Lsun/security/ssl/ProtocolVersion;
        14: .line 1117
            astore 8 /* protocolVersion */
        start local 8 // sun.security.ssl.ProtocolVersion protocolVersion
        15: .line 1119
            aconst_null
            astore 9 /* constraints */
        start local 9 // java.security.AlgorithmConstraints constraints
        16: .line 1120
            aload 8 /* protocolVersion */
            getfield sun.security.ssl.ProtocolVersion.v:I
            getstatic sun.security.ssl.ProtocolVersion.TLS12:Lsun/security/ssl/ProtocolVersion;
            getfield sun.security.ssl.ProtocolVersion.v:I
            if_icmplt 29
        17: .line 1121
            aload 6 /* session */
            instanceof javax.net.ssl.ExtendedSSLSession
            ifeq 26
        18: .line 1123
            aload 6 /* session */
            checkcast javax.net.ssl.ExtendedSSLSession
        19: .line 1122
            astore 10 /* extSession */
        start local 10 // javax.net.ssl.ExtendedSSLSession extSession
        20: .line 1125
            aload 10 /* extSession */
            invokevirtual javax.net.ssl.ExtendedSSLSession.getLocalSupportedSignatureAlgorithms:()[Ljava/lang/String;
        21: .line 1124
            astore 11 /* peerSupportedSignAlgs */
        start local 11 // java.lang.String[] peerSupportedSignAlgs
        22: .line 1127
            new sun.security.ssl.SSLAlgorithmConstraints
            dup
        23: .line 1128
            aload 5 /* sslSocket */
            aload 11 /* peerSupportedSignAlgs */
            iconst_1
        24: .line 1127
            invokespecial sun.security.ssl.SSLAlgorithmConstraints.<init>:(Ljavax/net/ssl/SSLSocket;[Ljava/lang/String;Z)V
            astore 9 /* constraints */
        end local 11 // java.lang.String[] peerSupportedSignAlgs
        end local 10 // javax.net.ssl.ExtendedSSLSession extSession
        25: .line 1129
            goto 30
        26: .line 1131
      StackMap locals: sun.security.ssl.ProtocolVersion java.security.AlgorithmConstraints
      StackMap stack:
            new sun.security.ssl.SSLAlgorithmConstraints
            dup
            aload 5 /* sslSocket */
            iconst_1
            invokespecial sun.security.ssl.SSLAlgorithmConstraints.<init>:(Ljavax/net/ssl/SSLSocket;Z)V
        27: .line 1130
            astore 9 /* constraints */
        28: .line 1133
            goto 30
        29: .line 1134
      StackMap locals:
      StackMap stack:
            new sun.security.ssl.SSLAlgorithmConstraints
            dup
            aload 5 /* sslSocket */
            iconst_1
            invokespecial sun.security.ssl.SSLAlgorithmConstraints.<init>:(Ljavax/net/ssl/SSLSocket;Z)V
            astore 9 /* constraints */
        30: .line 1137
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* chain */
            aload 9 /* constraints */
            iload 4 /* isClient */
            invokevirtual sun.security.ssl.AbstractTrustManagerWrapper.checkAlgorithmConstraints:([Ljava/security/cert/X509Certificate;Ljava/security/AlgorithmConstraints;Z)V
        end local 9 // java.security.AlgorithmConstraints constraints
        end local 8 // sun.security.ssl.ProtocolVersion protocolVersion
        end local 7 // java.lang.String identityAlg
        end local 6 // javax.net.ssl.SSLSession session
        end local 5 // javax.net.ssl.SSLSocket sslSocket
        31: .line 1139
      StackMap locals: sun.security.ssl.AbstractTrustManagerWrapper java.security.cert.X509Certificate[] java.lang.String java.net.Socket int
      StackMap stack:
            return
        end local 4 // boolean isClient
        end local 3 // java.net.Socket socket
        end local 2 // java.lang.String authType
        end local 1 // java.security.cert.X509Certificate[] chain
        end local 0 // sun.security.ssl.AbstractTrustManagerWrapper this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   32     0                   this  Lsun/security/ssl/AbstractTrustManagerWrapper;
            0   32     1                  chain  [Ljava/security/cert/X509Certificate;
            0   32     2               authType  Ljava/lang/String;
            0   32     3                 socket  Ljava/net/Socket;
            0   32     4               isClient  Z
            3   31     5              sslSocket  Ljavax/net/ssl/SSLSocket;
            4   31     6                session  Ljavax/net/ssl/SSLSession;
            9   31     7            identityAlg  Ljava/lang/String;
           11   13     8               hostname  Ljava/lang/String;
           15   31     8        protocolVersion  Lsun/security/ssl/ProtocolVersion;
           16   31     9            constraints  Ljava/security/AlgorithmConstraints;
           20   25    10             extSession  Ljavax/net/ssl/ExtendedSSLSession;
           22   25    11  peerSupportedSignAlgs  [Ljava/lang/String;
    Exceptions:
      throws java.security.cert.CertificateException
    MethodParameters:
          Name  Flags
      chain     
      authType  
      socket    
      isClient  

  private void checkAdditionalTrust(java.security.cert.X509Certificate[], java.lang.String, javax.net.ssl.SSLEngine, boolean);
    descriptor: ([Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljavax/net/ssl/SSLEngine;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=11, args_size=5
        start local 0 // sun.security.ssl.AbstractTrustManagerWrapper this
        start local 1 // java.security.cert.X509Certificate[] chain
        start local 2 // java.lang.String authType
        start local 3 // javax.net.ssl.SSLEngine engine
        start local 4 // boolean isClient
         0: .line 1143
            aload 3 /* engine */
            ifnull 29
         1: .line 1144
            aload 3 /* engine */
            invokevirtual javax.net.ssl.SSLEngine.getHandshakeSession:()Ljavax/net/ssl/SSLSession;
            astore 5 /* session */
        start local 5 // javax.net.ssl.SSLSession session
         2: .line 1145
            aload 5 /* session */
            ifnonnull 4
         3: .line 1146
            new java.security.cert.CertificateException
            dup
            ldc "No handshake session"
            invokespecial java.security.cert.CertificateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1150
      StackMap locals: javax.net.ssl.SSLSession
      StackMap stack:
            aload 3 /* engine */
            invokevirtual javax.net.ssl.SSLEngine.getSSLParameters:()Ljavax/net/ssl/SSLParameters;
         5: .line 1151
            invokevirtual javax.net.ssl.SSLParameters.getEndpointIdentificationAlgorithm:()Ljava/lang/String;
         6: .line 1150
            astore 6 /* identityAlg */
        start local 6 // java.lang.String identityAlg
         7: .line 1152
            aload 6 /* identityAlg */
            ifnull 11
            aload 6 /* identityAlg */
            invokevirtual java.lang.String.length:()I
            ifeq 11
         8: .line 1153
            aload 5 /* session */
            invokeinterface javax.net.ssl.SSLSession.getPeerHost:()Ljava/lang/String;
            astore 7 /* hostname */
        start local 7 // java.lang.String hostname
         9: .line 1155
            aload 7 /* hostname */
            aload 1 /* chain */
            iconst_0
            aaload
            aload 6 /* identityAlg */
        10: .line 1154
            invokestatic sun.security.ssl.X509TrustManagerImpl.checkIdentity:(Ljava/lang/String;Ljava/security/cert/X509Certificate;Ljava/lang/String;)V
        end local 7 // java.lang.String hostname
        11: .line 1160
      StackMap locals: java.lang.String
      StackMap stack:
            aload 5 /* session */
            invokeinterface javax.net.ssl.SSLSession.getProtocol:()Ljava/lang/String;
            invokestatic sun.security.ssl.ProtocolVersion.valueOf:(Ljava/lang/String;)Lsun/security/ssl/ProtocolVersion;
        12: .line 1159
            astore 7 /* protocolVersion */
        start local 7 // sun.security.ssl.ProtocolVersion protocolVersion
        13: .line 1161
            aconst_null
            astore 8 /* constraints */
        start local 8 // java.security.AlgorithmConstraints constraints
        14: .line 1162
            aload 7 /* protocolVersion */
            getfield sun.security.ssl.ProtocolVersion.v:I
            getstatic sun.security.ssl.ProtocolVersion.TLS12:Lsun/security/ssl/ProtocolVersion;
            getfield sun.security.ssl.ProtocolVersion.v:I
            if_icmplt 27
        15: .line 1163
            aload 5 /* session */
            instanceof javax.net.ssl.ExtendedSSLSession
            ifeq 24
        16: .line 1165
            aload 5 /* session */
            checkcast javax.net.ssl.ExtendedSSLSession
        17: .line 1164
            astore 9 /* extSession */
        start local 9 // javax.net.ssl.ExtendedSSLSession extSession
        18: .line 1167
            aload 9 /* extSession */
            invokevirtual javax.net.ssl.ExtendedSSLSession.getLocalSupportedSignatureAlgorithms:()[Ljava/lang/String;
        19: .line 1166
            astore 10 /* peerSupportedSignAlgs */
        start local 10 // java.lang.String[] peerSupportedSignAlgs
        20: .line 1169
            new sun.security.ssl.SSLAlgorithmConstraints
            dup
        21: .line 1170
            aload 3 /* engine */
            aload 10 /* peerSupportedSignAlgs */
            iconst_1
        22: .line 1169
            invokespecial sun.security.ssl.SSLAlgorithmConstraints.<init>:(Ljavax/net/ssl/SSLEngine;[Ljava/lang/String;Z)V
            astore 8 /* constraints */
        end local 10 // java.lang.String[] peerSupportedSignAlgs
        end local 9 // javax.net.ssl.ExtendedSSLSession extSession
        23: .line 1171
            goto 28
        24: .line 1173
      StackMap locals: sun.security.ssl.ProtocolVersion java.security.AlgorithmConstraints
      StackMap stack:
            new sun.security.ssl.SSLAlgorithmConstraints
            dup
            aload 3 /* engine */
            iconst_1
            invokespecial sun.security.ssl.SSLAlgorithmConstraints.<init>:(Ljavax/net/ssl/SSLEngine;Z)V
        25: .line 1172
            astore 8 /* constraints */
        26: .line 1175
            goto 28
        27: .line 1176
      StackMap locals:
      StackMap stack:
            new sun.security.ssl.SSLAlgorithmConstraints
            dup
            aload 3 /* engine */
            iconst_1
            invokespecial sun.security.ssl.SSLAlgorithmConstraints.<init>:(Ljavax/net/ssl/SSLEngine;Z)V
            astore 8 /* constraints */
        28: .line 1179
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* chain */
            aload 8 /* constraints */
            iload 4 /* isClient */
            invokevirtual sun.security.ssl.AbstractTrustManagerWrapper.checkAlgorithmConstraints:([Ljava/security/cert/X509Certificate;Ljava/security/AlgorithmConstraints;Z)V
        end local 8 // java.security.AlgorithmConstraints constraints
        end local 7 // sun.security.ssl.ProtocolVersion protocolVersion
        end local 6 // java.lang.String identityAlg
        end local 5 // javax.net.ssl.SSLSession session
        29: .line 1181
      StackMap locals: sun.security.ssl.AbstractTrustManagerWrapper java.security.cert.X509Certificate[] java.lang.String javax.net.ssl.SSLEngine int
      StackMap stack:
            return
        end local 4 // boolean isClient
        end local 3 // javax.net.ssl.SSLEngine engine
        end local 2 // java.lang.String authType
        end local 1 // java.security.cert.X509Certificate[] chain
        end local 0 // sun.security.ssl.AbstractTrustManagerWrapper this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   30     0                   this  Lsun/security/ssl/AbstractTrustManagerWrapper;
            0   30     1                  chain  [Ljava/security/cert/X509Certificate;
            0   30     2               authType  Ljava/lang/String;
            0   30     3                 engine  Ljavax/net/ssl/SSLEngine;
            0   30     4               isClient  Z
            2   29     5                session  Ljavax/net/ssl/SSLSession;
            7   29     6            identityAlg  Ljava/lang/String;
            9   11     7               hostname  Ljava/lang/String;
           13   29     7        protocolVersion  Lsun/security/ssl/ProtocolVersion;
           14   29     8            constraints  Ljava/security/AlgorithmConstraints;
           18   23     9             extSession  Ljavax/net/ssl/ExtendedSSLSession;
           20   23    10  peerSupportedSignAlgs  [Ljava/lang/String;
    Exceptions:
      throws java.security.cert.CertificateException
    MethodParameters:
          Name  Flags
      chain     
      authType  
      engine    
      isClient  

  private void checkAlgorithmConstraints(java.security.cert.X509Certificate[], java.security.AlgorithmConstraints, boolean);
    descriptor: ([Ljava/security/cert/X509Certificate;Ljava/security/AlgorithmConstraints;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=10, args_size=4
        start local 0 // sun.security.ssl.AbstractTrustManagerWrapper this
        start local 1 // java.security.cert.X509Certificate[] chain
        start local 2 // java.security.AlgorithmConstraints constraints
        start local 3 // boolean isClient
         0: .line 1188
            aload 1 /* chain */
            arraylength
            iconst_1
            isub
            istore 4 /* checkedLength */
        start local 4 // int checkedLength
         1: .line 1190
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 5 /* trustedCerts */
        start local 5 // java.util.Collection trustedCerts
         2: .line 1191
            aload 0 /* this */
            getfield sun.security.ssl.AbstractTrustManagerWrapper.tm:Ljavax/net/ssl/X509TrustManager;
            invokeinterface javax.net.ssl.X509TrustManager.getAcceptedIssuers:()[Ljava/security/cert/X509Certificate;
            astore 6 /* certs */
        start local 6 // java.security.cert.X509Certificate[] certs
         3: .line 1192
            aload 6 /* certs */
            ifnull 5
            aload 6 /* certs */
            arraylength
            ifle 5
         4: .line 1193
            aload 5 /* trustedCerts */
            aload 6 /* certs */
            invokestatic java.util.Collections.addAll:(Ljava/util/Collection;[Ljava/lang/Object;)Z
            pop
         5: .line 1196
      StackMap locals: int java.util.Collection java.security.cert.X509Certificate[]
      StackMap stack:
            aload 5 /* trustedCerts */
            aload 1 /* chain */
            iload 4 /* checkedLength */
            aaload
            invokeinterface java.util.Collection.contains:(Ljava/lang/Object;)Z
            ifeq 7
         6: .line 1197
            iinc 4 /* checkedLength */ -1
         7: .line 1201
      StackMap locals:
      StackMap stack:
            iload 4 /* checkedLength */
            iflt 25
         8: .line 1203
            new sun.security.provider.certpath.AlgorithmChecker
            dup
            aload 2 /* constraints */
            aconst_null
         9: .line 1204
            iload 3 /* isClient */
            ifeq 10
            ldc "tls client"
            goto 11
      StackMap locals: sun.security.ssl.AbstractTrustManagerWrapper java.security.cert.X509Certificate[] java.security.AlgorithmConstraints int int java.util.Collection java.security.cert.X509Certificate[]
      StackMap stack: new 8 new 8 java.security.AlgorithmConstraints null
        10: ldc "tls server"
        11: .line 1203
      StackMap locals: sun.security.ssl.AbstractTrustManagerWrapper java.security.cert.X509Certificate[] java.security.AlgorithmConstraints int int java.util.Collection java.security.cert.X509Certificate[]
      StackMap stack: new 8 new 8 java.security.AlgorithmConstraints null java.lang.String
            invokespecial sun.security.provider.certpath.AlgorithmChecker.<init>:(Ljava/security/AlgorithmConstraints;Ljava/security/Timestamp;Ljava/lang/String;)V
        12: .line 1202
            astore 7 /* checker */
        start local 7 // sun.security.provider.certpath.AlgorithmChecker checker
        13: .line 1205
            aload 7 /* checker */
            iconst_0
            invokevirtual sun.security.provider.certpath.AlgorithmChecker.init:(Z)V
        14: .line 1206
            iload 4 /* checkedLength */
            istore 8 /* i */
        start local 8 // int i
        15: goto 19
        16: .line 1207
      StackMap locals: sun.security.provider.certpath.AlgorithmChecker int
      StackMap stack:
            aload 1 /* chain */
            iload 8 /* i */
            aaload
            astore 9 /* cert */
        start local 9 // java.security.cert.Certificate cert
        17: .line 1209
            aload 7 /* checker */
            aload 9 /* cert */
            invokestatic java.util.Collections.emptySet:()Ljava/util/Set;
            invokevirtual sun.security.provider.certpath.AlgorithmChecker.check:(Ljava/security/cert/Certificate;Ljava/util/Collection;)V
        end local 9 // java.security.cert.Certificate cert
        18: .line 1206
            iinc 8 /* i */ -1
      StackMap locals:
      StackMap stack:
        19: iload 8 /* i */
            ifge 16
        end local 8 // int i
        end local 7 // sun.security.provider.certpath.AlgorithmChecker checker
        end local 6 // java.security.cert.X509Certificate[] certs
        end local 5 // java.util.Collection trustedCerts
        end local 4 // int checkedLength
        20: .line 1212
            goto 25
      StackMap locals: sun.security.ssl.AbstractTrustManagerWrapper java.security.cert.X509Certificate[] java.security.AlgorithmConstraints int
      StackMap stack: java.security.cert.CertPathValidatorException
        21: astore 4 /* cpve */
        start local 4 // java.security.cert.CertPathValidatorException cpve
        22: .line 1213
            new java.security.cert.CertificateException
            dup
        23: .line 1214
            ldc "Certificates do not conform to algorithm constraints"
            aload 4 /* cpve */
        24: .line 1213
            invokespecial java.security.cert.CertificateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.security.cert.CertPathValidatorException cpve
        25: .line 1216
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean isClient
        end local 2 // java.security.AlgorithmConstraints constraints
        end local 1 // java.security.cert.X509Certificate[] chain
        end local 0 // sun.security.ssl.AbstractTrustManagerWrapper this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   26     0           this  Lsun/security/ssl/AbstractTrustManagerWrapper;
            0   26     1          chain  [Ljava/security/cert/X509Certificate;
            0   26     2    constraints  Ljava/security/AlgorithmConstraints;
            0   26     3       isClient  Z
            1   20     4  checkedLength  I
            2   20     5   trustedCerts  Ljava/util/Collection<Ljava/security/cert/X509Certificate;>;
            3   20     6          certs  [Ljava/security/cert/X509Certificate;
           13   20     7        checker  Lsun/security/provider/certpath/AlgorithmChecker;
           15   20     8              i  I
           17   18     9           cert  Ljava/security/cert/Certificate;
           22   25     4           cpve  Ljava/security/cert/CertPathValidatorException;
      Exception table:
        from    to  target  type
           0    20      21  Class java.security.cert.CertPathValidatorException
    Exceptions:
      throws java.security.cert.CertificateException
    MethodParameters:
             Name  Flags
      chain        
      constraints  
      isClient     
}
SourceFile: "SSLContextImpl.java"