public final class sun.security.tools.jarsigner.TimestampedSigner extends com.sun.jarsigner.ContentSigner
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: sun.security.tools.jarsigner.TimestampedSigner
  super_class: com.sun.jarsigner.ContentSigner
{
  private static final java.lang.String SUBJECT_INFO_ACCESS_OID;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "1.3.6.1.5.5.7.1.11"

  private static final sun.security.util.ObjectIdentifier AD_TIMESTAMPING_Id;
    descriptor: Lsun/security/util/ObjectIdentifier;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 62
            aconst_null
            astore 0 /* tmp */
        start local 0 // sun.security.util.ObjectIdentifier tmp
         1: .line 64
            new sun.security.util.ObjectIdentifier
            dup
            ldc "1.3.6.1.5.5.7.48.3"
            invokespecial sun.security.util.ObjectIdentifier.<init>:(Ljava/lang/String;)V
            astore 0 /* tmp */
         2: .line 65
            goto 4
      StackMap locals: sun.security.util.ObjectIdentifier
      StackMap stack: java.io.IOException
         3: pop
         4: .line 68
      StackMap locals:
      StackMap stack:
            aload 0 /* tmp */
            putstatic sun.security.tools.jarsigner.TimestampedSigner.AD_TIMESTAMPING_Id:Lsun/security/util/ObjectIdentifier;
        end local 0 // sun.security.util.ObjectIdentifier tmp
         5: .line 69
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            1    5     0   tmp  Lsun/security/util/ObjectIdentifier;
      Exception table:
        from    to  target  type
           1     2       3  Class java.io.IOException

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.tools.jarsigner.TimestampedSigner this
         0: .line 74
            aload 0 /* this */
            invokespecial com.sun.jarsigner.ContentSigner.<init>:()V
         1: .line 75
            return
        end local 0 // sun.security.tools.jarsigner.TimestampedSigner this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/security/tools/jarsigner/TimestampedSigner;

  public byte[] generateSignedData(com.sun.jarsigner.ContentSignerParameters, boolean, boolean);
    descriptor: (Lcom/sun/jarsigner/ContentSignerParameters;ZZ)[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=9, args_size=4
        start local 0 // sun.security.tools.jarsigner.TimestampedSigner this
        start local 1 // com.sun.jarsigner.ContentSignerParameters params
        start local 2 // boolean omitContent
        start local 3 // boolean applyTimestamp
         0: .line 106
            aload 1 /* params */
            ifnonnull 2
         1: .line 107
            new java.lang.NullPointerException
            dup
            invokespecial java.lang.NullPointerException.<init>:()V
            athrow
         2: .line 114
      StackMap locals:
      StackMap stack:
            aload 1 /* params */
            invokeinterface com.sun.jarsigner.ContentSignerParameters.getSignatureAlgorithm:()Ljava/lang/String;
            pop
         3: .line 116
            aload 1 /* params */
            invokeinterface com.sun.jarsigner.ContentSignerParameters.getSignerCertificateChain:()[Ljava/security/cert/X509Certificate;
            astore 4 /* signerChain */
        start local 4 // java.security.cert.X509Certificate[] signerChain
         4: .line 117
            aload 1 /* params */
            invokeinterface com.sun.jarsigner.ContentSignerParameters.getSignature:()[B
            astore 5 /* signature */
        start local 5 // byte[] signature
         5: .line 120
            iload 2 /* omitContent */
            ifeq 6
            aconst_null
            goto 7
      StackMap locals: java.security.cert.X509Certificate[] byte[]
      StackMap stack:
         6: aload 1 /* params */
            invokeinterface com.sun.jarsigner.ContentSignerParameters.getContent:()[B
      StackMap locals:
      StackMap stack: byte[]
         7: astore 6 /* content */
        start local 6 // byte[] content
         8: .line 122
            aconst_null
            astore 7 /* tsaURI */
        start local 7 // java.net.URI tsaURI
         9: .line 123
            iload 3 /* applyTimestamp */
            ifeq 18
        10: .line 124
            aload 1 /* params */
            invokeinterface com.sun.jarsigner.ContentSignerParameters.getTimestampingAuthority:()Ljava/net/URI;
            astore 7 /* tsaURI */
        11: .line 125
            aload 7 /* tsaURI */
            ifnonnull 18
        12: .line 128
            aload 1 /* params */
            invokeinterface com.sun.jarsigner.ContentSignerParameters.getTimestampingAuthorityCertificate:()Ljava/security/cert/X509Certificate;
        13: .line 127
            invokestatic sun.security.tools.jarsigner.TimestampedSigner.getTimestampingURI:(Ljava/security/cert/X509Certificate;)Ljava/net/URI;
            astore 7 /* tsaURI */
        14: .line 129
            aload 7 /* tsaURI */
            ifnonnull 18
        15: .line 130
            new java.security.cert.CertificateException
            dup
        16: .line 131
            ldc "Subject Information Access extension not found"
        17: .line 130
            invokespecial java.security.cert.CertificateException.<init>:(Ljava/lang/String;)V
            athrow
        18: .line 135
      StackMap locals: byte[] java.net.URI
      StackMap stack:
            ldc "SHA-256"
            astore 8 /* tSADigestAlg */
        start local 8 // java.lang.String tSADigestAlg
        19: .line 136
            aload 1 /* params */
            instanceof sun.security.tools.jarsigner.JarSignerParameters
            ifeq 21
        20: .line 137
            aload 1 /* params */
            checkcast sun.security.tools.jarsigner.JarSignerParameters
            invokevirtual sun.security.tools.jarsigner.JarSignerParameters.getTSADigestAlg:()Ljava/lang/String;
            astore 8 /* tSADigestAlg */
        21: .line 139
      StackMap locals: java.lang.String
      StackMap stack:
            aload 5 /* signature */
            aload 4 /* signerChain */
            aload 6 /* content */
        22: .line 140
            aload 1 /* params */
            invokeinterface com.sun.jarsigner.ContentSignerParameters.getSignatureAlgorithm:()Ljava/lang/String;
            aload 7 /* tsaURI */
        23: .line 141
            aload 1 /* params */
            invokeinterface com.sun.jarsigner.ContentSignerParameters.getTSAPolicyID:()Ljava/lang/String;
        24: .line 142
            aload 8 /* tSADigestAlg */
        25: .line 139
            invokestatic sun.security.pkcs.PKCS7.generateSignedData:([B[Ljava/security/cert/X509Certificate;[BLjava/lang/String;Ljava/net/URI;Ljava/lang/String;Ljava/lang/String;)[B
            areturn
        end local 8 // java.lang.String tSADigestAlg
        end local 7 // java.net.URI tsaURI
        end local 6 // byte[] content
        end local 5 // byte[] signature
        end local 4 // java.security.cert.X509Certificate[] signerChain
        end local 3 // boolean applyTimestamp
        end local 2 // boolean omitContent
        end local 1 // com.sun.jarsigner.ContentSignerParameters params
        end local 0 // sun.security.tools.jarsigner.TimestampedSigner this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   26     0            this  Lsun/security/tools/jarsigner/TimestampedSigner;
            0   26     1          params  Lcom/sun/jarsigner/ContentSignerParameters;
            0   26     2     omitContent  Z
            0   26     3  applyTimestamp  Z
            4   26     4     signerChain  [Ljava/security/cert/X509Certificate;
            5   26     5       signature  [B
            8   26     6         content  [B
            9   26     7          tsaURI  Ljava/net/URI;
           19   26     8    tSADigestAlg  Ljava/lang/String;
    Exceptions:
      throws java.security.NoSuchAlgorithmException, java.security.cert.CertificateException, java.io.IOException
    MethodParameters:
                Name  Flags
      params          
      omitContent     
      applyTimestamp  

  public static java.net.URI getTimestampingURI(java.security.cert.X509Certificate);
    descriptor: (Ljava/security/cert/X509Certificate;)Ljava/net/URI;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=1
        start local 0 // java.security.cert.X509Certificate tsaCertificate
         0: .line 157
            aload 0 /* tsaCertificate */
            ifnonnull 2
         1: .line 158
            aconst_null
            areturn
         2: .line 163
      StackMap locals:
      StackMap stack:
            aload 0 /* tsaCertificate */
            ldc "1.3.6.1.5.5.7.1.11"
            invokevirtual java.security.cert.X509Certificate.getExtensionValue:(Ljava/lang/String;)[B
         3: .line 162
            astore 1 /* extensionValue */
        start local 1 // byte[] extensionValue
         4: .line 164
            aload 1 /* extensionValue */
            ifnonnull 6
         5: .line 165
            aconst_null
            areturn
         6: .line 167
      StackMap locals: byte[]
      StackMap stack:
            new sun.security.util.DerInputStream
            dup
            aload 1 /* extensionValue */
            invokespecial sun.security.util.DerInputStream.<init>:([B)V
            astore 2 /* der */
        start local 2 // sun.security.util.DerInputStream der
         7: .line 168
            new sun.security.util.DerInputStream
            dup
            aload 2 /* der */
            invokevirtual sun.security.util.DerInputStream.getOctetString:()[B
            invokespecial sun.security.util.DerInputStream.<init>:([B)V
            astore 2 /* der */
         8: .line 169
            aload 2 /* der */
            iconst_5
            invokevirtual sun.security.util.DerInputStream.getSequence:(I)[Lsun/security/util/DerValue;
            astore 3 /* derValue */
        start local 3 // sun.security.util.DerValue[] derValue
         9: .line 173
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        10: goto 22
        11: .line 174
      StackMap locals: java.security.cert.X509Certificate byte[] sun.security.util.DerInputStream sun.security.util.DerValue[] top top top int
      StackMap stack:
            new sun.security.x509.AccessDescription
            dup
            aload 3 /* derValue */
            iload 7 /* i */
            aaload
            invokespecial sun.security.x509.AccessDescription.<init>:(Lsun/security/util/DerValue;)V
            astore 4 /* description */
        start local 4 // sun.security.x509.AccessDescription description
        12: .line 175
            aload 4 /* description */
            invokevirtual sun.security.x509.AccessDescription.getAccessMethod:()Lsun/security/util/ObjectIdentifier;
        13: .line 176
            getstatic sun.security.tools.jarsigner.TimestampedSigner.AD_TIMESTAMPING_Id:Lsun/security/util/ObjectIdentifier;
            invokevirtual sun.security.util.ObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 21
        14: .line 177
            aload 4 /* description */
            invokevirtual sun.security.x509.AccessDescription.getAccessLocation:()Lsun/security/x509/GeneralName;
            astore 5 /* location */
        start local 5 // sun.security.x509.GeneralName location
        15: .line 178
            aload 5 /* location */
            invokevirtual sun.security.x509.GeneralName.getType:()I
            bipush 6
            if_icmpne 21
        16: .line 179
            aload 5 /* location */
            invokevirtual sun.security.x509.GeneralName.getName:()Lsun/security/x509/GeneralNameInterface;
            checkcast sun.security.x509.URIName
            astore 6 /* uri */
        start local 6 // sun.security.x509.URIName uri
        17: .line 180
            aload 6 /* uri */
            invokevirtual sun.security.x509.URIName.getScheme:()Ljava/lang/String;
            ldc "http"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 19
        18: .line 181
            aload 6 /* uri */
            invokevirtual sun.security.x509.URIName.getScheme:()Ljava/lang/String;
            ldc "https"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 21
        19: .line 182
      StackMap locals: java.security.cert.X509Certificate byte[] sun.security.util.DerInputStream sun.security.util.DerValue[] sun.security.x509.AccessDescription sun.security.x509.GeneralName sun.security.x509.URIName int
      StackMap stack:
            aload 6 /* uri */
            invokevirtual sun.security.x509.URIName.getURI:()Ljava/net/URI;
        20: areturn
        end local 6 // sun.security.x509.URIName uri
        end local 5 // sun.security.x509.GeneralName location
        21: .line 173
      StackMap locals: java.security.cert.X509Certificate byte[] sun.security.util.DerInputStream sun.security.util.DerValue[] sun.security.x509.AccessDescription top top int
      StackMap stack:
            iinc 7 /* i */ 1
        end local 4 // sun.security.x509.AccessDescription description
      StackMap locals: java.security.cert.X509Certificate byte[] sun.security.util.DerInputStream sun.security.util.DerValue[] top top top int
      StackMap stack:
        22: iload 7 /* i */
            aload 3 /* derValue */
            arraylength
            if_icmplt 11
        end local 7 // int i
        end local 3 // sun.security.util.DerValue[] derValue
        end local 2 // sun.security.util.DerInputStream der
        end local 1 // byte[] extensionValue
        23: .line 187
            goto 25
      StackMap locals: java.security.cert.X509Certificate
      StackMap stack: java.io.IOException
        24: pop
        25: .line 190
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // java.security.cert.X509Certificate tsaCertificate
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   26     0  tsaCertificate  Ljava/security/cert/X509Certificate;
            4   23     1  extensionValue  [B
            7   23     2             der  Lsun/security/util/DerInputStream;
            9   23     3        derValue  [Lsun/security/util/DerValue;
           12   22     4     description  Lsun/security/x509/AccessDescription;
           15   21     5        location  Lsun/security/x509/GeneralName;
           17   21     6             uri  Lsun/security/x509/URIName;
           10   23     7               i  I
      Exception table:
        from    to  target  type
           2     5      24  Class java.io.IOException
           6    20      24  Class java.io.IOException
          21    23      24  Class java.io.IOException
    MethodParameters:
                Name  Flags
      tsaCertificate  
}
SourceFile: "TimestampedSigner.java"