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 1438
            aload 0 /* this */
            invokespecial javax.net.ssl.X509ExtendedTrustManager.<init>:()V
         1: .line 1439
            aload 0 /* this */
            aload 1 /* tm */
            putfield sun.security.ssl.AbstractTrustManagerWrapper.tm:Ljavax/net/ssl/X509TrustManager;
         2: .line 1440
            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 1445
            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 1446
            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 1451
            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 1452
            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 1456
            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 1462
            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 1463
            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 1464
            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 1469
            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 1470
            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 1471
            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 1476
            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 1477
            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 1478
            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 1483
            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 1484
            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 1485
            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 1490
            aload 3 /* socket */
            ifnull 28
            aload 3 /* socket */
            invokevirtual java.net.Socket.isConnected:()Z
            ifeq 28
         1: .line 1491
            aload 3 /* socket */
            instanceof javax.net.ssl.SSLSocket
            ifeq 28
         2: .line 1493
            aload 3 /* socket */
            checkcast javax.net.ssl.SSLSocket
            astore 5 /* sslSocket */
        start local 5 // javax.net.ssl.SSLSocket sslSocket
         3: .line 1494
            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 1495
            aload 6 /* session */
            ifnonnull 6
         5: .line 1496
            new java.security.cert.CertificateException
            dup
            ldc "No handshake session"
            invokespecial java.security.cert.CertificateException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 1500
      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 1501
            invokevirtual javax.net.ssl.SSLParameters.getEndpointIdentificationAlgorithm:()Ljava/lang/String;
         8: .line 1500
            astore 7 /* identityAlg */
        start local 7 // java.lang.String identityAlg
         9: .line 1502
            aload 7 /* identityAlg */
            ifnull 13
            aload 7 /* identityAlg */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 13
        10: .line 1503
            aload 6 /* session */
            aload 1 /* chain */
        11: .line 1504
            aload 7 /* identityAlg */
            iload 4 /* checkClientTrusted */
        12: .line 1503
            invokestatic sun.security.ssl.X509TrustManagerImpl.checkIdentity:(Ljavax/net/ssl/SSLSession;[Ljava/security/cert/X509Certificate;Ljava/lang/String;Z)V
        13: .line 1509
      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 1510
            aload 6 /* session */
            instanceof javax.net.ssl.ExtendedSSLSession
            ifeq 23
        15: .line 1512
            aload 6 /* session */
            checkcast javax.net.ssl.ExtendedSSLSession
        16: .line 1511
            astore 9 /* extSession */
        start local 9 // javax.net.ssl.ExtendedSSLSession extSession
        17: .line 1514
            aload 9 /* extSession */
            invokevirtual javax.net.ssl.ExtendedSSLSession.getLocalSupportedSignatureAlgorithms:()[Ljava/lang/String;
        18: .line 1513
            astore 10 /* peerSupportedSignAlgs */
        start local 10 // java.lang.String[] peerSupportedSignAlgs
        19: .line 1516
            new sun.security.ssl.SSLAlgorithmConstraints
            dup
        20: .line 1517
            aload 5 /* sslSocket */
            aload 10 /* peerSupportedSignAlgs */
            iconst_1
        21: .line 1516
            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 1518
            goto 27
        end local 8 // java.security.AlgorithmConstraints constraints
        23: .line 1520
      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 1519
            astore 8 /* constraints */
        start local 8 // java.security.AlgorithmConstraints constraints
        25: .line 1522
            goto 27
        end local 8 // java.security.AlgorithmConstraints constraints
        26: .line 1523
      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 1526
      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 1528
      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 1533
            aload 3 /* engine */
            ifnull 26
         1: .line 1534
            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 1535
            aload 5 /* session */
            ifnonnull 4
         3: .line 1536
            new java.security.cert.CertificateException
            dup
            ldc "No handshake session"
            invokespecial java.security.cert.CertificateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1540
      StackMap locals: javax.net.ssl.SSLSession
      StackMap stack:
            aload 3 /* engine */
            invokevirtual javax.net.ssl.SSLEngine.getSSLParameters:()Ljavax/net/ssl/SSLParameters;
         5: .line 1541
            invokevirtual javax.net.ssl.SSLParameters.getEndpointIdentificationAlgorithm:()Ljava/lang/String;
         6: .line 1540
            astore 6 /* identityAlg */
        start local 6 // java.lang.String identityAlg
         7: .line 1542
            aload 6 /* identityAlg */
            ifnull 11
            aload 6 /* identityAlg */
            invokevirtual java.lang.String.isEmpty:()Z
            ifne 11
         8: .line 1543
            aload 5 /* session */
            aload 1 /* chain */
         9: .line 1544
            aload 6 /* identityAlg */
            iload 4 /* checkClientTrusted */
        10: .line 1543
            invokestatic sun.security.ssl.X509TrustManagerImpl.checkIdentity:(Ljavax/net/ssl/SSLSession;[Ljava/security/cert/X509Certificate;Ljava/lang/String;Z)V
        11: .line 1549
      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 1550
            aload 5 /* session */
            instanceof javax.net.ssl.ExtendedSSLSession
            ifeq 21
        13: .line 1552
            aload 5 /* session */
            checkcast javax.net.ssl.ExtendedSSLSession
        14: .line 1551
            astore 8 /* extSession */
        start local 8 // javax.net.ssl.ExtendedSSLSession extSession
        15: .line 1554
            aload 8 /* extSession */
            invokevirtual javax.net.ssl.ExtendedSSLSession.getLocalSupportedSignatureAlgorithms:()[Ljava/lang/String;
        16: .line 1553
            astore 9 /* peerSupportedSignAlgs */
        start local 9 // java.lang.String[] peerSupportedSignAlgs
        17: .line 1556
            new sun.security.ssl.SSLAlgorithmConstraints
            dup
        18: .line 1557
            aload 3 /* engine */
            aload 9 /* peerSupportedSignAlgs */
            iconst_1
        19: .line 1556
            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 1558
            goto 25
        end local 7 // java.security.AlgorithmConstraints constraints
        21: .line 1560
      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 1559
            astore 7 /* constraints */
        start local 7 // java.security.AlgorithmConstraints constraints
        23: .line 1562
            goto 25
        end local 7 // java.security.AlgorithmConstraints constraints
        24: .line 1563
      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 1566
      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 1568
      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 1575
            aload 1 /* chain */
            arraylength
            iconst_1
            isub
            istore 4 /* checkedLength */
        start local 4 // int checkedLength
         1: .line 1577
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 5 /* trustedCerts */
        start local 5 // java.util.Collection trustedCerts
         2: .line 1578
            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 1579
            aload 6 /* certs */
            ifnull 5
            aload 6 /* certs */
            arraylength
            ifle 5
         4: .line 1580
            aload 5 /* trustedCerts */
            aload 6 /* certs */
            invokestatic java.util.Collections.addAll:(Ljava/util/Collection;[Ljava/lang/Object;)Z
            pop
         5: .line 1583
      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 1584
            iinc 4 /* checkedLength */ -1
         7: .line 1588
      StackMap locals:
      StackMap stack:
            iload 4 /* checkedLength */
            iflt 25
         8: .line 1590
            new sun.security.provider.certpath.AlgorithmChecker
            dup
            aload 2 /* constraints */
            aconst_null
         9: .line 1591
            iload 3 /* checkClientTrusted */
            ifeq 10
            ldc "tls client"
            goto 11
        10: .line 1592
      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 1590
      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 1589
            astore 7 /* checker */
        start local 7 // sun.security.provider.certpath.AlgorithmChecker checker
        13: .line 1593
            aload 7 /* checker */
            iconst_0
            invokevirtual sun.security.provider.certpath.AlgorithmChecker.init:(Z)V
        14: .line 1594
            iload 4 /* checkedLength */
            istore 8 /* i */
        start local 8 // int i
        15: goto 19
        16: .line 1595
      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 1597
            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 1594
            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 1600
            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 1601
            new java.security.cert.CertificateException
            dup
        23: .line 1602
            ldc "Certificates do not conform to algorithm constraints"
            aload 4 /* cpve */
        24: .line 1601
            invokespecial java.security.cert.CertificateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.security.cert.CertPathValidatorException cpve
        25: .line 1604
      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"