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 1225
            aload 0 /* this */
            invokespecial javax.net.ssl.X509ExtendedTrustManager.<init>:()V
         1: .line 1226
            aload 0 /* this */
            aload 1 /* tm */
            putfield sun.security.ssl.AbstractTrustManagerWrapper.tm:Ljavax/net/ssl/X509TrustManager;
         2: .line 1227
            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 1232
            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 1233
            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 1238
            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 1239
            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 1243
            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 1249
            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 1250
            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 1251
            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 1256
            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 1257
            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 1258
            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 1263
            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 1264
            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 1265
            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 1270
            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 1271
            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 1272
            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=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 // java.net.Socket socket
        start local 4 // boolean checkClientTrusted
         0: .line 1277
            aload 3 /* socket */
            ifnull 28
            aload 3 /* socket */
            invokevirtual java.net.Socket.isConnected:()Z
            ifeq 28
         1: .line 1278
            aload 3 /* socket */
            instanceof javax.net.ssl.SSLSocket
            ifeq 28
         2: .line 1280
            aload 3 /* socket */
            checkcast javax.net.ssl.SSLSocket
            astore 5 /* sslSocket */
        start local 5 // javax.net.ssl.SSLSocket sslSocket
         3: .line 1281
            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 1282
            aload 6 /* session */
            ifnonnull 6
         5: .line 1283
            new java.security.cert.CertificateException
            dup
            ldc "No handshake session"
            invokespecial java.security.cert.CertificateException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 1287
      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 1288
            invokevirtual javax.net.ssl.SSLParameters.getEndpointIdentificationAlgorithm:()Ljava/lang/String;
         8: .line 1287
            astore 7 /* identityAlg */
        start local 7 // java.lang.String identityAlg
         9: .line 1289
            aload 7 /* identityAlg */
            ifnull 13
            aload 7 /* identityAlg */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 13
        10: .line 1290
            aload 6 /* session */
            aload 1 /* chain */
        11: .line 1291
            aload 7 /* identityAlg */
            iload 4 /* checkClientTrusted */
        12: .line 1290
            invokestatic sun.security.ssl.X509TrustManagerImpl.checkIdentity:(Ljavax/net/ssl/SSLSession;[Ljava/security/cert/X509Certificate;Ljava/lang/String;Z)V
        13: .line 1296
      StackMap locals: java.lang.String
      StackMap stack:
            aload 6 /* session */
            invokeinterface javax.net.ssl.SSLSession.getProtocol:()Ljava/lang/String;
            invokestatic sun.security.ssl.ProtocolVersion.useTLS12PlusSpec:(Ljava/lang/String;)Z
            ifeq 26
        14: .line 1297
            aload 6 /* session */
            instanceof javax.net.ssl.ExtendedSSLSession
            ifeq 23
        15: .line 1299
            aload 6 /* session */
            checkcast javax.net.ssl.ExtendedSSLSession
        16: .line 1298
            astore 9 /* extSession */
        start local 9 // javax.net.ssl.ExtendedSSLSession extSession
        17: .line 1301
            aload 9 /* extSession */
            invokevirtual javax.net.ssl.ExtendedSSLSession.getLocalSupportedSignatureAlgorithms:()[Ljava/lang/String;
        18: .line 1300
            astore 10 /* peerSupportedSignAlgs */
        start local 10 // java.lang.String[] peerSupportedSignAlgs
        19: .line 1303
            new sun.security.ssl.SSLAlgorithmConstraints
            dup
        20: .line 1304
            aload 5 /* sslSocket */
            aload 10 /* peerSupportedSignAlgs */
            iconst_1
        21: .line 1303
            invokespecial sun.security.ssl.SSLAlgorithmConstraints.<init>:(Ljavax/net/ssl/SSLSocket;[Ljava/lang/String;Z)V
            astore 8 /* constraints */
        end local 10 // java.lang.String[] peerSupportedSignAlgs
        end local 9 // javax.net.ssl.ExtendedSSLSession extSession
        start local 8 // java.security.AlgorithmConstraints constraints
        22: .line 1305
            goto 27
        end local 8 // java.security.AlgorithmConstraints constraints
        23: .line 1307
      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
        24: .line 1306
            astore 8 /* constraints */
        start local 8 // java.security.AlgorithmConstraints constraints
        25: .line 1309
            goto 27
        end local 8 // java.security.AlgorithmConstraints constraints
        26: .line 1310
      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 8 /* constraints */
        start local 8 // java.security.AlgorithmConstraints constraints
        27: .line 1313
      StackMap locals: java.security.AlgorithmConstraints
      StackMap stack:
            aload 0 /* this */
            aload 1 /* chain */
            aload 8 /* constraints */
            iload 4 /* checkClientTrusted */
            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 // java.lang.String identityAlg
        end local 6 // javax.net.ssl.SSLSession session
        end local 5 // javax.net.ssl.SSLSocket sslSocket
        28: .line 1315
      StackMap locals: sun.security.ssl.AbstractTrustManagerWrapper java.security.cert.X509Certificate[] java.lang.String java.net.Socket int
      StackMap stack:
            return
        end local 4 // boolean checkClientTrusted
        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   29     0                   this  Lsun/security/ssl/AbstractTrustManagerWrapper;
            0   29     1                  chain  [Ljava/security/cert/X509Certificate;
            0   29     2               authType  Ljava/lang/String;
            0   29     3                 socket  Ljava/net/Socket;
            0   29     4     checkClientTrusted  Z
            3   28     5              sslSocket  Ljavax/net/ssl/SSLSocket;
            4   28     6                session  Ljavax/net/ssl/SSLSession;
            9   28     7            identityAlg  Ljava/lang/String;
           22   23     8            constraints  Ljava/security/AlgorithmConstraints;
           25   26     8            constraints  Ljava/security/AlgorithmConstraints;
           27   28     8            constraints  Ljava/security/AlgorithmConstraints;
           17   22     9             extSession  Ljavax/net/ssl/ExtendedSSLSession;
           19   22    10  peerSupportedSignAlgs  [Ljava/lang/String;
    Exceptions:
      throws java.security.cert.CertificateException
    MethodParameters:
                    Name  Flags
      chain               
      authType            
      socket              
      checkClientTrusted  

  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=10, 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 checkClientTrusted
         0: .line 1320
            aload 3 /* engine */
            ifnull 26
         1: .line 1321
            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 1322
            aload 5 /* session */
            ifnonnull 4
         3: .line 1323
            new java.security.cert.CertificateException
            dup
            ldc "No handshake session"
            invokespecial java.security.cert.CertificateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1327
      StackMap locals: javax.net.ssl.SSLSession
      StackMap stack:
            aload 3 /* engine */
            invokevirtual javax.net.ssl.SSLEngine.getSSLParameters:()Ljavax/net/ssl/SSLParameters;
         5: .line 1328
            invokevirtual javax.net.ssl.SSLParameters.getEndpointIdentificationAlgorithm:()Ljava/lang/String;
         6: .line 1327
            astore 6 /* identityAlg */
        start local 6 // java.lang.String identityAlg
         7: .line 1329
            aload 6 /* identityAlg */
            ifnull 11
            aload 6 /* identityAlg */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 11
         8: .line 1330
            aload 5 /* session */
            aload 1 /* chain */
         9: .line 1331
            aload 6 /* identityAlg */
            iload 4 /* checkClientTrusted */
        10: .line 1330
            invokestatic sun.security.ssl.X509TrustManagerImpl.checkIdentity:(Ljavax/net/ssl/SSLSession;[Ljava/security/cert/X509Certificate;Ljava/lang/String;Z)V
        11: .line 1336
      StackMap locals: java.lang.String
      StackMap stack:
            aload 5 /* session */
            invokeinterface javax.net.ssl.SSLSession.getProtocol:()Ljava/lang/String;
            invokestatic sun.security.ssl.ProtocolVersion.useTLS12PlusSpec:(Ljava/lang/String;)Z
            ifeq 24
        12: .line 1337
            aload 5 /* session */
            instanceof javax.net.ssl.ExtendedSSLSession
            ifeq 21
        13: .line 1339
            aload 5 /* session */
            checkcast javax.net.ssl.ExtendedSSLSession
        14: .line 1338
            astore 8 /* extSession */
        start local 8 // javax.net.ssl.ExtendedSSLSession extSession
        15: .line 1341
            aload 8 /* extSession */
            invokevirtual javax.net.ssl.ExtendedSSLSession.getLocalSupportedSignatureAlgorithms:()[Ljava/lang/String;
        16: .line 1340
            astore 9 /* peerSupportedSignAlgs */
        start local 9 // java.lang.String[] peerSupportedSignAlgs
        17: .line 1343
            new sun.security.ssl.SSLAlgorithmConstraints
            dup
        18: .line 1344
            aload 3 /* engine */
            aload 9 /* peerSupportedSignAlgs */
            iconst_1
        19: .line 1343
            invokespecial sun.security.ssl.SSLAlgorithmConstraints.<init>:(Ljavax/net/ssl/SSLEngine;[Ljava/lang/String;Z)V
            astore 7 /* constraints */
        end local 9 // java.lang.String[] peerSupportedSignAlgs
        end local 8 // javax.net.ssl.ExtendedSSLSession extSession
        start local 7 // java.security.AlgorithmConstraints constraints
        20: .line 1345
            goto 25
        end local 7 // java.security.AlgorithmConstraints constraints
        21: .line 1347
      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
        22: .line 1346
            astore 7 /* constraints */
        start local 7 // java.security.AlgorithmConstraints constraints
        23: .line 1349
            goto 25
        end local 7 // java.security.AlgorithmConstraints constraints
        24: .line 1350
      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 7 /* constraints */
        start local 7 // java.security.AlgorithmConstraints constraints
        25: .line 1353
      StackMap locals: java.security.AlgorithmConstraints
      StackMap stack:
            aload 0 /* this */
            aload 1 /* chain */
            aload 7 /* constraints */
            iload 4 /* checkClientTrusted */
            invokevirtual sun.security.ssl.AbstractTrustManagerWrapper.checkAlgorithmConstraints:([Ljava/security/cert/X509Certificate;Ljava/security/AlgorithmConstraints;Z)V
        end local 7 // java.security.AlgorithmConstraints constraints
        end local 6 // java.lang.String identityAlg
        end local 5 // javax.net.ssl.SSLSession session
        26: .line 1355
      StackMap locals:
      StackMap stack:
            return
        end local 4 // boolean checkClientTrusted
        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   27     0                   this  Lsun/security/ssl/AbstractTrustManagerWrapper;
            0   27     1                  chain  [Ljava/security/cert/X509Certificate;
            0   27     2               authType  Ljava/lang/String;
            0   27     3                 engine  Ljavax/net/ssl/SSLEngine;
            0   27     4     checkClientTrusted  Z
            2   26     5                session  Ljavax/net/ssl/SSLSession;
            7   26     6            identityAlg  Ljava/lang/String;
           20   21     7            constraints  Ljava/security/AlgorithmConstraints;
           23   24     7            constraints  Ljava/security/AlgorithmConstraints;
           25   26     7            constraints  Ljava/security/AlgorithmConstraints;
           15   20     8             extSession  Ljavax/net/ssl/ExtendedSSLSession;
           17   20     9  peerSupportedSignAlgs  [Ljava/lang/String;
    Exceptions:
      throws java.security.cert.CertificateException
    MethodParameters:
                    Name  Flags
      chain               
      authType            
      engine              
      checkClientTrusted  

  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 checkClientTrusted
         0: .line 1362
            aload 1 /* chain */
            arraylength
            iconst_1
            isub
            istore 4 /* checkedLength */
        start local 4 // int checkedLength
         1: .line 1364
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 5 /* trustedCerts */
        start local 5 // java.util.Collection trustedCerts
         2: .line 1365
            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 1366
            aload 6 /* certs */
            ifnull 5
            aload 6 /* certs */
            arraylength
            ifle 5
         4: .line 1367
            aload 5 /* trustedCerts */
            aload 6 /* certs */
            invokestatic java.util.Collections.addAll:(Ljava/util/Collection;[Ljava/lang/Object;)Z
            pop
         5: .line 1370
      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 1371
            iinc 4 /* checkedLength */ -1
         7: .line 1375
      StackMap locals:
      StackMap stack:
            iload 4 /* checkedLength */
            iflt 25
         8: .line 1377
            new sun.security.provider.certpath.AlgorithmChecker
            dup
            aload 2 /* constraints */
            aconst_null
         9: .line 1378
            iload 3 /* checkClientTrusted */
            ifeq 10
            ldc "tls client"
            goto 11
        10: .line 1379
      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
            ldc "tls server"
        11: .line 1377
      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 1376
            astore 7 /* checker */
        start local 7 // sun.security.provider.certpath.AlgorithmChecker checker
        13: .line 1380
            aload 7 /* checker */
            iconst_0
            invokevirtual sun.security.provider.certpath.AlgorithmChecker.init:(Z)V
        14: .line 1381
            iload 4 /* checkedLength */
            istore 8 /* i */
        start local 8 // int i
        15: goto 19
        16: .line 1382
      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.X509Certificate cert
        17: .line 1384
            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.X509Certificate cert
        18: .line 1381
            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 1387
            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 1388
            new java.security.cert.CertificateException
            dup
        23: .line 1389
            ldc "Certificates do not conform to algorithm constraints"
            aload 4 /* cpve */
        24: .line 1388
            invokespecial java.security.cert.CertificateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.security.cert.CertPathValidatorException cpve
        25: .line 1391
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean checkClientTrusted
        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  checkClientTrusted  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/X509Certificate;
           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         
      checkClientTrusted  
}
SourceFile: "SSLContextImpl.java"