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 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=1, locals=0, args_size=0
         0: .line 55
            getstatic sun.security.util.KnownOIDs.AD_TimeStamping:Lsun/security/util/KnownOIDs;
            invokestatic sun.security.util.ObjectIdentifier.of:(Lsun/security/util/KnownOIDs;)Lsun/security/util/ObjectIdentifier;
         1: .line 54
            putstatic sun.security.tools.jarsigner.TimestampedSigner.AD_TIMESTAMPING_Id:Lsun/security/util/ObjectIdentifier;
         2: .line 55
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  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 60
            aload 0 /* this */
            invokespecial com.sun.jarsigner.ContentSigner.<init>:()V
         1: .line 61
            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=8, 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 92
            aload 1 /* params */
            ifnonnull 2
         1: .line 93
            new java.lang.NullPointerException
            dup
            invokespecial java.lang.NullPointerException.<init>:()V
            athrow
         2: .line 100
      StackMap locals:
      StackMap stack:
            aload 1 /* params */
            invokeinterface com.sun.jarsigner.ContentSignerParameters.getSignatureAlgorithm:()Ljava/lang/String;
            pop
         3: .line 102
            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 103
            aload 1 /* params */
            invokeinterface com.sun.jarsigner.ContentSignerParameters.getSignature:()[B
            astore 5 /* signature */
        start local 5 // byte[] signature
         5: .line 106
            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 108
            aconst_null
            astore 7 /* tsaURI */
        start local 7 // java.net.URI tsaURI
         9: .line 109
            iload 3 /* applyTimestamp */
            ifeq 18
        10: .line 110
            aload 1 /* params */
            invokeinterface com.sun.jarsigner.ContentSignerParameters.getTimestampingAuthority:()Ljava/net/URI;
            astore 7 /* tsaURI */
        11: .line 111
            aload 7 /* tsaURI */
            ifnonnull 18
        12: .line 114
            aload 1 /* params */
            invokeinterface com.sun.jarsigner.ContentSignerParameters.getTimestampingAuthorityCertificate:()Ljava/security/cert/X509Certificate;
        13: .line 113
            invokestatic sun.security.tools.jarsigner.TimestampedSigner.getTimestampingURI:(Ljava/security/cert/X509Certificate;)Ljava/net/URI;
            astore 7 /* tsaURI */
        14: .line 115
            aload 7 /* tsaURI */
            ifnonnull 18
        15: .line 116
            new java.security.cert.CertificateException
            dup
        16: .line 117
            ldc "Subject Information Access extension not found"
        17: .line 116
            invokespecial java.security.cert.CertificateException.<init>:(Ljava/lang/String;)V
            athrow
        18: .line 121
      StackMap locals: byte[] java.net.URI
      StackMap stack:
            aload 5 /* signature */
            aload 4 /* signerChain */
            aload 6 /* content */
        19: .line 122
            aload 1 /* params */
            invokeinterface com.sun.jarsigner.ContentSignerParameters.getSignatureAlgorithm:()Ljava/lang/String;
            aload 7 /* tsaURI */
        20: .line 123
            aload 1 /* params */
            invokeinterface com.sun.jarsigner.ContentSignerParameters.getTSAPolicyID:()Ljava/lang/String;
        21: .line 124
            aload 1 /* params */
            invokeinterface com.sun.jarsigner.ContentSignerParameters.getTSADigestAlg:()Ljava/lang/String;
        22: .line 121
            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 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   23     0            this  Lsun/security/tools/jarsigner/TimestampedSigner;
            0   23     1          params  Lcom/sun/jarsigner/ContentSignerParameters;
            0   23     2     omitContent  Z
            0   23     3  applyTimestamp  Z
            4   23     4     signerChain  [Ljava/security/cert/X509Certificate;
            5   23     5       signature  [B
            8   23     6         content  [B
            9   23     7          tsaURI  Ljava/net/URI;
    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 139
            aload 0 /* tsaCertificate */
            ifnonnull 2
         1: .line 140
            aconst_null
            areturn
         2: .line 144
      StackMap locals:
      StackMap stack:
            aload 0 /* tsaCertificate */
         3: .line 145
            getstatic sun.security.util.KnownOIDs.SubjectInfoAccess:Lsun/security/util/KnownOIDs;
            invokevirtual sun.security.util.KnownOIDs.value:()Ljava/lang/String;
         4: .line 144
            invokevirtual java.security.cert.X509Certificate.getExtensionValue:(Ljava/lang/String;)[B
            astore 1 /* extensionValue */
        start local 1 // byte[] extensionValue
         5: .line 146
            aload 1 /* extensionValue */
            ifnonnull 7
         6: .line 147
            aconst_null
            areturn
         7: .line 149
      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
         8: .line 150
            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 */
         9: .line 151
            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
        10: .line 155
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        11: goto 23
        12: .line 156
      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
        13: .line 157
            aload 4 /* description */
            invokevirtual sun.security.x509.AccessDescription.getAccessMethod:()Lsun/security/util/ObjectIdentifier;
        14: .line 158
            getstatic sun.security.tools.jarsigner.TimestampedSigner.AD_TIMESTAMPING_Id:Lsun/security/util/ObjectIdentifier;
            invokevirtual sun.security.util.ObjectIdentifier.equals:(Ljava/lang/Object;)Z
            ifeq 22
        15: .line 159
            aload 4 /* description */
            invokevirtual sun.security.x509.AccessDescription.getAccessLocation:()Lsun/security/x509/GeneralName;
            astore 5 /* location */
        start local 5 // sun.security.x509.GeneralName location
        16: .line 160
            aload 5 /* location */
            invokevirtual sun.security.x509.GeneralName.getType:()I
            bipush 6
            if_icmpne 22
        17: .line 161
            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
        18: .line 162
            aload 6 /* uri */
            invokevirtual sun.security.x509.URIName.getScheme:()Ljava/lang/String;
            ldc "http"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 20
        19: .line 163
            aload 6 /* uri */
            invokevirtual sun.security.x509.URIName.getScheme:()Ljava/lang/String;
            ldc "https"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 22
        20: .line 164
      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;
        21: areturn
        end local 6 // sun.security.x509.URIName uri
        end local 5 // sun.security.x509.GeneralName location
        22: .line 155
      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:
        23: iload 7 /* i */
            aload 3 /* derValue */
            arraylength
            if_icmplt 12
        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
        24: .line 169
            goto 26
      StackMap locals: java.security.cert.X509Certificate
      StackMap stack: java.io.IOException
        25: pop
        26: .line 172
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // java.security.cert.X509Certificate tsaCertificate
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   27     0  tsaCertificate  Ljava/security/cert/X509Certificate;
            5   24     1  extensionValue  [B
            8   24     2             der  Lsun/security/util/DerInputStream;
           10   24     3        derValue  [Lsun/security/util/DerValue;
           13   23     4     description  Lsun/security/x509/AccessDescription;
           16   22     5        location  Lsun/security/x509/GeneralName;
           18   22     6             uri  Lsun/security/x509/URIName;
           11   24     7               i  I
      Exception table:
        from    to  target  type
           2     6      25  Class java.io.IOException
           7    21      25  Class java.io.IOException
          22    24      25  Class java.io.IOException
    MethodParameters:
                Name  Flags
      tsaCertificate  
}
SourceFile: "TimestampedSigner.java"