public class sun.security.util.SignatureFileVerifier
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.security.util.SignatureFileVerifier
  super_class: java.lang.Object
{
  private static final sun.security.util.Debug debug;
    descriptor: Lsun/security/util/Debug;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private java.util.ArrayList<java.security.CodeSigner[]> signerCache;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/ArrayList<[Ljava/security/CodeSigner;>;

  private static final java.lang.String ATTR_DIGEST;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private sun.security.pkcs.PKCS7 block;
    descriptor: Lsun/security/pkcs/PKCS7;
    flags: (0x0002) ACC_PRIVATE

  private byte[] sfBytes;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

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

  private sun.security.util.ManifestDigester md;
    descriptor: Lsun/security/util/ManifestDigester;
    flags: (0x0002) ACC_PRIVATE

  private java.util.HashMap<java.lang.String, java.security.MessageDigest> createdDigests;
    descriptor: Ljava/util/HashMap;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/HashMap<Ljava/lang/String;Ljava/security/MessageDigest;>;

  private boolean workaround;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private java.security.cert.CertificateFactory certificateFactory;
    descriptor: Ljava/security/cert/CertificateFactory;
    flags: (0x0002) ACC_PRIVATE

  private java.util.Map<java.lang.String, java.lang.Boolean> permittedAlgs;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/Boolean;>;

  private java.security.Timestamp timestamp;
    descriptor: Ljava/security/Timestamp;
    flags: (0x0002) ACC_PRIVATE

  private static final char[] hexc;
    descriptor: [C
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 60
            ldc "jar"
            invokestatic sun.security.util.Debug.getInstance:(Ljava/lang/String;)Lsun/security/util/Debug;
            putstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
         1: .line 75
            new java.lang.StringBuilder
            dup
            ldc "-DIGEST-"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "Manifest-Main-Attributes"
            getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
            invokevirtual java.lang.String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         2: .line 74
            putstatic sun.security.util.SignatureFileVerifier.ATTR_DIGEST:Ljava/lang/String;
         3: .line 746
            bipush 16
            newarray 5
            dup
            iconst_0
            bipush 48
            castore
            dup
            iconst_1
            bipush 49
            castore
            dup
            iconst_2
            bipush 50
            castore
            dup
            iconst_3
            bipush 51
            castore
            dup
            iconst_4
            bipush 52
            castore
            dup
            iconst_5
            bipush 53
            castore
            dup
            bipush 6
            bipush 54
            castore
            dup
            bipush 7
            bipush 55
            castore
            dup
            bipush 8
            bipush 56
            castore
            dup
            bipush 9
            bipush 57
            castore
            dup
            bipush 10
            bipush 97
            castore
            dup
            bipush 11
            bipush 98
            castore
            dup
            bipush 12
            bipush 99
            castore
            dup
            bipush 13
            bipush 100
            castore
            dup
            bipush 14
            bipush 101
            castore
            dup
            bipush 15
            bipush 102
            castore
         4: .line 745
            putstatic sun.security.util.SignatureFileVerifier.hexc:[C
         5: .line 746
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.util.ArrayList<java.security.CodeSigner[]>, sun.security.util.ManifestDigester, java.lang.String, );
    descriptor: (Ljava/util/ArrayList;Lsun/security/util/ManifestDigester;Ljava/lang/String;[B)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=5
        start local 0 // sun.security.util.SignatureFileVerifier this
        start local 1 // java.util.ArrayList signerCache
        start local 2 // sun.security.util.ManifestDigester md
        start local 3 // java.lang.String name
        start local 4 // byte[] rawBytes
         0: .line 115
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 95
            aload 0 /* this */
            iconst_0
            putfield sun.security.util.SignatureFileVerifier.workaround:Z
         2: .line 98
            aload 0 /* this */
            aconst_null
            putfield sun.security.util.SignatureFileVerifier.certificateFactory:Ljava/security/cert/CertificateFactory;
         3: .line 101
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield sun.security.util.SignatureFileVerifier.permittedAlgs:Ljava/util/Map;
         4: .line 106
            aload 0 /* this */
            aconst_null
            putfield sun.security.util.SignatureFileVerifier.timestamp:Ljava/security/Timestamp;
         5: .line 123
            aconst_null
            astore 5 /* obj */
        start local 5 // java.lang.Object obj
         6: .line 125
            invokestatic sun.security.jca.Providers.startJarVerification:()Ljava/lang/Object;
            astore 5 /* obj */
         7: .line 126
            aload 0 /* this */
            new sun.security.pkcs.PKCS7
            dup
            aload 4 /* rawBytes */
            invokespecial sun.security.pkcs.PKCS7.<init>:([B)V
            putfield sun.security.util.SignatureFileVerifier.block:Lsun/security/pkcs/PKCS7;
         8: .line 127
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.block:Lsun/security/pkcs/PKCS7;
            invokevirtual sun.security.pkcs.PKCS7.getContentInfo:()Lsun/security/pkcs/ContentInfo;
            invokevirtual sun.security.pkcs.ContentInfo.getData:()[B
            putfield sun.security.util.SignatureFileVerifier.sfBytes:[B
         9: .line 128
            aload 0 /* this */
            ldc "X509"
            invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
            putfield sun.security.util.SignatureFileVerifier.certificateFactory:Ljava/security/cert/CertificateFactory;
        10: .line 129
            goto 14
      StackMap locals: sun.security.util.SignatureFileVerifier java.util.ArrayList sun.security.util.ManifestDigester java.lang.String byte[] java.lang.Object
      StackMap stack: java.lang.Throwable
        11: astore 6
        12: .line 130
            aload 5 /* obj */
            invokestatic sun.security.jca.Providers.stopJarVerification:(Ljava/lang/Object;)V
        13: .line 131
            aload 6
            athrow
        14: .line 130
      StackMap locals:
      StackMap stack:
            aload 5 /* obj */
            invokestatic sun.security.jca.Providers.stopJarVerification:(Ljava/lang/Object;)V
        15: .line 132
            aload 0 /* this */
            aload 3 /* name */
            iconst_0
            aload 3 /* name */
            bipush 46
            invokevirtual java.lang.String.lastIndexOf:(I)I
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
        16: .line 133
            getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
            invokevirtual java.lang.String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;
        17: .line 132
            putfield sun.security.util.SignatureFileVerifier.name:Ljava/lang/String;
        18: .line 134
            aload 0 /* this */
            aload 2 /* md */
            putfield sun.security.util.SignatureFileVerifier.md:Lsun/security/util/ManifestDigester;
        19: .line 135
            aload 0 /* this */
            aload 1 /* signerCache */
            putfield sun.security.util.SignatureFileVerifier.signerCache:Ljava/util/ArrayList;
        20: .line 136
            return
        end local 5 // java.lang.Object obj
        end local 4 // byte[] rawBytes
        end local 3 // java.lang.String name
        end local 2 // sun.security.util.ManifestDigester md
        end local 1 // java.util.ArrayList signerCache
        end local 0 // sun.security.util.SignatureFileVerifier this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   21     0         this  Lsun/security/util/SignatureFileVerifier;
            0   21     1  signerCache  Ljava/util/ArrayList<[Ljava/security/CodeSigner;>;
            0   21     2           md  Lsun/security/util/ManifestDigester;
            0   21     3         name  Ljava/lang/String;
            0   21     4     rawBytes  [B
            6   21     5          obj  Ljava/lang/Object;
      Exception table:
        from    to  target  type
           6    11      11  any
    Exceptions:
      throws java.io.IOException, java.security.cert.CertificateException
    Signature: (Ljava/util/ArrayList<[Ljava/security/CodeSigner;>;Lsun/security/util/ManifestDigester;Ljava/lang/String;[B)V
    MethodParameters:
             Name  Flags
      signerCache  
      md           
      name         
      rawBytes     

  public boolean needSignatureFileBytes();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.util.SignatureFileVerifier this
         0: .line 144
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.sfBytes:[B
            ifnonnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // sun.security.util.SignatureFileVerifier this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/security/util/SignatureFileVerifier;

  public boolean needSignatureFile(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.util.SignatureFileVerifier this
        start local 1 // java.lang.String name
         0: .line 156
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.name:Ljava/lang/String;
            aload 1 /* name */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ireturn
        end local 1 // java.lang.String name
        end local 0 // sun.security.util.SignatureFileVerifier this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/util/SignatureFileVerifier;
            0    1     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  public void setSignatureFile(byte[]);
    descriptor: ([B)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.util.SignatureFileVerifier this
        start local 1 // byte[] sfBytes
         0: .line 165
            aload 0 /* this */
            aload 1 /* sfBytes */
            putfield sun.security.util.SignatureFileVerifier.sfBytes:[B
         1: .line 166
            return
        end local 1 // byte[] sfBytes
        end local 0 // sun.security.util.SignatureFileVerifier this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lsun/security/util/SignatureFileVerifier;
            0    2     1  sfBytes  [B
    MethodParameters:
         Name  Flags
      sfBytes  

  public static boolean isBlockOrSF(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String s
         0: .line 180
            aload 0 /* s */
            ldc ".SF"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 5
         1: .line 181
            aload 0 /* s */
            ldc ".DSA"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 5
         2: .line 182
            aload 0 /* s */
            ldc ".RSA"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 5
         3: .line 183
            aload 0 /* s */
            ldc ".EC"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 5
         4: .line 180
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         5: iconst_1
            ireturn
        end local 0 // java.lang.String s
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0     s  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      s     

  public static boolean isSigningRelated(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // java.lang.String name
         0: .line 197
            aload 0 /* name */
            getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
            invokevirtual java.lang.String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;
            astore 0 /* name */
         1: .line 198
            aload 0 /* name */
            ldc "META-INF/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 3
         2: .line 199
            iconst_0
            ireturn
         3: .line 201
      StackMap locals:
      StackMap stack:
            aload 0 /* name */
            bipush 9
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 0 /* name */
         4: .line 202
            aload 0 /* name */
            bipush 47
            invokevirtual java.lang.String.indexOf:(I)I
            iconst_m1
            if_icmpeq 6
         5: .line 203
            iconst_0
            ireturn
         6: .line 205
      StackMap locals:
      StackMap stack:
            aload 0 /* name */
            invokestatic sun.security.util.SignatureFileVerifier.isBlockOrSF:(Ljava/lang/String;)Z
            ifne 7
            aload 0 /* name */
            ldc "MANIFEST.MF"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 8
         7: .line 206
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         8: .line 207
      StackMap locals:
      StackMap stack:
            aload 0 /* name */
            ldc "SIG-"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 23
         9: .line 211
            aload 0 /* name */
            bipush 46
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 1 /* extIndex */
        start local 1 // int extIndex
        10: .line 212
            iload 1 /* extIndex */
            iconst_m1
            if_icmpeq 22
        11: .line 213
            aload 0 /* name */
            iload 1 /* extIndex */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 2 /* ext */
        start local 2 // java.lang.String ext
        12: .line 215
            aload 2 /* ext */
            invokevirtual java.lang.String.length:()I
            iconst_3
            if_icmpgt 13
            aload 2 /* ext */
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmpge 14
        13: .line 216
      StackMap locals: int java.lang.String
      StackMap stack:
            iconst_0
            ireturn
        14: .line 219
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* index */
        start local 3 // int index
        15: goto 21
        16: .line 220
      StackMap locals: int
      StackMap stack:
            aload 2 /* ext */
            iload 3 /* index */
            invokevirtual java.lang.String.charAt:(I)C
            istore 4 /* cc */
        start local 4 // char cc
        17: .line 222
            iload 4 /* cc */
            bipush 65
            if_icmplt 18
            iload 4 /* cc */
            bipush 90
            if_icmple 20
      StackMap locals: int
      StackMap stack:
        18: iload 4 /* cc */
            bipush 48
            if_icmplt 19
            iload 4 /* cc */
            bipush 57
            if_icmple 20
        19: .line 223
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 4 // char cc
        20: .line 219
      StackMap locals:
      StackMap stack:
            iinc 3 /* index */ 1
      StackMap locals:
      StackMap stack:
        21: iload 3 /* index */
            aload 2 /* ext */
            invokevirtual java.lang.String.length:()I
            if_icmplt 16
        end local 3 // int index
        end local 2 // java.lang.String ext
        22: .line 227
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 1 // int extIndex
        23: .line 229
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   24     0      name  Ljava/lang/String;
           10   23     1  extIndex  I
           12   22     2       ext  Ljava/lang/String;
           15   22     3     index  I
           17   20     4        cc  C
    MethodParameters:
      Name  Flags
      name  

  private java.security.MessageDigest getDigest(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/security/MessageDigest;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // sun.security.util.SignatureFileVerifier this
        start local 1 // java.lang.String algorithm
         0: .line 236
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.createdDigests:Ljava/util/HashMap;
            ifnonnull 2
         1: .line 237
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield sun.security.util.SignatureFileVerifier.createdDigests:Ljava/util/HashMap;
         2: .line 239
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.createdDigests:Ljava/util/HashMap;
            aload 1 /* algorithm */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.security.MessageDigest
            astore 2 /* digest */
        start local 2 // java.security.MessageDigest digest
         3: .line 241
            aload 2 /* digest */
            ifnonnull 8
         4: .line 243
            aload 1 /* algorithm */
            invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
            astore 2 /* digest */
         5: .line 244
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.createdDigests:Ljava/util/HashMap;
            aload 1 /* algorithm */
            aload 2 /* digest */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 245
            goto 8
      StackMap locals: sun.security.util.SignatureFileVerifier java.lang.String java.security.MessageDigest
      StackMap stack: java.security.NoSuchAlgorithmException
         7: pop
         8: .line 249
      StackMap locals:
      StackMap stack:
            aload 2 /* digest */
            areturn
        end local 2 // java.security.MessageDigest digest
        end local 1 // java.lang.String algorithm
        end local 0 // sun.security.util.SignatureFileVerifier this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0       this  Lsun/security/util/SignatureFileVerifier;
            0    9     1  algorithm  Ljava/lang/String;
            3    9     2     digest  Ljava/security/MessageDigest;
      Exception table:
        from    to  target  type
           4     6       7  Class java.security.NoSuchAlgorithmException
    Exceptions:
      throws java.security.SignatureException
    MethodParameters:
           Name  Flags
      algorithm  

  public void process(java.util.Hashtable<java.lang.String, java.security.CodeSigner[]>, java.util.List<java.lang.Object>);
    descriptor: (Ljava/util/Hashtable;Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // sun.security.util.SignatureFileVerifier this
        start local 1 // java.util.Hashtable signers
        start local 2 // java.util.List manifestDigests
         0: .line 266
            aconst_null
            astore 3 /* obj */
        start local 3 // java.lang.Object obj
         1: .line 268
            invokestatic sun.security.jca.Providers.startJarVerification:()Ljava/lang/Object;
            astore 3 /* obj */
         2: .line 269
            aload 0 /* this */
            aload 1 /* signers */
            aload 2 /* manifestDigests */
            invokevirtual sun.security.util.SignatureFileVerifier.processImpl:(Ljava/util/Hashtable;Ljava/util/List;)V
         3: .line 270
            goto 7
      StackMap locals: sun.security.util.SignatureFileVerifier java.util.Hashtable java.util.List java.lang.Object
      StackMap stack: java.lang.Throwable
         4: astore 4
         5: .line 271
            aload 3 /* obj */
            invokestatic sun.security.jca.Providers.stopJarVerification:(Ljava/lang/Object;)V
         6: .line 272
            aload 4
            athrow
         7: .line 271
      StackMap locals:
      StackMap stack:
            aload 3 /* obj */
            invokestatic sun.security.jca.Providers.stopJarVerification:(Ljava/lang/Object;)V
         8: .line 274
            return
        end local 3 // java.lang.Object obj
        end local 2 // java.util.List manifestDigests
        end local 1 // java.util.Hashtable signers
        end local 0 // sun.security.util.SignatureFileVerifier this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    9     0             this  Lsun/security/util/SignatureFileVerifier;
            0    9     1          signers  Ljava/util/Hashtable<Ljava/lang/String;[Ljava/security/CodeSigner;>;
            0    9     2  manifestDigests  Ljava/util/List<Ljava/lang/Object;>;
            1    9     3              obj  Ljava/lang/Object;
      Exception table:
        from    to  target  type
           1     4       4  any
    Exceptions:
      throws java.io.IOException, java.security.SignatureException, java.security.NoSuchAlgorithmException, java.util.jar.JarException, java.security.cert.CertificateException
    Signature: (Ljava/util/Hashtable<Ljava/lang/String;[Ljava/security/CodeSigner;>;Ljava/util/List<Ljava/lang/Object;>;)V
    MethodParameters:
                 Name  Flags
      signers          
      manifestDigests  

  private void processImpl(java.util.Hashtable<java.lang.String, java.security.CodeSigner[]>, java.util.List<java.lang.Object>);
    descriptor: (Ljava/util/Hashtable;Ljava/util/List;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=11, args_size=3
        start local 0 // sun.security.util.SignatureFileVerifier this
        start local 1 // java.util.Hashtable signers
        start local 2 // java.util.List manifestDigests
         0: .line 281
            new java.util.jar.Manifest
            dup
            invokespecial java.util.jar.Manifest.<init>:()V
            astore 3 /* sf */
        start local 3 // java.util.jar.Manifest sf
         1: .line 282
            aload 3 /* sf */
            new java.io.ByteArrayInputStream
            dup
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.sfBytes:[B
            invokespecial java.io.ByteArrayInputStream.<init>:([B)V
            invokevirtual java.util.jar.Manifest.read:(Ljava/io/InputStream;)V
         2: .line 285
            aload 3 /* sf */
            invokevirtual java.util.jar.Manifest.getMainAttributes:()Ljava/util/jar/Attributes;
            getstatic java.util.jar.Attributes$Name.SIGNATURE_VERSION:Ljava/util/jar/Attributes$Name;
            invokevirtual java.util.jar.Attributes.getValue:(Ljava/util/jar/Attributes$Name;)Ljava/lang/String;
         3: .line 284
            astore 4 /* version */
        start local 4 // java.lang.String version
         4: .line 287
            aload 4 /* version */
            ifnull 5
            aload 4 /* version */
            ldc "1.0"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 6
         5: .line 290
      StackMap locals: java.util.jar.Manifest java.lang.String
      StackMap stack:
            return
         6: .line 293
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.block:Lsun/security/pkcs/PKCS7;
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.sfBytes:[B
            invokevirtual sun.security.pkcs.PKCS7.verify:([B)[Lsun/security/pkcs/SignerInfo;
            astore 5 /* infos */
        start local 5 // sun.security.pkcs.SignerInfo[] infos
         7: .line 295
            aload 5 /* infos */
            ifnonnull 11
         8: .line 296
            new java.lang.SecurityException
            dup
            new java.lang.StringBuilder
            dup
            ldc "cannot verify signature block file "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         9: .line 297
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.name:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        10: .line 296
            invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 301
      StackMap locals: sun.security.pkcs.SignerInfo[]
      StackMap stack:
            aload 0 /* this */
            aload 5 /* infos */
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.block:Lsun/security/pkcs/PKCS7;
            invokevirtual sun.security.util.SignatureFileVerifier.getSigners:([Lsun/security/pkcs/SignerInfo;Lsun/security/pkcs/PKCS7;)[Ljava/security/CodeSigner;
            astore 6 /* newSigners */
        start local 6 // java.security.CodeSigner[] newSigners
        12: .line 304
            aload 6 /* newSigners */
            ifnonnull 14
        13: .line 305
            return
        14: .line 311
      StackMap locals: java.security.CodeSigner[]
      StackMap stack:
            aload 6 /* newSigners */
            dup
            astore 10
            arraylength
            istore 9
            iconst_0
            istore 8
            goto 30
      StackMap locals: sun.security.util.SignatureFileVerifier java.util.Hashtable java.util.List java.util.jar.Manifest java.lang.String sun.security.pkcs.SignerInfo[] java.security.CodeSigner[] top int int java.security.CodeSigner[]
      StackMap stack:
        15: aload 10
            iload 8
            aaload
            astore 7 /* s */
        start local 7 // java.security.CodeSigner s
        16: .line 312
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            ifnull 18
        17: .line 313
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "Gathering timestamp for:  "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 7 /* s */
            invokevirtual java.security.CodeSigner.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        18: .line 315
      StackMap locals: sun.security.util.SignatureFileVerifier java.util.Hashtable java.util.List java.util.jar.Manifest java.lang.String sun.security.pkcs.SignerInfo[] java.security.CodeSigner[] java.security.CodeSigner int int java.security.CodeSigner[]
      StackMap stack:
            aload 7 /* s */
            invokevirtual java.security.CodeSigner.getTimestamp:()Ljava/security/Timestamp;
            ifnonnull 21
        19: .line 316
            aload 0 /* this */
            aconst_null
            putfield sun.security.util.SignatureFileVerifier.timestamp:Ljava/security/Timestamp;
        20: .line 317
            goto 31
        21: .line 318
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.timestamp:Ljava/security/Timestamp;
            ifnonnull 24
        22: .line 319
            aload 0 /* this */
            aload 7 /* s */
            invokevirtual java.security.CodeSigner.getTimestamp:()Ljava/security/Timestamp;
            putfield sun.security.util.SignatureFileVerifier.timestamp:Ljava/security/Timestamp;
        23: .line 320
            goto 29
        24: .line 321
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.timestamp:Ljava/security/Timestamp;
            invokevirtual java.security.Timestamp.getTimestamp:()Ljava/util/Date;
        25: .line 322
            aload 7 /* s */
            invokevirtual java.security.CodeSigner.getTimestamp:()Ljava/security/Timestamp;
            invokevirtual java.security.Timestamp.getTimestamp:()Ljava/util/Date;
        26: .line 321
            invokevirtual java.util.Date.before:(Ljava/util/Date;)Z
        27: .line 322
            ifeq 29
        28: .line 323
            aload 0 /* this */
            aload 7 /* s */
            invokevirtual java.security.CodeSigner.getTimestamp:()Ljava/security/Timestamp;
            putfield sun.security.util.SignatureFileVerifier.timestamp:Ljava/security/Timestamp;
        end local 7 // java.security.CodeSigner s
        29: .line 311
      StackMap locals: sun.security.util.SignatureFileVerifier java.util.Hashtable java.util.List java.util.jar.Manifest java.lang.String sun.security.pkcs.SignerInfo[] java.security.CodeSigner[] top int int java.security.CodeSigner[]
      StackMap stack:
            iinc 8 1
      StackMap locals:
      StackMap stack:
        30: iload 8
            iload 9
            if_icmplt 15
        31: .line 329
      StackMap locals: sun.security.util.SignatureFileVerifier java.util.Hashtable java.util.List java.util.jar.Manifest java.lang.String sun.security.pkcs.SignerInfo[] java.security.CodeSigner[]
      StackMap stack:
            aload 3 /* sf */
            invokevirtual java.util.jar.Manifest.getEntries:()Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
        32: .line 328
            astore 7 /* entries */
        start local 7 // java.util.Iterator entries
        33: .line 332
            aload 0 /* this */
            aload 3 /* sf */
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.md:Lsun/security/util/ManifestDigester;
            aload 2 /* manifestDigests */
            invokevirtual sun.security.util.SignatureFileVerifier.verifyManifestHash:(Ljava/util/jar/Manifest;Lsun/security/util/ManifestDigester;Ljava/util/List;)Z
            istore 8 /* manifestSigned */
        start local 8 // boolean manifestSigned
        34: .line 335
            iload 8 /* manifestSigned */
            ifne 52
            aload 0 /* this */
            aload 3 /* sf */
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.md:Lsun/security/util/ManifestDigester;
            invokevirtual sun.security.util.SignatureFileVerifier.verifyManifestMainAttrs:(Ljava/util/jar/Manifest;Lsun/security/util/ManifestDigester;)Z
            ifne 52
        35: .line 336
            new java.lang.SecurityException
            dup
        36: .line 337
            ldc "Invalid signature file digest for Manifest main attributes"
        37: .line 336
            invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
            athrow
        38: .line 343
      StackMap locals: java.util.Iterator int
      StackMap stack:
            aload 7 /* entries */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 9 /* e */
        start local 9 // java.util.Map$Entry e
        39: .line 344
            aload 9 /* e */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 10 /* name */
        start local 10 // java.lang.String name
        40: .line 346
            iload 8 /* manifestSigned */
            ifne 42
        41: .line 347
            aload 0 /* this */
            aload 9 /* e */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.jar.Attributes
            aload 10 /* name */
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.md:Lsun/security/util/ManifestDigester;
            invokevirtual sun.security.util.SignatureFileVerifier.verifySection:(Ljava/util/jar/Attributes;Ljava/lang/String;Lsun/security/util/ManifestDigester;)Z
            ifeq 50
        42: .line 349
      StackMap locals: java.util.Map$Entry java.lang.String
      StackMap stack:
            aload 10 /* name */
            ldc "./"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 44
        43: .line 350
            aload 10 /* name */
            iconst_2
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 10 /* name */
        44: .line 352
      StackMap locals:
      StackMap stack:
            aload 10 /* name */
            ldc "/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 46
        45: .line 353
            aload 10 /* name */
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 10 /* name */
        46: .line 355
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 6 /* newSigners */
            aload 1 /* signers */
            aload 10 /* name */
            invokevirtual sun.security.util.SignatureFileVerifier.updateSigners:([Ljava/security/CodeSigner;Ljava/util/Hashtable;Ljava/lang/String;)V
        47: .line 357
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            ifnull 52
        48: .line 358
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "processSignature signed name = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 10 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        49: .line 361
            goto 52
      StackMap locals:
      StackMap stack:
        50: getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            ifnull 52
        51: .line 362
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "processSignature unsigned name = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 10 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        end local 10 // java.lang.String name
        end local 9 // java.util.Map$Entry e
        52: .line 341
      StackMap locals:
      StackMap stack:
            aload 7 /* entries */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 38
        53: .line 367
            aload 0 /* this */
            aload 6 /* newSigners */
            aload 1 /* signers */
            ldc "META-INF/MANIFEST.MF"
            invokevirtual sun.security.util.SignatureFileVerifier.updateSigners:([Ljava/security/CodeSigner;Ljava/util/Hashtable;Ljava/lang/String;)V
        54: .line 368
            return
        end local 8 // boolean manifestSigned
        end local 7 // java.util.Iterator entries
        end local 6 // java.security.CodeSigner[] newSigners
        end local 5 // sun.security.pkcs.SignerInfo[] infos
        end local 4 // java.lang.String version
        end local 3 // java.util.jar.Manifest sf
        end local 2 // java.util.List manifestDigests
        end local 1 // java.util.Hashtable signers
        end local 0 // sun.security.util.SignatureFileVerifier this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   55     0             this  Lsun/security/util/SignatureFileVerifier;
            0   55     1          signers  Ljava/util/Hashtable<Ljava/lang/String;[Ljava/security/CodeSigner;>;
            0   55     2  manifestDigests  Ljava/util/List<Ljava/lang/Object;>;
            1   55     3               sf  Ljava/util/jar/Manifest;
            4   55     4          version  Ljava/lang/String;
            7   55     5            infos  [Lsun/security/pkcs/SignerInfo;
           12   55     6       newSigners  [Ljava/security/CodeSigner;
           16   29     7                s  Ljava/security/CodeSigner;
           33   55     7          entries  Ljava/util/Iterator<Ljava/util/Map$Entry<Ljava/lang/String;Ljava/util/jar/Attributes;>;>;
           34   55     8   manifestSigned  Z
           39   52     9                e  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/util/jar/Attributes;>;
           40   52    10             name  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException, java.security.SignatureException, java.security.NoSuchAlgorithmException, java.util.jar.JarException, java.security.cert.CertificateException
    Signature: (Ljava/util/Hashtable<Ljava/lang/String;[Ljava/security/CodeSigner;>;Ljava/util/List<Ljava/lang/Object;>;)V
    MethodParameters:
                 Name  Flags
      signers          
      manifestDigests  

  boolean permittedCheck(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Z
    flags: (0x0000) 
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // sun.security.util.SignatureFileVerifier this
        start local 1 // java.lang.String key
        start local 2 // java.lang.String algorithm
         0: .line 377
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.permittedAlgs:Ljava/util/Map;
            aload 2 /* algorithm */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            astore 3 /* permitted */
        start local 3 // java.lang.Boolean permitted
         1: .line 378
            aload 3 /* permitted */
            ifnonnull 21
         2: .line 380
            getstatic sun.security.util.SignatureFileVerifier$ConfigurationHolder.JAR_DISABLED_CHECK:Lsun/security/util/DisabledAlgorithmConstraints;
            aload 2 /* algorithm */
         3: .line 381
            new sun.security.util.ConstraintsParameters
            dup
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.timestamp:Ljava/security/Timestamp;
            invokespecial sun.security.util.ConstraintsParameters.<init>:(Ljava/security/Timestamp;)V
         4: .line 380
            invokevirtual sun.security.util.DisabledAlgorithmConstraints.permits:(Ljava/lang/String;Lsun/security/util/ConstraintsParameters;)V
         5: .line 382
            goto 19
      StackMap locals: sun.security.util.SignatureFileVerifier java.lang.String java.lang.String java.lang.Boolean
      StackMap stack: java.security.GeneralSecurityException
         6: astore 4 /* e */
        start local 4 // java.security.GeneralSecurityException e
         7: .line 383
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.permittedAlgs:Ljava/util/Map;
            aload 2 /* algorithm */
            getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 384
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.permittedAlgs:Ljava/util/Map;
            aload 1 /* key */
            invokevirtual java.lang.String.toUpperCase:()Ljava/lang/String;
            getstatic java.lang.Boolean.FALSE:Ljava/lang/Boolean;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 385
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            ifnull 18
        10: .line 386
            aload 4 /* e */
            invokevirtual java.security.GeneralSecurityException.getMessage:()Ljava/lang/String;
            ifnull 13
        11: .line 387
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            aload 1 /* key */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ":  "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* e */
            invokevirtual java.security.GeneralSecurityException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        12: .line 388
            goto 18
        13: .line 389
      StackMap locals: java.security.GeneralSecurityException
      StackMap stack:
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "Debug info only. "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* key */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ":  "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        14: .line 390
            aload 2 /* algorithm */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        15: .line 391
            ldc " was disabled, no exception msg given."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        16: .line 389
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        17: .line 392
            aload 4 /* e */
            invokevirtual java.security.GeneralSecurityException.printStackTrace:()V
        18: .line 395
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 4 // java.security.GeneralSecurityException e
        19: .line 398
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.permittedAlgs:Ljava/util/Map;
            aload 2 /* algorithm */
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        20: .line 399
            iconst_1
            ireturn
        21: .line 403
      StackMap locals:
      StackMap stack:
            aload 3 /* permitted */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
        end local 3 // java.lang.Boolean permitted
        end local 2 // java.lang.String algorithm
        end local 1 // java.lang.String key
        end local 0 // sun.security.util.SignatureFileVerifier this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   22     0       this  Lsun/security/util/SignatureFileVerifier;
            0   22     1        key  Ljava/lang/String;
            0   22     2  algorithm  Ljava/lang/String;
            1   22     3  permitted  Ljava/lang/Boolean;
            7   19     4          e  Ljava/security/GeneralSecurityException;
      Exception table:
        from    to  target  type
           2     5       6  Class java.security.GeneralSecurityException
    MethodParameters:
           Name  Flags
      key        
      algorithm  

  java.lang.String getWeakAlgorithms(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // sun.security.util.SignatureFileVerifier this
        start local 1 // java.lang.String header
         0: .line 412
            ldc ""
            astore 2 /* w */
        start local 2 // java.lang.String w
         1: .line 414
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.permittedAlgs:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 5
      StackMap locals: sun.security.util.SignatureFileVerifier java.lang.String java.lang.String top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* key */
        start local 3 // java.lang.String key
         3: .line 415
            aload 3 /* key */
            aload 1 /* header */
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 5
         4: .line 416
            new java.lang.StringBuilder
            dup
            aload 2 /* w */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* key */
            iconst_0
            aload 3 /* key */
            invokevirtual java.lang.String.length:()I
            aload 1 /* header */
            invokevirtual java.lang.String.length:()I
            isub
            invokevirtual java.lang.String.substring:(II)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;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* w */
        end local 3 // java.lang.String key
         5: .line 414
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 419
            goto 11
      StackMap locals: sun.security.util.SignatureFileVerifier java.lang.String java.lang.String
      StackMap stack: java.lang.RuntimeException
         7: astore 3 /* e */
        start local 3 // java.lang.RuntimeException e
         8: .line 420
            new java.lang.StringBuilder
            dup
            ldc "Unknown Algorithm(s).  Error processing "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* header */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ".  "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         9: .line 421
            aload 3 /* e */
            invokevirtual java.lang.RuntimeException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        10: .line 420
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* w */
        end local 3 // java.lang.RuntimeException e
        11: .line 426
      StackMap locals:
      StackMap stack:
            aload 2 /* w */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 13
        12: .line 427
            ldc "Unknown Algorithm(s)"
            areturn
        13: .line 430
      StackMap locals:
      StackMap stack:
            aload 2 /* w */
            areturn
        end local 2 // java.lang.String w
        end local 1 // java.lang.String header
        end local 0 // sun.security.util.SignatureFileVerifier this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   14     0    this  Lsun/security/util/SignatureFileVerifier;
            0   14     1  header  Ljava/lang/String;
            1   14     2       w  Ljava/lang/String;
            3    5     3     key  Ljava/lang/String;
            8   11     3       e  Ljava/lang/RuntimeException;
      Exception table:
        from    to  target  type
           1     6       7  Class java.lang.RuntimeException
    MethodParameters:
        Name  Flags
      header  

  private boolean verifyManifestHash(java.util.jar.Manifest, sun.security.util.ManifestDigester, java.util.List<java.lang.Object>);
    descriptor: (Ljava/util/jar/Manifest;Lsun/security/util/ManifestDigester;Ljava/util/List;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=15, args_size=4
        start local 0 // sun.security.util.SignatureFileVerifier this
        start local 1 // java.util.jar.Manifest sf
        start local 2 // sun.security.util.ManifestDigester md
        start local 3 // java.util.List manifestDigests
         0: .line 441
            aload 1 /* sf */
            invokevirtual java.util.jar.Manifest.getMainAttributes:()Ljava/util/jar/Attributes;
            astore 4 /* mattr */
        start local 4 // java.util.jar.Attributes mattr
         1: .line 442
            iconst_0
            istore 5 /* manifestSigned */
        start local 5 // boolean manifestSigned
         2: .line 444
            iconst_1
            istore 6 /* weakAlgs */
        start local 6 // boolean weakAlgs
         3: .line 446
            iconst_0
            istore 7 /* validEntry */
        start local 7 // boolean validEntry
         4: .line 449
            aload 4 /* mattr */
            invokevirtual java.util.jar.Attributes.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 9
            goto 29
      StackMap locals: sun.security.util.SignatureFileVerifier java.util.jar.Manifest sun.security.util.ManifestDigester java.util.List java.util.jar.Attributes int int int top java.util.Iterator
      StackMap stack:
         5: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 8 /* se */
        start local 8 // java.util.Map$Entry se
         6: .line 451
            aload 8 /* se */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            astore 10 /* key */
        start local 10 // java.lang.String key
         7: .line 453
            aload 10 /* key */
            getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
            invokevirtual java.lang.String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;
            ldc "-DIGEST-MANIFEST"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 29
         8: .line 455
            aload 10 /* key */
            iconst_0
            aload 10 /* key */
            invokevirtual java.lang.String.length:()I
            bipush 16
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 11 /* algorithm */
        start local 11 // java.lang.String algorithm
         9: .line 456
            iconst_1
            istore 7 /* validEntry */
        10: .line 459
            aload 0 /* this */
            aload 10 /* key */
            aload 11 /* algorithm */
            invokevirtual sun.security.util.SignatureFileVerifier.permittedCheck:(Ljava/lang/String;Ljava/lang/String;)Z
            ifne 12
        11: .line 460
            goto 29
        12: .line 465
      StackMap locals: sun.security.util.SignatureFileVerifier java.util.jar.Manifest sun.security.util.ManifestDigester java.util.List java.util.jar.Attributes int int int java.util.Map$Entry java.util.Iterator java.lang.String java.lang.String
      StackMap stack:
            iconst_0
            istore 6 /* weakAlgs */
        13: .line 467
            aload 3 /* manifestDigests */
            aload 10 /* key */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        14: .line 468
            aload 3 /* manifestDigests */
            aload 8 /* se */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        15: .line 469
            aload 0 /* this */
            aload 11 /* algorithm */
            invokevirtual sun.security.util.SignatureFileVerifier.getDigest:(Ljava/lang/String;)Ljava/security/MessageDigest;
            astore 12 /* digest */
        start local 12 // java.security.MessageDigest digest
        16: .line 470
            aload 12 /* digest */
            ifnull 29
        17: .line 471
            aload 2 /* md */
            aload 12 /* digest */
            invokevirtual sun.security.util.ManifestDigester.manifestDigest:(Ljava/security/MessageDigest;)[B
            astore 13 /* computedHash */
        start local 13 // byte[] computedHash
        18: .line 473
            invokestatic java.util.Base64.getMimeDecoder:()Ljava/util/Base64$Decoder;
            aload 8 /* se */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.util.Base64$Decoder.decode:(Ljava/lang/String;)[B
        19: .line 472
            astore 14 /* expectedHash */
        start local 14 // byte[] expectedHash
        20: .line 475
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            ifnull 27
        21: .line 476
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "Signature File: Manifest digest "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        22: .line 477
            aload 11 /* algorithm */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        23: .line 476
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        24: .line 478
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "  sigfile  "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 14 /* expectedHash */
            invokestatic sun.security.util.SignatureFileVerifier.toHex:([B)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        25: .line 479
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "  computed "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 13 /* computedHash */
            invokestatic sun.security.util.SignatureFileVerifier.toHex:([B)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        26: .line 480
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            invokevirtual sun.security.util.Debug.println:()V
        27: .line 483
      StackMap locals: java.security.MessageDigest byte[] byte[]
      StackMap stack:
            aload 13 /* computedHash */
            aload 14 /* expectedHash */
            invokestatic java.security.MessageDigest.isEqual:([B[B)Z
            ifeq 29
        28: .line 484
            iconst_1
            istore 5 /* manifestSigned */
        end local 14 // byte[] expectedHash
        end local 13 // byte[] computedHash
        end local 12 // java.security.MessageDigest digest
        end local 11 // java.lang.String algorithm
        end local 10 // java.lang.String key
        end local 8 // java.util.Map$Entry se
        29: .line 449
      StackMap locals: sun.security.util.SignatureFileVerifier java.util.jar.Manifest sun.security.util.ManifestDigester java.util.List java.util.jar.Attributes int int int top java.util.Iterator
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        30: .line 492
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            ifnull 38
        31: .line 493
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            ldc "PermittedAlgs mapping: "
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        32: .line 494
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.permittedAlgs:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 9
            goto 37
      StackMap locals:
      StackMap stack:
        33: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 8 /* key */
        start local 8 // java.lang.String key
        34: .line 495
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            aload 8 /* key */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " : "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        35: .line 496
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.permittedAlgs:Ljava/util/Map;
            aload 8 /* key */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        36: .line 495
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        end local 8 // java.lang.String key
        37: .line 494
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 33
        38: .line 501
      StackMap locals: sun.security.util.SignatureFileVerifier java.util.jar.Manifest sun.security.util.ManifestDigester java.util.List java.util.jar.Attributes int int int
      StackMap stack:
            iload 7 /* validEntry */
            ifeq 42
            iload 6 /* weakAlgs */
            ifeq 42
        39: .line 502
            new java.security.SignatureException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Manifest hash check failed (DIGEST-MANIFEST). Disabled algorithm(s) used: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        40: .line 504
            aload 0 /* this */
            ldc "-DIGEST-MANIFEST"
            invokevirtual sun.security.util.SignatureFileVerifier.getWeakAlgorithms:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        41: .line 502
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
            athrow
        42: .line 506
      StackMap locals:
      StackMap stack:
            iload 5 /* manifestSigned */
            ireturn
        end local 7 // boolean validEntry
        end local 6 // boolean weakAlgs
        end local 5 // boolean manifestSigned
        end local 4 // java.util.jar.Attributes mattr
        end local 3 // java.util.List manifestDigests
        end local 2 // sun.security.util.ManifestDigester md
        end local 1 // java.util.jar.Manifest sf
        end local 0 // sun.security.util.SignatureFileVerifier this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   43     0             this  Lsun/security/util/SignatureFileVerifier;
            0   43     1               sf  Ljava/util/jar/Manifest;
            0   43     2               md  Lsun/security/util/ManifestDigester;
            0   43     3  manifestDigests  Ljava/util/List<Ljava/lang/Object;>;
            1   43     4            mattr  Ljava/util/jar/Attributes;
            2   43     5   manifestSigned  Z
            3   43     6         weakAlgs  Z
            4   43     7       validEntry  Z
            6   29     8               se  Ljava/util/Map$Entry<Ljava/lang/Object;Ljava/lang/Object;>;
            7   29    10              key  Ljava/lang/String;
            9   29    11        algorithm  Ljava/lang/String;
           16   29    12           digest  Ljava/security/MessageDigest;
           18   29    13     computedHash  [B
           20   29    14     expectedHash  [B
           34   37     8              key  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException, java.security.SignatureException
    Signature: (Ljava/util/jar/Manifest;Lsun/security/util/ManifestDigester;Ljava/util/List<Ljava/lang/Object;>;)Z
    MethodParameters:
                 Name  Flags
      sf               
      md               
      manifestDigests  

  private boolean verifyManifestMainAttrs(java.util.jar.Manifest, sun.security.util.ManifestDigester);
    descriptor: (Ljava/util/jar/Manifest;Lsun/security/util/ManifestDigester;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=15, args_size=3
        start local 0 // sun.security.util.SignatureFileVerifier this
        start local 1 // java.util.jar.Manifest sf
        start local 2 // sun.security.util.ManifestDigester md
         0: .line 512
            aload 1 /* sf */
            invokevirtual java.util.jar.Manifest.getMainAttributes:()Ljava/util/jar/Attributes;
            astore 3 /* mattr */
        start local 3 // java.util.jar.Attributes mattr
         1: .line 513
            iconst_1
            istore 4 /* attrsVerified */
        start local 4 // boolean attrsVerified
         2: .line 515
            iconst_1
            istore 5 /* weakAlgs */
        start local 5 // boolean weakAlgs
         3: .line 517
            iconst_0
            istore 6 /* validEntry */
        start local 6 // boolean validEntry
         4: .line 521
            aload 3 /* mattr */
            invokevirtual java.util.jar.Attributes.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 8
            goto 33
      StackMap locals: sun.security.util.SignatureFileVerifier java.util.jar.Manifest sun.security.util.ManifestDigester java.util.jar.Attributes int int int top java.util.Iterator
      StackMap stack:
         5: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 7 /* se */
        start local 7 // java.util.Map$Entry se
         6: .line 522
            aload 7 /* se */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            astore 9 /* key */
        start local 9 // java.lang.String key
         7: .line 524
            aload 9 /* key */
            getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
            invokevirtual java.lang.String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;
            getstatic sun.security.util.SignatureFileVerifier.ATTR_DIGEST:Ljava/lang/String;
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 33
         8: .line 526
            aload 9 /* key */
            iconst_0
            aload 9 /* key */
            invokevirtual java.lang.String.length:()I
            getstatic sun.security.util.SignatureFileVerifier.ATTR_DIGEST:Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
         9: .line 525
            astore 10 /* algorithm */
        start local 10 // java.lang.String algorithm
        10: .line 527
            iconst_1
            istore 6 /* validEntry */
        11: .line 530
            aload 0 /* this */
            aload 9 /* key */
            aload 10 /* algorithm */
            invokevirtual sun.security.util.SignatureFileVerifier.permittedCheck:(Ljava/lang/String;Ljava/lang/String;)Z
            ifne 13
        12: .line 531
            goto 33
        13: .line 536
      StackMap locals: sun.security.util.SignatureFileVerifier java.util.jar.Manifest sun.security.util.ManifestDigester java.util.jar.Attributes int int int java.util.Map$Entry java.util.Iterator java.lang.String java.lang.String
      StackMap stack:
            iconst_0
            istore 5 /* weakAlgs */
        14: .line 538
            aload 0 /* this */
            aload 10 /* algorithm */
            invokevirtual sun.security.util.SignatureFileVerifier.getDigest:(Ljava/lang/String;)Ljava/security/MessageDigest;
            astore 11 /* digest */
        start local 11 // java.security.MessageDigest digest
        15: .line 539
            aload 11 /* digest */
            ifnull 33
        16: .line 540
            aload 2 /* md */
            iconst_0
            invokevirtual sun.security.util.ManifestDigester.getMainAttsEntry:(Z)Lsun/security/util/ManifestDigester$Entry;
            astore 12 /* mde */
        start local 12 // sun.security.util.ManifestDigester$Entry mde
        17: .line 541
            aload 12 /* mde */
            aload 11 /* digest */
            invokevirtual sun.security.util.ManifestDigester$Entry.digest:(Ljava/security/MessageDigest;)[B
            astore 13 /* computedHash */
        start local 13 // byte[] computedHash
        18: .line 543
            invokestatic java.util.Base64.getMimeDecoder:()Ljava/util/Base64$Decoder;
            aload 7 /* se */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.util.Base64$Decoder.decode:(Ljava/lang/String;)[B
        19: .line 542
            astore 14 /* expectedHash */
        start local 14 // byte[] expectedHash
        20: .line 545
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            ifnull 27
        21: .line 546
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "Signature File: Manifest Main Attributes digest "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        22: .line 548
            aload 11 /* digest */
            invokevirtual java.security.MessageDigest.getAlgorithm:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        23: .line 546
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        24: .line 549
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "  sigfile  "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 14 /* expectedHash */
            invokestatic sun.security.util.SignatureFileVerifier.toHex:([B)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        25: .line 550
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "  computed "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 13 /* computedHash */
            invokestatic sun.security.util.SignatureFileVerifier.toHex:([B)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        26: .line 551
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            invokevirtual sun.security.util.Debug.println:()V
        27: .line 554
      StackMap locals: sun.security.util.SignatureFileVerifier java.util.jar.Manifest sun.security.util.ManifestDigester java.util.jar.Attributes int int int java.util.Map$Entry java.util.Iterator java.lang.String java.lang.String java.security.MessageDigest sun.security.util.ManifestDigester$Entry byte[] byte[]
      StackMap stack:
            aload 13 /* computedHash */
            aload 14 /* expectedHash */
            invokestatic java.security.MessageDigest.isEqual:([B[B)Z
            ifne 33
        28: .line 558
            iconst_0
            istore 4 /* attrsVerified */
        29: .line 559
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            ifnull 34
        30: .line 560
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            ldc "Verification of Manifest main attributes failed"
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        31: .line 562
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            invokevirtual sun.security.util.Debug.println:()V
        32: .line 564
            goto 34
        end local 14 // byte[] expectedHash
        end local 13 // byte[] computedHash
        end local 12 // sun.security.util.ManifestDigester$Entry mde
        end local 11 // java.security.MessageDigest digest
        end local 10 // java.lang.String algorithm
        end local 9 // java.lang.String key
        end local 7 // java.util.Map$Entry se
        33: .line 521
      StackMap locals: sun.security.util.SignatureFileVerifier java.util.jar.Manifest sun.security.util.ManifestDigester java.util.jar.Attributes int int int top java.util.Iterator
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        34: .line 570
      StackMap locals: sun.security.util.SignatureFileVerifier java.util.jar.Manifest sun.security.util.ManifestDigester java.util.jar.Attributes int int int
      StackMap stack:
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            ifnull 42
        35: .line 571
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            ldc "PermittedAlgs mapping: "
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        36: .line 572
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.permittedAlgs:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 8
            goto 41
      StackMap locals: sun.security.util.SignatureFileVerifier java.util.jar.Manifest sun.security.util.ManifestDigester java.util.jar.Attributes int int int top java.util.Iterator
      StackMap stack:
        37: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 7 /* key */
        start local 7 // java.lang.String key
        38: .line 573
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            aload 7 /* key */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " : "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        39: .line 574
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.permittedAlgs:Ljava/util/Map;
            aload 7 /* key */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        40: .line 573
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        end local 7 // java.lang.String key
        41: .line 572
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 37
        42: .line 579
      StackMap locals: sun.security.util.SignatureFileVerifier java.util.jar.Manifest sun.security.util.ManifestDigester java.util.jar.Attributes int int int
      StackMap stack:
            iload 6 /* validEntry */
            ifeq 48
            iload 5 /* weakAlgs */
            ifeq 48
        43: .line 580
            new java.security.SignatureException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Manifest Main Attribute check failed ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        44: .line 581
            getstatic sun.security.util.SignatureFileVerifier.ATTR_DIGEST: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;
        45: .line 582
            ldc "Disabled algorithm(s) used: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        46: .line 583
            aload 0 /* this */
            getstatic sun.security.util.SignatureFileVerifier.ATTR_DIGEST:Ljava/lang/String;
            invokevirtual sun.security.util.SignatureFileVerifier.getWeakAlgorithms:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        47: .line 580
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
            athrow
        48: .line 589
      StackMap locals:
      StackMap stack:
            iload 4 /* attrsVerified */
            ireturn
        end local 6 // boolean validEntry
        end local 5 // boolean weakAlgs
        end local 4 // boolean attrsVerified
        end local 3 // java.util.jar.Attributes mattr
        end local 2 // sun.security.util.ManifestDigester md
        end local 1 // java.util.jar.Manifest sf
        end local 0 // sun.security.util.SignatureFileVerifier this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   49     0           this  Lsun/security/util/SignatureFileVerifier;
            0   49     1             sf  Ljava/util/jar/Manifest;
            0   49     2             md  Lsun/security/util/ManifestDigester;
            1   49     3          mattr  Ljava/util/jar/Attributes;
            2   49     4  attrsVerified  Z
            3   49     5       weakAlgs  Z
            4   49     6     validEntry  Z
            6   33     7             se  Ljava/util/Map$Entry<Ljava/lang/Object;Ljava/lang/Object;>;
            7   33     9            key  Ljava/lang/String;
           10   33    10      algorithm  Ljava/lang/String;
           15   33    11         digest  Ljava/security/MessageDigest;
           17   33    12            mde  Lsun/security/util/ManifestDigester$Entry;
           18   33    13   computedHash  [B
           20   33    14   expectedHash  [B
           38   41     7            key  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException, java.security.SignatureException
    MethodParameters:
      Name  Flags
      sf    
      md    

  private boolean verifySection(java.util.jar.Attributes, java.lang.String, sun.security.util.ManifestDigester);
    descriptor: (Ljava/util/jar/Attributes;Ljava/lang/String;Lsun/security/util/ManifestDigester;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=16, args_size=4
        start local 0 // sun.security.util.SignatureFileVerifier this
        start local 1 // java.util.jar.Attributes sfAttr
        start local 2 // java.lang.String name
        start local 3 // sun.security.util.ManifestDigester md
         0: .line 606
            iconst_0
            istore 4 /* oneDigestVerified */
        start local 4 // boolean oneDigestVerified
         1: .line 607
            aload 3 /* md */
            aload 2 /* name */
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.block:Lsun/security/pkcs/PKCS7;
            invokevirtual sun.security.pkcs.PKCS7.isOldStyle:()Z
            invokevirtual sun.security.util.ManifestDigester.get:(Ljava/lang/String;Z)Lsun/security/util/ManifestDigester$Entry;
            astore 5 /* mde */
        start local 5 // sun.security.util.ManifestDigester$Entry mde
         2: .line 609
            iconst_1
            istore 6 /* weakAlgs */
        start local 6 // boolean weakAlgs
         3: .line 611
            iconst_0
            istore 7 /* validEntry */
        start local 7 // boolean validEntry
         4: .line 613
            aload 5 /* mde */
            ifnonnull 8
         5: .line 614
            new java.lang.SecurityException
            dup
         6: .line 615
            new java.lang.StringBuilder
            dup
            ldc "no manifest section for signature file entry "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 614
            invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 618
      StackMap locals: sun.security.util.SignatureFileVerifier java.util.jar.Attributes java.lang.String sun.security.util.ManifestDigester int sun.security.util.ManifestDigester$Entry int int
      StackMap stack:
            aload 1 /* sfAttr */
            ifnull 53
         9: .line 623
            aload 1 /* sfAttr */
            invokevirtual java.util.jar.Attributes.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 9
            goto 52
      StackMap locals: sun.security.util.SignatureFileVerifier java.util.jar.Attributes java.lang.String sun.security.util.ManifestDigester int sun.security.util.ManifestDigester$Entry int int top java.util.Iterator
      StackMap stack:
        10: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 8 /* se */
        start local 8 // java.util.Map$Entry se
        11: .line 624
            aload 8 /* se */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            astore 10 /* key */
        start local 10 // java.lang.String key
        12: .line 626
            aload 10 /* key */
            getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
            invokevirtual java.lang.String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;
            ldc "-DIGEST"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 52
        13: .line 628
            aload 10 /* key */
            iconst_0
            aload 10 /* key */
            invokevirtual java.lang.String.length:()I
            bipush 7
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 11 /* algorithm */
        start local 11 // java.lang.String algorithm
        14: .line 629
            iconst_1
            istore 7 /* validEntry */
        15: .line 632
            aload 0 /* this */
            aload 10 /* key */
            aload 11 /* algorithm */
            invokevirtual sun.security.util.SignatureFileVerifier.permittedCheck:(Ljava/lang/String;Ljava/lang/String;)Z
            ifne 17
        16: .line 633
            goto 52
        17: .line 638
      StackMap locals: sun.security.util.SignatureFileVerifier java.util.jar.Attributes java.lang.String sun.security.util.ManifestDigester int sun.security.util.ManifestDigester$Entry int int java.util.Map$Entry java.util.Iterator java.lang.String java.lang.String
      StackMap stack:
            iconst_0
            istore 6 /* weakAlgs */
        18: .line 640
            aload 0 /* this */
            aload 11 /* algorithm */
            invokevirtual sun.security.util.SignatureFileVerifier.getDigest:(Ljava/lang/String;)Ljava/security/MessageDigest;
            astore 12 /* digest */
        start local 12 // java.security.MessageDigest digest
        19: .line 642
            aload 12 /* digest */
            ifnull 52
        20: .line 643
            iconst_0
            istore 13 /* ok */
        start local 13 // boolean ok
        21: .line 646
            invokestatic java.util.Base64.getMimeDecoder:()Ljava/util/Base64$Decoder;
            aload 8 /* se */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.util.Base64$Decoder.decode:(Ljava/lang/String;)[B
        22: .line 645
            astore 14 /* expected */
        start local 14 // byte[] expected
        23: .line 648
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.workaround:Z
            ifeq 26
        24: .line 649
            aload 5 /* mde */
            aload 12 /* digest */
            invokevirtual sun.security.util.ManifestDigester$Entry.digestWorkaround:(Ljava/security/MessageDigest;)[B
            astore 15 /* computed */
        start local 15 // byte[] computed
        25: .line 650
            goto 27
        end local 15 // byte[] computed
        26: .line 651
      StackMap locals: java.security.MessageDigest int byte[]
      StackMap stack:
            aload 5 /* mde */
            aload 12 /* digest */
            invokevirtual sun.security.util.ManifestDigester$Entry.digest:(Ljava/security/MessageDigest;)[B
            astore 15 /* computed */
        start local 15 // byte[] computed
        27: .line 654
      StackMap locals: byte[]
      StackMap stack:
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            ifnull 34
        28: .line 655
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "Signature Block File: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        29: .line 656
            aload 2 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " digest="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 12 /* digest */
            invokevirtual java.security.MessageDigest.getAlgorithm:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        30: .line 655
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        31: .line 657
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "  expected "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 14 /* expected */
            invokestatic sun.security.util.SignatureFileVerifier.toHex:([B)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        32: .line 658
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "  computed "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 15 /* computed */
            invokestatic sun.security.util.SignatureFileVerifier.toHex:([B)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        33: .line 659
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            invokevirtual sun.security.util.Debug.println:()V
        34: .line 662
      StackMap locals:
      StackMap stack:
            aload 15 /* computed */
            aload 14 /* expected */
            invokestatic java.security.MessageDigest.isEqual:([B[B)Z
            ifeq 38
        35: .line 663
            iconst_1
            istore 4 /* oneDigestVerified */
        36: .line 664
            iconst_1
            istore 13 /* ok */
        37: .line 665
            goto 47
        38: .line 667
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.workaround:Z
            ifne 47
        39: .line 668
            aload 5 /* mde */
            aload 12 /* digest */
            invokevirtual sun.security.util.ManifestDigester$Entry.digestWorkaround:(Ljava/security/MessageDigest;)[B
            astore 15 /* computed */
        40: .line 669
            aload 15 /* computed */
            aload 14 /* expected */
            invokestatic java.security.MessageDigest.isEqual:([B[B)Z
            ifeq 47
        41: .line 670
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            ifnull 44
        42: .line 671
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "  re-computed "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 15 /* computed */
            invokestatic sun.security.util.SignatureFileVerifier.toHex:([B)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        43: .line 672
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            invokevirtual sun.security.util.Debug.println:()V
        44: .line 674
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.security.util.SignatureFileVerifier.workaround:Z
        45: .line 675
            iconst_1
            istore 4 /* oneDigestVerified */
        46: .line 676
            iconst_1
            istore 13 /* ok */
        47: .line 680
      StackMap locals:
      StackMap stack:
            iload 13 /* ok */
            ifne 52
        48: .line 681
            new java.lang.SecurityException
            dup
            new java.lang.StringBuilder
            dup
            ldc "invalid "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        49: .line 682
            aload 12 /* digest */
            invokevirtual java.security.MessageDigest.getAlgorithm:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        50: .line 683
            ldc " signature file digest for "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        51: .line 681
            invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
            athrow
        end local 15 // byte[] computed
        end local 14 // byte[] expected
        end local 13 // boolean ok
        end local 12 // java.security.MessageDigest digest
        end local 11 // java.lang.String algorithm
        end local 10 // java.lang.String key
        end local 8 // java.util.Map$Entry se
        52: .line 623
      StackMap locals: sun.security.util.SignatureFileVerifier java.util.jar.Attributes java.lang.String sun.security.util.ManifestDigester int sun.security.util.ManifestDigester$Entry int int top java.util.Iterator
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        53: .line 690
      StackMap locals: sun.security.util.SignatureFileVerifier java.util.jar.Attributes java.lang.String sun.security.util.ManifestDigester int sun.security.util.ManifestDigester$Entry int int
      StackMap stack:
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            ifnull 61
        54: .line 691
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            ldc "PermittedAlgs mapping: "
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        55: .line 692
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.permittedAlgs:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 9
            goto 60
      StackMap locals: sun.security.util.SignatureFileVerifier java.util.jar.Attributes java.lang.String sun.security.util.ManifestDigester int sun.security.util.ManifestDigester$Entry int int top java.util.Iterator
      StackMap stack:
        56: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 8 /* key */
        start local 8 // java.lang.String key
        57: .line 693
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            aload 8 /* key */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " : "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        58: .line 694
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.permittedAlgs:Ljava/util/Map;
            aload 8 /* key */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        59: .line 693
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        end local 8 // java.lang.String key
        60: .line 692
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 56
        61: .line 699
      StackMap locals: sun.security.util.SignatureFileVerifier java.util.jar.Attributes java.lang.String sun.security.util.ManifestDigester int sun.security.util.ManifestDigester$Entry int int
      StackMap stack:
            iload 7 /* validEntry */
            ifeq 65
            iload 6 /* weakAlgs */
            ifeq 65
        62: .line 700
            new java.security.SignatureException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Manifest Main Attribute check failed (DIGEST).  Disabled algorithm(s) used: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        63: .line 702
            aload 0 /* this */
            ldc "DIGEST"
            invokevirtual sun.security.util.SignatureFileVerifier.getWeakAlgorithms:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        64: .line 700
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
            athrow
        65: .line 705
      StackMap locals:
      StackMap stack:
            iload 4 /* oneDigestVerified */
            ireturn
        end local 7 // boolean validEntry
        end local 6 // boolean weakAlgs
        end local 5 // sun.security.util.ManifestDigester$Entry mde
        end local 4 // boolean oneDigestVerified
        end local 3 // sun.security.util.ManifestDigester md
        end local 2 // java.lang.String name
        end local 1 // java.util.jar.Attributes sfAttr
        end local 0 // sun.security.util.SignatureFileVerifier this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   66     0               this  Lsun/security/util/SignatureFileVerifier;
            0   66     1             sfAttr  Ljava/util/jar/Attributes;
            0   66     2               name  Ljava/lang/String;
            0   66     3                 md  Lsun/security/util/ManifestDigester;
            1   66     4  oneDigestVerified  Z
            2   66     5                mde  Lsun/security/util/ManifestDigester$Entry;
            3   66     6           weakAlgs  Z
            4   66     7         validEntry  Z
           11   52     8                 se  Ljava/util/Map$Entry<Ljava/lang/Object;Ljava/lang/Object;>;
           12   52    10                key  Ljava/lang/String;
           14   52    11          algorithm  Ljava/lang/String;
           19   52    12             digest  Ljava/security/MessageDigest;
           21   52    13                 ok  Z
           23   52    14           expected  [B
           25   26    15           computed  [B
           27   52    15           computed  [B
           57   60     8                key  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException, java.security.SignatureException
    MethodParameters:
        Name  Flags
      sfAttr  
      name    
      md      

  private java.security.CodeSigner[] getSigners(sun.security.pkcs.SignerInfo[], sun.security.pkcs.PKCS7);
    descriptor: ([Lsun/security/pkcs/SignerInfo;Lsun/security/pkcs/PKCS7;)[Ljava/security/CodeSigner;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // sun.security.util.SignatureFileVerifier this
        start local 1 // sun.security.pkcs.SignerInfo[] infos
        start local 2 // sun.security.pkcs.PKCS7 block
         0: .line 717
            aconst_null
            astore 3 /* signers */
        start local 3 // java.util.ArrayList signers
         1: .line 719
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         2: goto 14
         3: .line 721
      StackMap locals: java.util.ArrayList int
      StackMap stack:
            aload 1 /* infos */
            iload 4 /* i */
            aaload
            astore 5 /* info */
        start local 5 // sun.security.pkcs.SignerInfo info
         4: .line 722
            aload 5 /* info */
            aload 2 /* block */
            invokevirtual sun.security.pkcs.SignerInfo.getCertificateChain:(Lsun/security/pkcs/PKCS7;)Ljava/util/ArrayList;
            astore 6 /* chain */
        start local 6 // java.util.ArrayList chain
         5: .line 723
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.certificateFactory:Ljava/security/cert/CertificateFactory;
            aload 6 /* chain */
            invokevirtual java.security.cert.CertificateFactory.generateCertPath:(Ljava/util/List;)Ljava/security/cert/CertPath;
            astore 7 /* certChain */
        start local 7 // java.security.cert.CertPath certChain
         6: .line 724
            aload 3 /* signers */
            ifnonnull 8
         7: .line 725
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* signers */
         8: .line 729
      StackMap locals: sun.security.pkcs.SignerInfo java.util.ArrayList java.security.cert.CertPath
      StackMap stack:
            aload 3 /* signers */
            new java.security.CodeSigner
            dup
            aload 7 /* certChain */
            aload 5 /* info */
            invokevirtual sun.security.pkcs.SignerInfo.getTimestamp:()Ljava/security/Timestamp;
            invokespecial java.security.CodeSigner.<init>:(Ljava/security/cert/CertPath;Ljava/security/Timestamp;)V
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         9: .line 731
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            ifnull 13
        10: .line 732
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "Signature Block Certificate: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        11: .line 733
            aload 6 /* chain */
            iconst_0
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        12: .line 732
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        end local 7 // java.security.cert.CertPath certChain
        end local 6 // java.util.ArrayList chain
        end local 5 // sun.security.pkcs.SignerInfo info
        13: .line 719
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 4 /* i */
            aload 1 /* infos */
            arraylength
            if_icmplt 3
        end local 4 // int i
        15: .line 737
            aload 3 /* signers */
            ifnull 17
        16: .line 738
            aload 3 /* signers */
            aload 3 /* signers */
            invokevirtual java.util.ArrayList.size:()I
            anewarray java.security.CodeSigner
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.security.CodeSigner[]
            areturn
        17: .line 740
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 3 // java.util.ArrayList signers
        end local 2 // sun.security.pkcs.PKCS7 block
        end local 1 // sun.security.pkcs.SignerInfo[] infos
        end local 0 // sun.security.util.SignatureFileVerifier this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   18     0       this  Lsun/security/util/SignatureFileVerifier;
            0   18     1      infos  [Lsun/security/pkcs/SignerInfo;
            0   18     2      block  Lsun/security/pkcs/PKCS7;
            1   18     3    signers  Ljava/util/ArrayList<Ljava/security/CodeSigner;>;
            2   15     4          i  I
            4   13     5       info  Lsun/security/pkcs/SignerInfo;
            5   13     6      chain  Ljava/util/ArrayList<Ljava/security/cert/X509Certificate;>;
            6   13     7  certChain  Ljava/security/cert/CertPath;
    Exceptions:
      throws java.io.IOException, java.security.NoSuchAlgorithmException, java.security.SignatureException, java.security.cert.CertificateException
    MethodParameters:
       Name  Flags
      infos  
      block  

  static java.lang.String toHex(byte[]);
    descriptor: ([B)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // byte[] data
         0: .line 755
            new java.lang.StringBuilder
            dup
            aload 0 /* data */
            arraylength
            iconst_2
            imul
            invokespecial java.lang.StringBuilder.<init>:(I)V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 757
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 6
         3: .line 758
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            aload 1 /* sb */
            getstatic sun.security.util.SignatureFileVerifier.hexc:[C
            aload 0 /* data */
            iload 2 /* i */
            baload
            iconst_4
            ishr
            bipush 15
            iand
            caload
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         4: .line 759
            aload 1 /* sb */
            getstatic sun.security.util.SignatureFileVerifier.hexc:[C
            aload 0 /* data */
            iload 2 /* i */
            baload
            bipush 15
            iand
            caload
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         5: .line 757
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 2 /* i */
            aload 0 /* data */
            arraylength
            if_icmplt 3
        end local 2 // int i
         7: .line 761
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder sb
        end local 0 // byte[] data
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  data  [B
            1    8     1    sb  Ljava/lang/StringBuilder;
            2    7     2     i  I
    MethodParameters:
      Name  Flags
      data  

  static boolean contains(java.security.CodeSigner[], java.security.CodeSigner);
    descriptor: ([Ljava/security/CodeSigner;Ljava/security/CodeSigner;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.security.CodeSigner[] set
        start local 1 // java.security.CodeSigner signer
         0: .line 767
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         1: goto 5
         2: .line 768
      StackMap locals: int
      StackMap stack:
            aload 0 /* set */
            iload 2 /* i */
            aaload
            aload 1 /* signer */
            invokevirtual java.security.CodeSigner.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 769
            iconst_1
            ireturn
         4: .line 767
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* i */
            aload 0 /* set */
            arraylength
            if_icmplt 2
        end local 2 // int i
         6: .line 771
            iconst_0
            ireturn
        end local 1 // java.security.CodeSigner signer
        end local 0 // java.security.CodeSigner[] set
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0     set  [Ljava/security/CodeSigner;
            0    7     1  signer  Ljava/security/CodeSigner;
            1    6     2       i  I
    MethodParameters:
        Name  Flags
      set     
      signer  

  static boolean isSubSet(java.security.CodeSigner[], java.security.CodeSigner[]);
    descriptor: ([Ljava/security/CodeSigner;[Ljava/security/CodeSigner;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.security.CodeSigner[] subset
        start local 1 // java.security.CodeSigner[] set
         0: .line 778
            aload 1 /* set */
            aload 0 /* subset */
            if_acmpne 2
         1: .line 779
            iconst_1
            ireturn
         2: .line 782
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         3: goto 7
         4: .line 783
      StackMap locals: int
      StackMap stack:
            aload 1 /* set */
            aload 0 /* subset */
            iload 2 /* i */
            aaload
            invokestatic sun.security.util.SignatureFileVerifier.contains:([Ljava/security/CodeSigner;Ljava/security/CodeSigner;)Z
            ifne 6
         5: .line 784
            iconst_0
            ireturn
         6: .line 782
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 2 /* i */
            aload 0 /* subset */
            arraylength
            if_icmplt 4
        end local 2 // int i
         8: .line 786
            iconst_1
            ireturn
        end local 1 // java.security.CodeSigner[] set
        end local 0 // java.security.CodeSigner[] subset
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0  subset  [Ljava/security/CodeSigner;
            0    9     1     set  [Ljava/security/CodeSigner;
            3    8     2       i  I
    MethodParameters:
        Name  Flags
      subset  
      set     

  static boolean matches(java.security.CodeSigner[], java.security.CodeSigner[], java.security.CodeSigner[]);
    descriptor: ([Ljava/security/CodeSigner;[Ljava/security/CodeSigner;[Ljava/security/CodeSigner;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // java.security.CodeSigner[] signers
        start local 1 // java.security.CodeSigner[] oldSigners
        start local 2 // java.security.CodeSigner[] newSigners
         0: .line 798
            aload 1 /* oldSigners */
            ifnonnull 2
            aload 0 /* signers */
            aload 2 /* newSigners */
            if_acmpne 2
         1: .line 799
            iconst_1
            ireturn
         2: .line 804
      StackMap locals:
      StackMap stack:
            aload 1 /* oldSigners */
            ifnull 4
            aload 1 /* oldSigners */
            aload 0 /* signers */
            invokestatic sun.security.util.SignatureFileVerifier.isSubSet:([Ljava/security/CodeSigner;[Ljava/security/CodeSigner;)Z
            ifne 4
         3: .line 805
            iconst_0
            ireturn
         4: .line 808
      StackMap locals:
      StackMap stack:
            aload 2 /* newSigners */
            aload 0 /* signers */
            invokestatic sun.security.util.SignatureFileVerifier.isSubSet:([Ljava/security/CodeSigner;[Ljava/security/CodeSigner;)Z
            ifne 6
         5: .line 809
            iconst_0
            ireturn
         6: .line 815
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         7: goto 16
         8: .line 817
      StackMap locals: int
      StackMap stack:
            aload 1 /* oldSigners */
            ifnull 9
            aload 1 /* oldSigners */
            aload 0 /* signers */
            iload 3 /* i */
            aaload
            invokestatic sun.security.util.SignatureFileVerifier.contains:([Ljava/security/CodeSigner;Ljava/security/CodeSigner;)Z
            ifne 11
         9: .line 818
      StackMap locals:
      StackMap stack:
            aload 2 /* newSigners */
            aload 0 /* signers */
            iload 3 /* i */
            aaload
            invokestatic sun.security.util.SignatureFileVerifier.contains:([Ljava/security/CodeSigner;Ljava/security/CodeSigner;)Z
            ifne 11
        10: .line 816
            iconst_0
            goto 12
      StackMap locals:
      StackMap stack:
        11: iconst_1
      StackMap locals:
      StackMap stack: int
        12: istore 4 /* found */
        start local 4 // boolean found
        13: .line 819
            iload 4 /* found */
            ifne 15
        14: .line 820
            iconst_0
            ireturn
        end local 4 // boolean found
        15: .line 815
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        16: iload 3 /* i */
            aload 0 /* signers */
            arraylength
            if_icmplt 8
        end local 3 // int i
        17: .line 822
            iconst_1
            ireturn
        end local 2 // java.security.CodeSigner[] newSigners
        end local 1 // java.security.CodeSigner[] oldSigners
        end local 0 // java.security.CodeSigner[] signers
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   18     0     signers  [Ljava/security/CodeSigner;
            0   18     1  oldSigners  [Ljava/security/CodeSigner;
            0   18     2  newSigners  [Ljava/security/CodeSigner;
            7   17     3           i  I
           13   15     4       found  Z
    MethodParameters:
            Name  Flags
      signers     
      oldSigners  
      newSigners  

  void updateSigners(java.security.CodeSigner[], java.util.Hashtable<java.lang.String, java.security.CodeSigner[]>, java.lang.String);
    descriptor: ([Ljava/security/CodeSigner;Ljava/util/Hashtable;Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=7, args_size=4
        start local 0 // sun.security.util.SignatureFileVerifier this
        start local 1 // java.security.CodeSigner[] newSigners
        start local 2 // java.util.Hashtable signers
        start local 3 // java.lang.String name
         0: .line 828
            aload 2 /* signers */
            aload 3 /* name */
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.security.CodeSigner[]
            astore 4 /* oldSigners */
        start local 4 // java.security.CodeSigner[] oldSigners
         1: .line 835
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.signerCache:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            iconst_1
            isub
            istore 6 /* i */
        start local 6 // int i
         2: goto 8
         3: .line 836
      StackMap locals: sun.security.util.SignatureFileVerifier java.security.CodeSigner[] java.util.Hashtable java.lang.String java.security.CodeSigner[] top int
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.signerCache:Ljava/util/ArrayList;
            iload 6 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.security.CodeSigner[]
            astore 5 /* cachedSigners */
        start local 5 // java.security.CodeSigner[] cachedSigners
         4: .line 837
            aload 5 /* cachedSigners */
            aload 4 /* oldSigners */
            aload 1 /* newSigners */
            invokestatic sun.security.util.SignatureFileVerifier.matches:([Ljava/security/CodeSigner;[Ljava/security/CodeSigner;[Ljava/security/CodeSigner;)Z
            ifeq 7
         5: .line 838
            aload 2 /* signers */
            aload 3 /* name */
            aload 5 /* cachedSigners */
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 839
            return
         7: .line 835
      StackMap locals: sun.security.util.SignatureFileVerifier java.security.CodeSigner[] java.util.Hashtable java.lang.String java.security.CodeSigner[] java.security.CodeSigner[] int
      StackMap stack:
            iinc 6 /* i */ -1
        end local 5 // java.security.CodeSigner[] cachedSigners
      StackMap locals: sun.security.util.SignatureFileVerifier java.security.CodeSigner[] java.util.Hashtable java.lang.String java.security.CodeSigner[] top int
      StackMap stack:
         8: iload 6 /* i */
            iconst_m1
            if_icmpne 3
        end local 6 // int i
         9: .line 843
            aload 4 /* oldSigners */
            ifnonnull 12
        10: .line 844
            aload 1 /* newSigners */
            astore 5 /* cachedSigners */
        start local 5 // java.security.CodeSigner[] cachedSigners
        11: .line 845
            goto 20
        end local 5 // java.security.CodeSigner[] cachedSigners
        12: .line 847
      StackMap locals: sun.security.util.SignatureFileVerifier java.security.CodeSigner[] java.util.Hashtable java.lang.String java.security.CodeSigner[]
      StackMap stack:
            aload 4 /* oldSigners */
            arraylength
            aload 1 /* newSigners */
            arraylength
            iadd
            anewarray java.security.CodeSigner
        13: .line 846
            astore 5 /* cachedSigners */
        start local 5 // java.security.CodeSigner[] cachedSigners
        14: .line 848
            aload 4 /* oldSigners */
            iconst_0
            aload 5 /* cachedSigners */
            iconst_0
        15: .line 849
            aload 4 /* oldSigners */
            arraylength
        16: .line 848
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        17: .line 850
            aload 1 /* newSigners */
            iconst_0
            aload 5 /* cachedSigners */
            aload 4 /* oldSigners */
            arraylength
        18: .line 851
            aload 1 /* newSigners */
            arraylength
        19: .line 850
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        20: .line 853
      StackMap locals: java.security.CodeSigner[]
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.signerCache:Ljava/util/ArrayList;
            aload 5 /* cachedSigners */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        21: .line 854
            aload 2 /* signers */
            aload 3 /* name */
            aload 5 /* cachedSigners */
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        22: .line 855
            return
        end local 5 // java.security.CodeSigner[] cachedSigners
        end local 4 // java.security.CodeSigner[] oldSigners
        end local 3 // java.lang.String name
        end local 2 // java.util.Hashtable signers
        end local 1 // java.security.CodeSigner[] newSigners
        end local 0 // sun.security.util.SignatureFileVerifier this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   23     0           this  Lsun/security/util/SignatureFileVerifier;
            0   23     1     newSigners  [Ljava/security/CodeSigner;
            0   23     2        signers  Ljava/util/Hashtable<Ljava/lang/String;[Ljava/security/CodeSigner;>;
            0   23     3           name  Ljava/lang/String;
            1   23     4     oldSigners  [Ljava/security/CodeSigner;
            4    8     5  cachedSigners  [Ljava/security/CodeSigner;
           11   12     5  cachedSigners  [Ljava/security/CodeSigner;
           14   23     5  cachedSigners  [Ljava/security/CodeSigner;
            2    9     6              i  I
    Signature: ([Ljava/security/CodeSigner;Ljava/util/Hashtable<Ljava/lang/String;[Ljava/security/CodeSigner;>;Ljava/lang/String;)V
    MethodParameters:
            Name  Flags
      newSigners  
      signers     
      name        
}
SourceFile: "SignatureFileVerifier.java"
NestMembers:
  sun.security.util.SignatureFileVerifier$ConfigurationHolder
InnerClasses:
  public Decoder = java.util.Base64$Decoder of java.util.Base64
  public abstract Entry = java.util.Map$Entry of java.util.Map
  public Name = java.util.jar.Attributes$Name of java.util.jar.Attributes
  public Entry = sun.security.util.ManifestDigester$Entry of sun.security.util.ManifestDigester
  private ConfigurationHolder = sun.security.util.SignatureFileVerifier$ConfigurationHolder of sun.security.util.SignatureFileVerifier