public class sun.security.tools.jarsigner.SignatureFile$Block
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.security.tools.jarsigner.SignatureFile$Block
  super_class: java.lang.Object
{
  private byte[] block;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

  private java.lang.String blockFileName;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  void <init>(sun.security.tools.jarsigner.SignatureFile, java.security.PrivateKey, java.lang.String, java.security.cert.X509Certificate[], boolean, java.lang.String, java.security.cert.X509Certificate, java.lang.String, java.lang.String, com.sun.jarsigner.ContentSigner, java.lang.String[], java.util.zip.ZipFile);
    descriptor: (Lsun/security/tools/jarsigner/SignatureFile;Ljava/security/PrivateKey;Ljava/lang/String;[Ljava/security/cert/X509Certificate;ZLjava/lang/String;Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljava/lang/String;Lcom/sun/jarsigner/ContentSigner;[Ljava/lang/String;Ljava/util/zip/ZipFile;)V
    flags: (0x0000) 
    Code:
      stack=12, locals=23, args_size=13
        start local 0 // sun.security.tools.jarsigner.SignatureFile$Block this
        start local 1 // sun.security.tools.jarsigner.SignatureFile sfg
        start local 2 // java.security.PrivateKey privateKey
        start local 3 // java.lang.String sigalg
        start local 4 // java.security.cert.X509Certificate[] certChain
        start local 5 // boolean externalSF
        start local 6 // java.lang.String tsaUrl
        start local 7 // java.security.cert.X509Certificate tsaCert
        start local 8 // java.lang.String tSAPolicyID
        start local 9 // java.lang.String tSADigestAlg
        start local 10 // com.sun.jarsigner.ContentSigner signingMechanism
        start local 11 // java.lang.String[] args
        start local 12 // java.util.zip.ZipFile zipFile
         0: .line 2753
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 2760
            aload 4 /* certChain */
            iconst_0
            aaload
            invokevirtual java.security.cert.X509Certificate.getIssuerDN:()Ljava/security/Principal;
            astore 13 /* issuerName */
        start local 13 // java.security.Principal issuerName
         2: .line 2761
            aload 13 /* issuerName */
            instanceof sun.security.x509.X500Name
            ifne 7
         3: .line 2767
            new sun.security.x509.X509CertInfo
            dup
            aload 4 /* certChain */
            iconst_0
            aaload
            invokevirtual java.security.cert.X509Certificate.getTBSCertificate:()[B
         4: .line 2766
            invokespecial sun.security.x509.X509CertInfo.<init>:([B)V
            astore 14 /* tbsCert */
        start local 14 // sun.security.x509.X509CertInfo tbsCert
         5: .line 2769
            aload 14 /* tbsCert */
            ldc "issuer.dname"
            invokevirtual sun.security.x509.X509CertInfo.get:(Ljava/lang/String;)Ljava/lang/Object;
         6: .line 2768
            checkcast java.security.Principal
            astore 13 /* issuerName */
        end local 14 // sun.security.x509.X509CertInfo tbsCert
         7: .line 2772
      StackMap locals: sun.security.tools.jarsigner.SignatureFile$Block sun.security.tools.jarsigner.SignatureFile java.security.PrivateKey java.lang.String java.security.cert.X509Certificate[] int java.lang.String java.security.cert.X509Certificate java.lang.String java.lang.String com.sun.jarsigner.ContentSigner java.lang.String[] java.util.zip.ZipFile java.security.Principal
      StackMap stack:
            aload 4 /* certChain */
            iconst_0
            aaload
            invokevirtual java.security.cert.X509Certificate.getSerialNumber:()Ljava/math/BigInteger;
            pop
         8: .line 2775
            aload 2 /* privateKey */
            invokeinterface java.security.PrivateKey.getAlgorithm:()Ljava/lang/String;
            astore 15 /* keyAlgorithm */
        start local 15 // java.lang.String keyAlgorithm
         9: .line 2780
            aload 3 /* sigalg */
            ifnonnull 20
        10: .line 2782
            aload 15 /* keyAlgorithm */
            ldc "DSA"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 13
        11: .line 2783
            ldc "SHA256withDSA"
            astore 14 /* signatureAlgorithm */
        start local 14 // java.lang.String signatureAlgorithm
        12: goto 21
        end local 14 // java.lang.String signatureAlgorithm
        13: .line 2784
      StackMap locals: sun.security.tools.jarsigner.SignatureFile$Block sun.security.tools.jarsigner.SignatureFile java.security.PrivateKey java.lang.String java.security.cert.X509Certificate[] int java.lang.String java.security.cert.X509Certificate java.lang.String java.lang.String com.sun.jarsigner.ContentSigner java.lang.String[] java.util.zip.ZipFile java.security.Principal top java.lang.String
      StackMap stack:
            aload 15 /* keyAlgorithm */
            ldc "RSA"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 16
        14: .line 2785
            ldc "SHA256withRSA"
            astore 14 /* signatureAlgorithm */
        start local 14 // java.lang.String signatureAlgorithm
        15: goto 21
        end local 14 // java.lang.String signatureAlgorithm
        16: .line 2786
      StackMap locals:
      StackMap stack:
            aload 15 /* keyAlgorithm */
            ldc "EC"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 19
        17: .line 2787
            ldc "SHA256withECDSA"
            astore 14 /* signatureAlgorithm */
        start local 14 // java.lang.String signatureAlgorithm
        18: goto 21
        end local 14 // java.lang.String signatureAlgorithm
        19: .line 2789
      StackMap locals:
      StackMap stack:
            new java.lang.RuntimeException
            dup
            ldc "private key is not a DSA or RSA key"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        20: .line 2792
      StackMap locals:
      StackMap stack:
            aload 3 /* sigalg */
            astore 14 /* signatureAlgorithm */
        start local 14 // java.lang.String signatureAlgorithm
        21: .line 2796
      StackMap locals: sun.security.tools.jarsigner.SignatureFile$Block sun.security.tools.jarsigner.SignatureFile java.security.PrivateKey java.lang.String java.security.cert.X509Certificate[] int java.lang.String java.security.cert.X509Certificate java.lang.String java.lang.String com.sun.jarsigner.ContentSigner java.lang.String[] java.util.zip.ZipFile java.security.Principal java.lang.String java.lang.String
      StackMap stack:
            aload 14 /* signatureAlgorithm */
            getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
            invokevirtual java.lang.String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;
            astore 16 /* sigAlgUpperCase */
        start local 16 // java.lang.String sigAlgUpperCase
        22: .line 2797
            aload 16 /* sigAlgUpperCase */
            ldc "WITHRSA"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 24
        23: .line 2798
            aload 15 /* keyAlgorithm */
            ldc "RSA"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 28
        24: .line 2799
      StackMap locals: java.lang.String
      StackMap stack:
            aload 16 /* sigAlgUpperCase */
            ldc "WITHECDSA"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 26
        25: .line 2800
            aload 15 /* keyAlgorithm */
            ldc "EC"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 28
        26: .line 2801
      StackMap locals:
      StackMap stack:
            aload 16 /* sigAlgUpperCase */
            ldc "WITHDSA"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 31
        27: .line 2802
            aload 15 /* keyAlgorithm */
            ldc "DSA"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 31
        28: .line 2803
      StackMap locals:
      StackMap stack:
            new java.security.SignatureException
            dup
        29: .line 2804
            ldc "private key algorithm is not compatible with signature algorithm"
        30: .line 2803
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
            athrow
        31: .line 2807
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "META-INF/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* sfg */
            invokevirtual sun.security.tools.jarsigner.SignatureFile.getBaseName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 15 /* keyAlgorithm */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putfield sun.security.tools.jarsigner.SignatureFile$Block.blockFileName:Ljava/lang/String;
        32: .line 2809
            aload 14 /* signatureAlgorithm */
            invokestatic sun.security.x509.AlgorithmId.get:(Ljava/lang/String;)Lsun/security/x509/AlgorithmId;
            pop
        33: .line 2810
            aload 15 /* keyAlgorithm */
            invokestatic sun.security.x509.AlgorithmId.get:(Ljava/lang/String;)Lsun/security/x509/AlgorithmId;
            pop
        34: .line 2812
            aload 14 /* signatureAlgorithm */
            invokestatic java.security.Signature.getInstance:(Ljava/lang/String;)Ljava/security/Signature;
            astore 17 /* sig */
        start local 17 // java.security.Signature sig
        35: .line 2813
            aload 17 /* sig */
            aload 2 /* privateKey */
            invokevirtual java.security.Signature.initSign:(Ljava/security/PrivateKey;)V
        36: .line 2815
            new java.io.ByteArrayOutputStream
            dup
            invokespecial java.io.ByteArrayOutputStream.<init>:()V
            astore 18 /* baos */
        start local 18 // java.io.ByteArrayOutputStream baos
        37: .line 2816
            aload 1 /* sfg */
            aload 18 /* baos */
            invokevirtual sun.security.tools.jarsigner.SignatureFile.write:(Ljava/io/OutputStream;)V
        38: .line 2818
            aload 18 /* baos */
            invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
            astore 19 /* content */
        start local 19 // byte[] content
        39: .line 2820
            aload 17 /* sig */
            aload 19 /* content */
            invokevirtual java.security.Signature.update:([B)V
        40: .line 2821
            aload 17 /* sig */
            invokevirtual java.security.Signature.sign:()[B
            astore 20 /* signature */
        start local 20 // byte[] signature
        41: .line 2824
            aload 10 /* signingMechanism */
            ifnonnull 43
        42: .line 2825
            new sun.security.tools.jarsigner.TimestampedSigner
            dup
            invokespecial sun.security.tools.jarsigner.TimestampedSigner.<init>:()V
            astore 10 /* signingMechanism */
        43: .line 2827
      StackMap locals: sun.security.tools.jarsigner.SignatureFile$Block sun.security.tools.jarsigner.SignatureFile java.security.PrivateKey java.lang.String java.security.cert.X509Certificate[] int java.lang.String java.security.cert.X509Certificate java.lang.String java.lang.String com.sun.jarsigner.ContentSigner java.lang.String[] java.util.zip.ZipFile java.security.Principal java.lang.String java.lang.String java.lang.String java.security.Signature java.io.ByteArrayOutputStream byte[] byte[]
      StackMap stack:
            aconst_null
            astore 21 /* tsaUri */
        start local 21 // java.net.URI tsaUri
        44: .line 2829
            aload 6 /* tsaUrl */
            ifnull 49
        45: .line 2830
            new java.net.URI
            dup
            aload 6 /* tsaUrl */
            invokespecial java.net.URI.<init>:(Ljava/lang/String;)V
            astore 21 /* tsaUri */
        46: .line 2832
            goto 49
      StackMap locals: sun.security.tools.jarsigner.SignatureFile$Block sun.security.tools.jarsigner.SignatureFile java.security.PrivateKey java.lang.String java.security.cert.X509Certificate[] int java.lang.String java.security.cert.X509Certificate java.lang.String java.lang.String com.sun.jarsigner.ContentSigner java.lang.String[] java.util.zip.ZipFile java.security.Principal java.lang.String java.lang.String java.lang.String java.security.Signature java.io.ByteArrayOutputStream byte[] byte[] java.net.URI
      StackMap stack: java.net.URISyntaxException
        47: astore 22 /* e */
        start local 22 // java.net.URISyntaxException e
        48: .line 2833
            new java.io.IOException
            dup
            aload 22 /* e */
            invokespecial java.io.IOException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 22 // java.net.URISyntaxException e
        49: .line 2838
      StackMap locals:
      StackMap stack:
            new sun.security.tools.jarsigner.JarSignerParameters
            dup
            aload 11 /* args */
            aload 21 /* tsaUri */
            aload 7 /* tsaCert */
            aload 8 /* tSAPolicyID */
        50: .line 2839
            aload 9 /* tSADigestAlg */
            aload 20 /* signature */
        51: .line 2840
            aload 14 /* signatureAlgorithm */
            aload 4 /* certChain */
            aload 19 /* content */
            aload 12 /* zipFile */
        52: .line 2838
            invokespecial sun.security.tools.jarsigner.JarSignerParameters.<init>:([Ljava/lang/String;Ljava/net/URI;Ljava/security/cert/X509Certificate;Ljava/lang/String;Ljava/lang/String;[BLjava/lang/String;[Ljava/security/cert/X509Certificate;[BLjava/util/zip/ZipFile;)V
        53: .line 2837
            astore 22 /* params */
        start local 22 // com.sun.jarsigner.ContentSignerParameters params
        54: .line 2843
            aload 0 /* this */
            aload 10 /* signingMechanism */
        55: .line 2844
            aload 22 /* params */
            iload 5 /* externalSF */
            aload 6 /* tsaUrl */
            ifnonnull 56
            aload 7 /* tsaCert */
            ifnonnull 56
            iconst_0
            goto 57
      StackMap locals: sun.security.tools.jarsigner.SignatureFile$Block sun.security.tools.jarsigner.SignatureFile java.security.PrivateKey java.lang.String java.security.cert.X509Certificate[] int java.lang.String java.security.cert.X509Certificate java.lang.String java.lang.String com.sun.jarsigner.ContentSigner java.lang.String[] java.util.zip.ZipFile java.security.Principal java.lang.String java.lang.String java.lang.String java.security.Signature java.io.ByteArrayOutputStream byte[] byte[] java.net.URI com.sun.jarsigner.ContentSignerParameters
      StackMap stack: sun.security.tools.jarsigner.SignatureFile$Block com.sun.jarsigner.ContentSigner com.sun.jarsigner.ContentSignerParameters int
        56: iconst_1
        57: .line 2843
      StackMap locals: sun.security.tools.jarsigner.SignatureFile$Block sun.security.tools.jarsigner.SignatureFile java.security.PrivateKey java.lang.String java.security.cert.X509Certificate[] int java.lang.String java.security.cert.X509Certificate java.lang.String java.lang.String com.sun.jarsigner.ContentSigner java.lang.String[] java.util.zip.ZipFile java.security.Principal java.lang.String java.lang.String java.lang.String java.security.Signature java.io.ByteArrayOutputStream byte[] byte[] java.net.URI com.sun.jarsigner.ContentSignerParameters
      StackMap stack: sun.security.tools.jarsigner.SignatureFile$Block com.sun.jarsigner.ContentSigner com.sun.jarsigner.ContentSignerParameters int int
            invokevirtual com.sun.jarsigner.ContentSigner.generateSignedData:(Lcom/sun/jarsigner/ContentSignerParameters;ZZ)[B
            putfield sun.security.tools.jarsigner.SignatureFile$Block.block:[B
        58: .line 2845
            return
        end local 22 // com.sun.jarsigner.ContentSignerParameters params
        end local 21 // java.net.URI tsaUri
        end local 20 // byte[] signature
        end local 19 // byte[] content
        end local 18 // java.io.ByteArrayOutputStream baos
        end local 17 // java.security.Signature sig
        end local 16 // java.lang.String sigAlgUpperCase
        end local 15 // java.lang.String keyAlgorithm
        end local 14 // java.lang.String signatureAlgorithm
        end local 13 // java.security.Principal issuerName
        end local 12 // java.util.zip.ZipFile zipFile
        end local 11 // java.lang.String[] args
        end local 10 // com.sun.jarsigner.ContentSigner signingMechanism
        end local 9 // java.lang.String tSADigestAlg
        end local 8 // java.lang.String tSAPolicyID
        end local 7 // java.security.cert.X509Certificate tsaCert
        end local 6 // java.lang.String tsaUrl
        end local 5 // boolean externalSF
        end local 4 // java.security.cert.X509Certificate[] certChain
        end local 3 // java.lang.String sigalg
        end local 2 // java.security.PrivateKey privateKey
        end local 1 // sun.security.tools.jarsigner.SignatureFile sfg
        end local 0 // sun.security.tools.jarsigner.SignatureFile$Block this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   59     0                this  Lsun/security/tools/jarsigner/SignatureFile$Block;
            0   59     1                 sfg  Lsun/security/tools/jarsigner/SignatureFile;
            0   59     2          privateKey  Ljava/security/PrivateKey;
            0   59     3              sigalg  Ljava/lang/String;
            0   59     4           certChain  [Ljava/security/cert/X509Certificate;
            0   59     5          externalSF  Z
            0   59     6              tsaUrl  Ljava/lang/String;
            0   59     7             tsaCert  Ljava/security/cert/X509Certificate;
            0   59     8         tSAPolicyID  Ljava/lang/String;
            0   59     9        tSADigestAlg  Ljava/lang/String;
            0   59    10    signingMechanism  Lcom/sun/jarsigner/ContentSigner;
            0   59    11                args  [Ljava/lang/String;
            0   59    12             zipFile  Ljava/util/zip/ZipFile;
            2   59    13          issuerName  Ljava/security/Principal;
            5    7    14             tbsCert  Lsun/security/x509/X509CertInfo;
           12   13    14  signatureAlgorithm  Ljava/lang/String;
           15   16    14  signatureAlgorithm  Ljava/lang/String;
           18   19    14  signatureAlgorithm  Ljava/lang/String;
           21   59    14  signatureAlgorithm  Ljava/lang/String;
            9   59    15        keyAlgorithm  Ljava/lang/String;
           22   59    16     sigAlgUpperCase  Ljava/lang/String;
           35   59    17                 sig  Ljava/security/Signature;
           37   59    18                baos  Ljava/io/ByteArrayOutputStream;
           39   59    19             content  [B
           41   59    20           signature  [B
           44   59    21              tsaUri  Ljava/net/URI;
           48   49    22                   e  Ljava/net/URISyntaxException;
           54   59    22              params  Lcom/sun/jarsigner/ContentSignerParameters;
      Exception table:
        from    to  target  type
          44    46      47  Class java.net.URISyntaxException
    Exceptions:
      throws java.security.NoSuchAlgorithmException, java.security.InvalidKeyException, java.io.IOException, java.security.SignatureException, java.security.cert.CertificateException
    MethodParameters:
                  Name  Flags
      sfg               
      privateKey        
      sigalg            
      certChain         
      externalSF        
      tsaUrl            
      tsaCert           
      tSAPolicyID       
      tSADigestAlg      
      signingMechanism  
      args              
      zipFile           

  public java.lang.String getMetaName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.tools.jarsigner.SignatureFile$Block this
         0: .line 2852
            aload 0 /* this */
            getfield sun.security.tools.jarsigner.SignatureFile$Block.blockFileName:Ljava/lang/String;
            areturn
        end local 0 // sun.security.tools.jarsigner.SignatureFile$Block this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/tools/jarsigner/SignatureFile$Block;

  public void write(java.io.OutputStream);
    descriptor: (Ljava/io/OutputStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.tools.jarsigner.SignatureFile$Block this
        start local 1 // java.io.OutputStream out
         0: .line 2864
            aload 1 /* out */
            aload 0 /* this */
            getfield sun.security.tools.jarsigner.SignatureFile$Block.block:[B
            invokevirtual java.io.OutputStream.write:([B)V
         1: .line 2865
            return
        end local 1 // java.io.OutputStream out
        end local 0 // sun.security.tools.jarsigner.SignatureFile$Block this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/security/tools/jarsigner/SignatureFile$Block;
            0    2     1   out  Ljava/io/OutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      out   
}
SourceFile: "Main.java"
NestHost: sun.security.tools.jarsigner.SignatureFile
InnerClasses:
  public Block = sun.security.tools.jarsigner.SignatureFile$Block of sun.security.tools.jarsigner.SignatureFile