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 static final sun.security.util.DisabledAlgorithmConstraints JAR_DISABLED_CHECK;
    descriptor: Lsun/security/util/DisabledAlgorithmConstraints;
    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 63
            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 66
            new sun.security.util.DisabledAlgorithmConstraints
            dup
         2: .line 67
            ldc "jdk.jar.disabledAlgorithms"
         3: .line 66
            invokespecial sun.security.util.DisabledAlgorithmConstraints.<init>:(Ljava/lang/String;)V
         4: .line 65
            putstatic sun.security.util.SignatureFileVerifier.JAR_DISABLED_CHECK:Lsun/security/util/DisabledAlgorithmConstraints;
         5: .line 72
            ldc "-DIGEST-Manifest-Main-Attributes"
         6: .line 73
            getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
         7: .line 72
            invokevirtual java.lang.String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;
         8: .line 71
            putstatic sun.security.util.SignatureFileVerifier.ATTR_DIGEST:Ljava/lang/String;
         9: .line 747
            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
        10: .line 746
            putstatic sun.security.util.SignatureFileVerifier.hexc:[C
        11: .line 747
            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 113
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 93
            aload 0 /* this */
            iconst_0
            putfield sun.security.util.SignatureFileVerifier.workaround:Z
         2: .line 96
            aload 0 /* this */
            aconst_null
            putfield sun.security.util.SignatureFileVerifier.certificateFactory:Ljava/security/cert/CertificateFactory;
         3: .line 99
            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 104
            aload 0 /* this */
            aconst_null
            putfield sun.security.util.SignatureFileVerifier.timestamp:Ljava/security/Timestamp;
         5: .line 121
            aconst_null
            astore 5 /* obj */
        start local 5 // java.lang.Object obj
         6: .line 123
            invokestatic sun.security.jca.Providers.startJarVerification:()Ljava/lang/Object;
            astore 5 /* obj */
         7: .line 124
            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 125
            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 126
            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 127
            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 128
            aload 5 /* obj */
            invokestatic sun.security.jca.Providers.stopJarVerification:(Ljava/lang/Object;)V
        13: .line 129
            aload 6
            athrow
        14: .line 128
      StackMap locals:
      StackMap stack:
            aload 5 /* obj */
            invokestatic sun.security.jca.Providers.stopJarVerification:(Ljava/lang/Object;)V
        15: .line 130
            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 131
            getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
            invokevirtual java.lang.String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;
        17: .line 130
            putfield sun.security.util.SignatureFileVerifier.name:Ljava/lang/String;
        18: .line 132
            aload 0 /* this */
            aload 2 /* md */
            putfield sun.security.util.SignatureFileVerifier.md:Lsun/security/util/ManifestDigester;
        19: .line 133
            aload 0 /* this */
            aload 1 /* signerCache */
            putfield sun.security.util.SignatureFileVerifier.signerCache:Ljava/util/ArrayList;
        20: .line 134
            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 142
            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 154
            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 163
            aload 0 /* this */
            aload 1 /* sfBytes */
            putfield sun.security.util.SignatureFileVerifier.sfBytes:[B
         1: .line 164
            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 177
            aload 0 /* s */
            ldc ".SF"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 5
         1: .line 178
            aload 0 /* s */
            ldc ".DSA"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 5
         2: .line 179
            aload 0 /* s */
            ldc ".RSA"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 5
         3: .line 180
            aload 0 /* s */
            ldc ".EC"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 5
         4: .line 177
            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 194
            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 195
            aload 0 /* name */
            ldc "META-INF/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 3
         2: .line 196
            iconst_0
            ireturn
         3: .line 198
      StackMap locals:
      StackMap stack:
            aload 0 /* name */
            bipush 9
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 0 /* name */
         4: .line 199
            aload 0 /* name */
            bipush 47
            invokevirtual java.lang.String.indexOf:(I)I
            iconst_m1
            if_icmpeq 6
         5: .line 200
            iconst_0
            ireturn
         6: .line 202
      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 203
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         8: .line 204
      StackMap locals:
      StackMap stack:
            aload 0 /* name */
            ldc "SIG-"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 23
         9: .line 208
            aload 0 /* name */
            bipush 46
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 1 /* extIndex */
        start local 1 // int extIndex
        10: .line 209
            iload 1 /* extIndex */
            iconst_m1
            if_icmpeq 22
        11: .line 210
            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 212
            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 213
      StackMap locals: int java.lang.String
      StackMap stack:
            iconst_0
            ireturn
        14: .line 216
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* index */
        start local 3 // int index
        15: goto 21
        16: .line 217
      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 219
            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 220
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 4 // char cc
        20: .line 216
      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 224
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 1 // int extIndex
        23: .line 226
      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 233
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.createdDigests:Ljava/util/HashMap;
            ifnonnull 2
         1: .line 234
            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 236
      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 238
            aload 2 /* digest */
            ifnonnull 8
         4: .line 240
            aload 1 /* algorithm */
            invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
            astore 2 /* digest */
         5: .line 241
            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 242
            goto 8
      StackMap locals: sun.security.util.SignatureFileVerifier java.lang.String java.security.MessageDigest
      StackMap stack: java.security.NoSuchAlgorithmException
         7: pop
         8: .line 246
      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 263
            aconst_null
            astore 3 /* obj */
        start local 3 // java.lang.Object obj
         1: .line 265
            invokestatic sun.security.jca.Providers.startJarVerification:()Ljava/lang/Object;
            astore 3 /* obj */
         2: .line 266
            aload 0 /* this */
            aload 1 /* signers */
            aload 2 /* manifestDigests */
            invokevirtual sun.security.util.SignatureFileVerifier.processImpl:(Ljava/util/Hashtable;Ljava/util/List;)V
         3: .line 267
            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 268
            aload 3 /* obj */
            invokestatic sun.security.jca.Providers.stopJarVerification:(Ljava/lang/Object;)V
         6: .line 269
            aload 4
            athrow
         7: .line 268
      StackMap locals:
      StackMap stack:
            aload 3 /* obj */
            invokestatic sun.security.jca.Providers.stopJarVerification:(Ljava/lang/Object;)V
         8: .line 271
            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=12, 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 278
            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 279
            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 282
            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 281
            astore 4 /* version */
        start local 4 // java.lang.String version
         4: .line 284
            aload 4 /* version */
            ifnull 5
            aload 4 /* version */
            ldc "1.0"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 6
         5: .line 287
      StackMap locals: java.util.jar.Manifest java.lang.String
      StackMap stack:
            return
         6: .line 290
      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 292
            aload 5 /* infos */
            ifnonnull 11
         8: .line 293
            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 294
            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 293
            invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 297
      StackMap locals: sun.security.pkcs.SignerInfo[]
      StackMap stack:
            new sun.misc.BASE64Decoder
            dup
            invokespecial sun.misc.BASE64Decoder.<init>:()V
            astore 6 /* decoder */
        start local 6 // sun.misc.BASE64Decoder decoder
        12: .line 299
            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 7 /* newSigners */
        start local 7 // java.security.CodeSigner[] newSigners
        13: .line 302
            aload 7 /* newSigners */
            ifnonnull 15
        14: .line 303
            return
        15: .line 309
      StackMap locals: sun.misc.BASE64Decoder java.security.CodeSigner[]
      StackMap stack:
            aload 7 /* newSigners */
            dup
            astore 11
            arraylength
            istore 10
            iconst_0
            istore 9
            goto 31
      StackMap locals: sun.security.util.SignatureFileVerifier java.util.Hashtable java.util.List java.util.jar.Manifest java.lang.String sun.security.pkcs.SignerInfo[] sun.misc.BASE64Decoder java.security.CodeSigner[] top int int java.security.CodeSigner[]
      StackMap stack:
        16: aload 11
            iload 9
            aaload
            astore 8 /* s */
        start local 8 // java.security.CodeSigner s
        17: .line 310
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            ifnull 19
        18: .line 311
            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 8 /* 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
        19: .line 313
      StackMap locals: sun.security.util.SignatureFileVerifier java.util.Hashtable java.util.List java.util.jar.Manifest java.lang.String sun.security.pkcs.SignerInfo[] sun.misc.BASE64Decoder java.security.CodeSigner[] java.security.CodeSigner int int java.security.CodeSigner[]
      StackMap stack:
            aload 8 /* s */
            invokevirtual java.security.CodeSigner.getTimestamp:()Ljava/security/Timestamp;
            ifnonnull 22
        20: .line 314
            aload 0 /* this */
            aconst_null
            putfield sun.security.util.SignatureFileVerifier.timestamp:Ljava/security/Timestamp;
        21: .line 315
            goto 32
        22: .line 316
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.timestamp:Ljava/security/Timestamp;
            ifnonnull 25
        23: .line 317
            aload 0 /* this */
            aload 8 /* s */
            invokevirtual java.security.CodeSigner.getTimestamp:()Ljava/security/Timestamp;
            putfield sun.security.util.SignatureFileVerifier.timestamp:Ljava/security/Timestamp;
        24: .line 318
            goto 30
        25: .line 319
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.timestamp:Ljava/security/Timestamp;
            invokevirtual java.security.Timestamp.getTimestamp:()Ljava/util/Date;
        26: .line 320
            aload 8 /* s */
            invokevirtual java.security.CodeSigner.getTimestamp:()Ljava/security/Timestamp;
            invokevirtual java.security.Timestamp.getTimestamp:()Ljava/util/Date;
        27: .line 319
            invokevirtual java.util.Date.before:(Ljava/util/Date;)Z
        28: .line 320
            ifeq 30
        29: .line 321
            aload 0 /* this */
            aload 8 /* s */
            invokevirtual java.security.CodeSigner.getTimestamp:()Ljava/security/Timestamp;
            putfield sun.security.util.SignatureFileVerifier.timestamp:Ljava/security/Timestamp;
        end local 8 // java.security.CodeSigner s
        30: .line 309
      StackMap locals: sun.security.util.SignatureFileVerifier java.util.Hashtable java.util.List java.util.jar.Manifest java.lang.String sun.security.pkcs.SignerInfo[] sun.misc.BASE64Decoder java.security.CodeSigner[] top int int java.security.CodeSigner[]
      StackMap stack:
            iinc 9 1
      StackMap locals:
      StackMap stack:
        31: iload 9
            iload 10
            if_icmplt 16
        32: .line 327
      StackMap locals: sun.security.util.SignatureFileVerifier java.util.Hashtable java.util.List java.util.jar.Manifest java.lang.String sun.security.pkcs.SignerInfo[] sun.misc.BASE64Decoder 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;
        33: .line 326
            astore 8 /* entries */
        start local 8 // java.util.Iterator entries
        34: .line 330
            aload 0 /* this */
            aload 3 /* sf */
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.md:Lsun/security/util/ManifestDigester;
            aload 6 /* decoder */
            aload 2 /* manifestDigests */
            invokevirtual sun.security.util.SignatureFileVerifier.verifyManifestHash:(Ljava/util/jar/Manifest;Lsun/security/util/ManifestDigester;Lsun/misc/BASE64Decoder;Ljava/util/List;)Z
            istore 9 /* manifestSigned */
        start local 9 // boolean manifestSigned
        35: .line 333
            iload 9 /* manifestSigned */
            ifne 53
            aload 0 /* this */
            aload 3 /* sf */
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.md:Lsun/security/util/ManifestDigester;
            aload 6 /* decoder */
            invokevirtual sun.security.util.SignatureFileVerifier.verifyManifestMainAttrs:(Ljava/util/jar/Manifest;Lsun/security/util/ManifestDigester;Lsun/misc/BASE64Decoder;)Z
            ifne 53
        36: .line 334
            new java.lang.SecurityException
            dup
        37: .line 335
            ldc "Invalid signature file digest for Manifest main attributes"
        38: .line 334
            invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
            athrow
        39: .line 341
      StackMap locals: java.util.Iterator int
      StackMap stack:
            aload 8 /* entries */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 10 /* e */
        start local 10 // java.util.Map$Entry e
        40: .line 342
            aload 10 /* e */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 11 /* name */
        start local 11 // java.lang.String name
        41: .line 344
            iload 9 /* manifestSigned */
            ifne 43
        42: .line 345
            aload 0 /* this */
            aload 10 /* e */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.util.jar.Attributes
            aload 11 /* name */
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.md:Lsun/security/util/ManifestDigester;
            aload 6 /* decoder */
            invokevirtual sun.security.util.SignatureFileVerifier.verifySection:(Ljava/util/jar/Attributes;Ljava/lang/String;Lsun/security/util/ManifestDigester;Lsun/misc/BASE64Decoder;)Z
            ifeq 51
        43: .line 347
      StackMap locals: java.util.Map$Entry java.lang.String
      StackMap stack:
            aload 11 /* name */
            ldc "./"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 45
        44: .line 348
            aload 11 /* name */
            iconst_2
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 11 /* name */
        45: .line 350
      StackMap locals:
      StackMap stack:
            aload 11 /* name */
            ldc "/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 47
        46: .line 351
            aload 11 /* name */
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 11 /* name */
        47: .line 353
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 7 /* newSigners */
            aload 1 /* signers */
            aload 11 /* name */
            invokevirtual sun.security.util.SignatureFileVerifier.updateSigners:([Ljava/security/CodeSigner;Ljava/util/Hashtable;Ljava/lang/String;)V
        48: .line 355
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            ifnull 53
        49: .line 356
            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 11 /* 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
        50: .line 359
            goto 53
      StackMap locals:
      StackMap stack:
        51: getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            ifnull 53
        52: .line 360
            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 11 /* 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 11 // java.lang.String name
        end local 10 // java.util.Map$Entry e
        53: .line 339
      StackMap locals:
      StackMap stack:
            aload 8 /* entries */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 39
        54: .line 365
            aload 0 /* this */
            aload 7 /* 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
        55: .line 366
            return
        end local 9 // boolean manifestSigned
        end local 8 // java.util.Iterator entries
        end local 7 // java.security.CodeSigner[] newSigners
        end local 6 // sun.misc.BASE64Decoder decoder
        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   56     0             this  Lsun/security/util/SignatureFileVerifier;
            0   56     1          signers  Ljava/util/Hashtable<Ljava/lang/String;[Ljava/security/CodeSigner;>;
            0   56     2  manifestDigests  Ljava/util/List<Ljava/lang/Object;>;
            1   56     3               sf  Ljava/util/jar/Manifest;
            4   56     4          version  Ljava/lang/String;
            7   56     5            infos  [Lsun/security/pkcs/SignerInfo;
           12   56     6          decoder  Lsun/misc/BASE64Decoder;
           13   56     7       newSigners  [Ljava/security/CodeSigner;
           17   30     8                s  Ljava/security/CodeSigner;
           34   56     8          entries  Ljava/util/Iterator<Ljava/util/Map$Entry<Ljava/lang/String;Ljava/util/jar/Attributes;>;>;
           35   56     9   manifestSigned  Z
           40   53    10                e  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/util/jar/Attributes;>;
           41   53    11             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 375
            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 376
            aload 3 /* permitted */
            ifnonnull 20
         2: .line 378
            getstatic sun.security.util.SignatureFileVerifier.JAR_DISABLED_CHECK:Lsun/security/util/DisabledAlgorithmConstraints;
            aload 2 /* algorithm */
         3: .line 379
            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 378
            invokevirtual sun.security.util.DisabledAlgorithmConstraints.permits:(Ljava/lang/String;Lsun/security/util/ConstraintsParameters;)V
         5: .line 380
            goto 18
      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 381
            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 382
            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 383
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            ifnull 17
        10: .line 384
            aload 4 /* e */
            invokevirtual java.security.GeneralSecurityException.getMessage:()Ljava/lang/String;
            ifnull 13
        11: .line 385
            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 386
            goto 17
        13: .line 387
      StackMap locals: java.security.GeneralSecurityException
      StackMap stack:
            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 2 /* algorithm */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        14: .line 388
            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;
        15: .line 387
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        16: .line 389
            aload 4 /* e */
            invokevirtual java.security.GeneralSecurityException.printStackTrace:()V
        17: .line 392
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 4 // java.security.GeneralSecurityException e
        18: .line 395
      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
        19: .line 396
            iconst_1
            ireturn
        20: .line 400
      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   21     0       this  Lsun/security/util/SignatureFileVerifier;
            0   21     1        key  Ljava/lang/String;
            0   21     2  algorithm  Ljava/lang/String;
            1   21     3  permitted  Ljava/lang/Boolean;
            7   18     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 409
            ldc ""
            astore 2 /* w */
        start local 2 // java.lang.String w
         1: .line 411
            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 412
            aload 3 /* key */
            aload 1 /* header */
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 5
         4: .line 413
            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 411
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 416
            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 417
            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 418
            aload 3 /* e */
            invokevirtual java.lang.RuntimeException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        10: .line 417
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* w */
        end local 3 // java.lang.RuntimeException e
        11: .line 423
      StackMap locals:
      StackMap stack:
            aload 2 /* w */
            invokevirtual java.lang.String.length:()I
            ifne 13
        12: .line 424
            ldc "Unknown Algorithm(s)"
            areturn
        13: .line 427
      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, sun.misc.BASE64Decoder, java.util.List<java.lang.Object>);
    descriptor: (Ljava/util/jar/Manifest;Lsun/security/util/ManifestDigester;Lsun/misc/BASE64Decoder;Ljava/util/List;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=16, args_size=5
        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 // sun.misc.BASE64Decoder decoder
        start local 4 // java.util.List manifestDigests
         0: .line 439
            aload 1 /* sf */
            invokevirtual java.util.jar.Manifest.getMainAttributes:()Ljava/util/jar/Attributes;
            astore 5 /* mattr */
        start local 5 // java.util.jar.Attributes mattr
         1: .line 440
            iconst_0
            istore 6 /* manifestSigned */
        start local 6 // boolean manifestSigned
         2: .line 442
            iconst_1
            istore 7 /* weakAlgs */
        start local 7 // boolean weakAlgs
         3: .line 444
            iconst_0
            istore 8 /* validEntry */
        start local 8 // boolean validEntry
         4: .line 447
            aload 5 /* mattr */
            invokevirtual java.util.jar.Attributes.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 10
            goto 29
      StackMap locals: sun.security.util.SignatureFileVerifier java.util.jar.Manifest sun.security.util.ManifestDigester sun.misc.BASE64Decoder java.util.List java.util.jar.Attributes int int int top java.util.Iterator
      StackMap stack:
         5: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 9 /* se */
        start local 9 // java.util.Map$Entry se
         6: .line 449
            aload 9 /* se */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            astore 11 /* key */
        start local 11 // java.lang.String key
         7: .line 451
            aload 11 /* 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 453
            aload 11 /* key */
            iconst_0
            aload 11 /* key */
            invokevirtual java.lang.String.length:()I
            bipush 16
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 12 /* algorithm */
        start local 12 // java.lang.String algorithm
         9: .line 454
            iconst_1
            istore 8 /* validEntry */
        10: .line 457
            aload 0 /* this */
            aload 11 /* key */
            aload 12 /* algorithm */
            invokevirtual sun.security.util.SignatureFileVerifier.permittedCheck:(Ljava/lang/String;Ljava/lang/String;)Z
            ifne 12
        11: .line 458
            goto 29
        12: .line 463
      StackMap locals: sun.security.util.SignatureFileVerifier java.util.jar.Manifest sun.security.util.ManifestDigester sun.misc.BASE64Decoder 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 7 /* weakAlgs */
        13: .line 465
            aload 4 /* manifestDigests */
            aload 11 /* key */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        14: .line 466
            aload 4 /* manifestDigests */
            aload 9 /* se */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        15: .line 467
            aload 0 /* this */
            aload 12 /* algorithm */
            invokevirtual sun.security.util.SignatureFileVerifier.getDigest:(Ljava/lang/String;)Ljava/security/MessageDigest;
            astore 13 /* digest */
        start local 13 // java.security.MessageDigest digest
        16: .line 468
            aload 13 /* digest */
            ifnull 29
        17: .line 469
            aload 2 /* md */
            aload 13 /* digest */
            invokevirtual sun.security.util.ManifestDigester.manifestDigest:(Ljava/security/MessageDigest;)[B
            astore 14 /* computedHash */
        start local 14 // byte[] computedHash
        18: .line 471
            aload 3 /* decoder */
            aload 9 /* se */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual sun.misc.BASE64Decoder.decodeBuffer:(Ljava/lang/String;)[B
        19: .line 470
            astore 15 /* expectedHash */
        start local 15 // byte[] expectedHash
        20: .line 473
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            ifnull 27
        21: .line 474
            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 475
            aload 12 /* algorithm */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        23: .line 474
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        24: .line 476
            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 15 /* 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 477
            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 14 /* 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 478
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            invokevirtual sun.security.util.Debug.println:()V
        27: .line 481
      StackMap locals: java.security.MessageDigest byte[] byte[]
      StackMap stack:
            aload 14 /* computedHash */
            aload 15 /* expectedHash */
            invokestatic java.security.MessageDigest.isEqual:([B[B)Z
            ifeq 29
        28: .line 482
            iconst_1
            istore 6 /* manifestSigned */
        end local 15 // byte[] expectedHash
        end local 14 // byte[] computedHash
        end local 13 // java.security.MessageDigest digest
        end local 12 // java.lang.String algorithm
        end local 11 // java.lang.String key
        end local 9 // java.util.Map$Entry se
        29: .line 447
      StackMap locals: sun.security.util.SignatureFileVerifier java.util.jar.Manifest sun.security.util.ManifestDigester sun.misc.BASE64Decoder java.util.List java.util.jar.Attributes int int int top java.util.Iterator
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        30: .line 490
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            ifnull 38
        31: .line 491
            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 492
            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 10
            goto 37
      StackMap locals:
      StackMap stack:
        33: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 9 /* key */
        start local 9 // java.lang.String key
        34: .line 493
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            aload 9 /* 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 494
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.permittedAlgs:Ljava/util/Map;
            aload 9 /* 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 493
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        end local 9 // java.lang.String key
        37: .line 492
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 33
        38: .line 499
      StackMap locals: sun.security.util.SignatureFileVerifier java.util.jar.Manifest sun.security.util.ManifestDigester sun.misc.BASE64Decoder java.util.List java.util.jar.Attributes int int int
      StackMap stack:
            iload 8 /* validEntry */
            ifeq 42
            iload 7 /* weakAlgs */
            ifeq 42
        39: .line 500
            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 502
            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 500
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
            athrow
        42: .line 504
      StackMap locals:
      StackMap stack:
            iload 6 /* manifestSigned */
            ireturn
        end local 8 // boolean validEntry
        end local 7 // boolean weakAlgs
        end local 6 // boolean manifestSigned
        end local 5 // java.util.jar.Attributes mattr
        end local 4 // java.util.List manifestDigests
        end local 3 // sun.misc.BASE64Decoder decoder
        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          decoder  Lsun/misc/BASE64Decoder;
            0   43     4  manifestDigests  Ljava/util/List<Ljava/lang/Object;>;
            1   43     5            mattr  Ljava/util/jar/Attributes;
            2   43     6   manifestSigned  Z
            3   43     7         weakAlgs  Z
            4   43     8       validEntry  Z
            6   29     9               se  Ljava/util/Map$Entry<Ljava/lang/Object;Ljava/lang/Object;>;
            7   29    11              key  Ljava/lang/String;
            9   29    12        algorithm  Ljava/lang/String;
           16   29    13           digest  Ljava/security/MessageDigest;
           18   29    14     computedHash  [B
           20   29    15     expectedHash  [B
           34   37     9              key  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException, java.security.SignatureException
    Signature: (Ljava/util/jar/Manifest;Lsun/security/util/ManifestDigester;Lsun/misc/BASE64Decoder;Ljava/util/List<Ljava/lang/Object;>;)Z
    MethodParameters:
                 Name  Flags
      sf               
      md               
      decoder          
      manifestDigests  

  private boolean verifyManifestMainAttrs(java.util.jar.Manifest, sun.security.util.ManifestDigester, sun.misc.BASE64Decoder);
    descriptor: (Ljava/util/jar/Manifest;Lsun/security/util/ManifestDigester;Lsun/misc/BASE64Decoder;)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.Manifest sf
        start local 2 // sun.security.util.ManifestDigester md
        start local 3 // sun.misc.BASE64Decoder decoder
         0: .line 511
            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 512
            iconst_1
            istore 5 /* attrsVerified */
        start local 5 // boolean attrsVerified
         2: .line 514
            iconst_1
            istore 6 /* weakAlgs */
        start local 6 // boolean weakAlgs
         3: .line 516
            iconst_0
            istore 7 /* validEntry */
        start local 7 // boolean validEntry
         4: .line 520
            aload 4 /* mattr */
            invokevirtual java.util.jar.Attributes.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 9
            goto 34
      StackMap locals: sun.security.util.SignatureFileVerifier java.util.jar.Manifest sun.security.util.ManifestDigester sun.misc.BASE64Decoder 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 521
            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 523
            aload 10 /* 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 34
         8: .line 525
            aload 10 /* key */
            iconst_0
            aload 10 /* 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 524
            astore 11 /* algorithm */
        start local 11 // java.lang.String algorithm
        10: .line 526
            iconst_1
            istore 7 /* validEntry */
        11: .line 529
            aload 0 /* this */
            aload 10 /* key */
            aload 11 /* algorithm */
            invokevirtual sun.security.util.SignatureFileVerifier.permittedCheck:(Ljava/lang/String;Ljava/lang/String;)Z
            ifne 13
        12: .line 530
            goto 34
        13: .line 535
      StackMap locals: sun.security.util.SignatureFileVerifier java.util.jar.Manifest sun.security.util.ManifestDigester sun.misc.BASE64Decoder 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 */
        14: .line 537
            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
        15: .line 538
            aload 12 /* digest */
            ifnull 34
        16: .line 540
            aload 2 /* md */
            ldc "Manifest-Main-Attributes"
            iconst_0
            invokevirtual sun.security.util.ManifestDigester.get:(Ljava/lang/String;Z)Lsun/security/util/ManifestDigester$Entry;
        17: .line 539
            astore 13 /* mde */
        start local 13 // sun.security.util.ManifestDigester$Entry mde
        18: .line 541
            aload 13 /* mde */
            aload 12 /* digest */
            invokevirtual sun.security.util.ManifestDigester$Entry.digest:(Ljava/security/MessageDigest;)[B
            astore 14 /* computedHash */
        start local 14 // byte[] computedHash
        19: .line 543
            aload 3 /* decoder */
            aload 8 /* se */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual sun.misc.BASE64Decoder.decodeBuffer:(Ljava/lang/String;)[B
        20: .line 542
            astore 15 /* expectedHash */
        start local 15 // byte[] expectedHash
        21: .line 545
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            ifnull 28
        22: .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
        23: .line 548
            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;
        24: .line 546
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        25: .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 15 /* 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
        26: .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 14 /* 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
        27: .line 551
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            invokevirtual sun.security.util.Debug.println:()V
        28: .line 554
      StackMap locals: sun.security.util.SignatureFileVerifier java.util.jar.Manifest sun.security.util.ManifestDigester sun.misc.BASE64Decoder 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 14 /* computedHash */
            aload 15 /* expectedHash */
            invokestatic java.security.MessageDigest.isEqual:([B[B)Z
            ifne 34
        29: .line 558
            iconst_0
            istore 5 /* attrsVerified */
        30: .line 559
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            ifnull 35
        31: .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
        32: .line 562
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            invokevirtual sun.security.util.Debug.println:()V
        33: .line 564
            goto 35
        end local 15 // byte[] expectedHash
        end local 14 // byte[] computedHash
        end local 13 // sun.security.util.ManifestDigester$Entry mde
        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
        34: .line 520
      StackMap locals: sun.security.util.SignatureFileVerifier java.util.jar.Manifest sun.security.util.ManifestDigester sun.misc.BASE64Decoder java.util.jar.Attributes int int int top java.util.Iterator
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        35: .line 570
      StackMap locals: sun.security.util.SignatureFileVerifier java.util.jar.Manifest sun.security.util.ManifestDigester sun.misc.BASE64Decoder java.util.jar.Attributes int int int
      StackMap stack:
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            ifnull 43
        36: .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
        37: .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 9
            goto 42
      StackMap locals: sun.security.util.SignatureFileVerifier java.util.jar.Manifest sun.security.util.ManifestDigester sun.misc.BASE64Decoder java.util.jar.Attributes int int int top java.util.Iterator
      StackMap stack:
        38: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 8 /* key */
        start local 8 // java.lang.String key
        39: .line 573
            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;
        40: .line 574
            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;
        41: .line 573
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        end local 8 // java.lang.String key
        42: .line 572
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 38
        43: .line 579
      StackMap locals: sun.security.util.SignatureFileVerifier java.util.jar.Manifest sun.security.util.ManifestDigester sun.misc.BASE64Decoder java.util.jar.Attributes int int int
      StackMap stack:
            iload 7 /* validEntry */
            ifeq 49
            iload 6 /* weakAlgs */
            ifeq 49
        44: .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
        45: .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;
        46: .line 582
            ldc "Disabled algorithm(s) used: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        47: .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;
        48: .line 580
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
            athrow
        49: .line 589
      StackMap locals:
      StackMap stack:
            iload 5 /* attrsVerified */
            ireturn
        end local 7 // boolean validEntry
        end local 6 // boolean weakAlgs
        end local 5 // boolean attrsVerified
        end local 4 // java.util.jar.Attributes mattr
        end local 3 // sun.misc.BASE64Decoder decoder
        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   50     0           this  Lsun/security/util/SignatureFileVerifier;
            0   50     1             sf  Ljava/util/jar/Manifest;
            0   50     2             md  Lsun/security/util/ManifestDigester;
            0   50     3        decoder  Lsun/misc/BASE64Decoder;
            1   50     4          mattr  Ljava/util/jar/Attributes;
            2   50     5  attrsVerified  Z
            3   50     6       weakAlgs  Z
            4   50     7     validEntry  Z
            6   34     8             se  Ljava/util/Map$Entry<Ljava/lang/Object;Ljava/lang/Object;>;
            7   34    10            key  Ljava/lang/String;
           10   34    11      algorithm  Ljava/lang/String;
           15   34    12         digest  Ljava/security/MessageDigest;
           18   34    13            mde  Lsun/security/util/ManifestDigester$Entry;
           19   34    14   computedHash  [B
           21   34    15   expectedHash  [B
           39   42     8            key  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException, java.security.SignatureException
    MethodParameters:
         Name  Flags
      sf       
      md       
      decoder  

  private boolean verifySection(java.util.jar.Attributes, java.lang.String, sun.security.util.ManifestDigester, sun.misc.BASE64Decoder);
    descriptor: (Ljava/util/jar/Attributes;Ljava/lang/String;Lsun/security/util/ManifestDigester;Lsun/misc/BASE64Decoder;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=17, args_size=5
        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
        start local 4 // sun.misc.BASE64Decoder decoder
         0: .line 607
            iconst_0
            istore 5 /* oneDigestVerified */
        start local 5 // boolean oneDigestVerified
         1: .line 608
            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 6 /* mde */
        start local 6 // sun.security.util.ManifestDigester$Entry mde
         2: .line 610
            iconst_1
            istore 7 /* weakAlgs */
        start local 7 // boolean weakAlgs
         3: .line 612
            iconst_0
            istore 8 /* validEntry */
        start local 8 // boolean validEntry
         4: .line 614
            aload 6 /* mde */
            ifnonnull 8
         5: .line 615
            new java.lang.SecurityException
            dup
         6: .line 616
            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 615
            invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 619
      StackMap locals: sun.security.util.SignatureFileVerifier java.util.jar.Attributes java.lang.String sun.security.util.ManifestDigester sun.misc.BASE64Decoder int sun.security.util.ManifestDigester$Entry int int
      StackMap stack:
            aload 1 /* sfAttr */
            ifnull 53
         9: .line 624
            aload 1 /* sfAttr */
            invokevirtual java.util.jar.Attributes.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 10
            goto 52
      StackMap locals: sun.security.util.SignatureFileVerifier java.util.jar.Attributes java.lang.String sun.security.util.ManifestDigester sun.misc.BASE64Decoder int sun.security.util.ManifestDigester$Entry int int top java.util.Iterator
      StackMap stack:
        10: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 9 /* se */
        start local 9 // java.util.Map$Entry se
        11: .line 625
            aload 9 /* se */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            astore 11 /* key */
        start local 11 // java.lang.String key
        12: .line 627
            aload 11 /* 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 629
            aload 11 /* key */
            iconst_0
            aload 11 /* key */
            invokevirtual java.lang.String.length:()I
            bipush 7
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 12 /* algorithm */
        start local 12 // java.lang.String algorithm
        14: .line 630
            iconst_1
            istore 8 /* validEntry */
        15: .line 633
            aload 0 /* this */
            aload 11 /* key */
            aload 12 /* algorithm */
            invokevirtual sun.security.util.SignatureFileVerifier.permittedCheck:(Ljava/lang/String;Ljava/lang/String;)Z
            ifne 17
        16: .line 634
            goto 52
        17: .line 639
      StackMap locals: sun.security.util.SignatureFileVerifier java.util.jar.Attributes java.lang.String sun.security.util.ManifestDigester sun.misc.BASE64Decoder 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 7 /* weakAlgs */
        18: .line 641
            aload 0 /* this */
            aload 12 /* algorithm */
            invokevirtual sun.security.util.SignatureFileVerifier.getDigest:(Ljava/lang/String;)Ljava/security/MessageDigest;
            astore 13 /* digest */
        start local 13 // java.security.MessageDigest digest
        19: .line 643
            aload 13 /* digest */
            ifnull 52
        20: .line 644
            iconst_0
            istore 14 /* ok */
        start local 14 // boolean ok
        21: .line 647
            aload 4 /* decoder */
            aload 9 /* se */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual sun.misc.BASE64Decoder.decodeBuffer:(Ljava/lang/String;)[B
        22: .line 646
            astore 15 /* expected */
        start local 15 // byte[] expected
        23: .line 649
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.workaround:Z
            ifeq 26
        24: .line 650
            aload 6 /* mde */
            aload 13 /* digest */
            invokevirtual sun.security.util.ManifestDigester$Entry.digestWorkaround:(Ljava/security/MessageDigest;)[B
            astore 16 /* computed */
        start local 16 // byte[] computed
        25: .line 651
            goto 27
        end local 16 // byte[] computed
        26: .line 652
      StackMap locals: java.security.MessageDigest int byte[]
      StackMap stack:
            aload 6 /* mde */
            aload 13 /* digest */
            invokevirtual sun.security.util.ManifestDigester$Entry.digest:(Ljava/security/MessageDigest;)[B
            astore 16 /* computed */
        start local 16 // byte[] computed
        27: .line 655
      StackMap locals: byte[]
      StackMap stack:
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            ifnull 34
        28: .line 656
            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 657
            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 13 /* 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 656
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        31: .line 658
            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 15 /* 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 659
            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 16 /* 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 660
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            invokevirtual sun.security.util.Debug.println:()V
        34: .line 663
      StackMap locals:
      StackMap stack:
            aload 16 /* computed */
            aload 15 /* expected */
            invokestatic java.security.MessageDigest.isEqual:([B[B)Z
            ifeq 38
        35: .line 664
            iconst_1
            istore 5 /* oneDigestVerified */
        36: .line 665
            iconst_1
            istore 14 /* ok */
        37: .line 666
            goto 47
        38: .line 668
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.workaround:Z
            ifne 47
        39: .line 669
            aload 6 /* mde */
            aload 13 /* digest */
            invokevirtual sun.security.util.ManifestDigester$Entry.digestWorkaround:(Ljava/security/MessageDigest;)[B
            astore 16 /* computed */
        40: .line 670
            aload 16 /* computed */
            aload 15 /* expected */
            invokestatic java.security.MessageDigest.isEqual:([B[B)Z
            ifeq 47
        41: .line 671
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            ifnull 44
        42: .line 672
            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 16 /* 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 673
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            invokevirtual sun.security.util.Debug.println:()V
        44: .line 675
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.security.util.SignatureFileVerifier.workaround:Z
        45: .line 676
            iconst_1
            istore 5 /* oneDigestVerified */
        46: .line 677
            iconst_1
            istore 14 /* ok */
        47: .line 681
      StackMap locals:
      StackMap stack:
            iload 14 /* ok */
            ifne 52
        48: .line 682
            new java.lang.SecurityException
            dup
            new java.lang.StringBuilder
            dup
            ldc "invalid "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        49: .line 683
            aload 13 /* digest */
            invokevirtual java.security.MessageDigest.getAlgorithm:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        50: .line 684
            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 682
            invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
            athrow
        end local 16 // byte[] computed
        end local 15 // byte[] expected
        end local 14 // boolean ok
        end local 13 // java.security.MessageDigest digest
        end local 12 // java.lang.String algorithm
        end local 11 // java.lang.String key
        end local 9 // java.util.Map$Entry se
        52: .line 624
      StackMap locals: sun.security.util.SignatureFileVerifier java.util.jar.Attributes java.lang.String sun.security.util.ManifestDigester sun.misc.BASE64Decoder int sun.security.util.ManifestDigester$Entry int int top java.util.Iterator
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 10
        53: .line 691
      StackMap locals: sun.security.util.SignatureFileVerifier java.util.jar.Attributes java.lang.String sun.security.util.ManifestDigester sun.misc.BASE64Decoder int sun.security.util.ManifestDigester$Entry int int
      StackMap stack:
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            ifnull 61
        54: .line 692
            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 693
            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 10
            goto 60
      StackMap locals: sun.security.util.SignatureFileVerifier java.util.jar.Attributes java.lang.String sun.security.util.ManifestDigester sun.misc.BASE64Decoder int sun.security.util.ManifestDigester$Entry int int top java.util.Iterator
      StackMap stack:
        56: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 9 /* key */
        start local 9 // java.lang.String key
        57: .line 694
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            aload 9 /* 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 695
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.permittedAlgs:Ljava/util/Map;
            aload 9 /* 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 694
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        end local 9 // java.lang.String key
        60: .line 693
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 56
        61: .line 700
      StackMap locals: sun.security.util.SignatureFileVerifier java.util.jar.Attributes java.lang.String sun.security.util.ManifestDigester sun.misc.BASE64Decoder int sun.security.util.ManifestDigester$Entry int int
      StackMap stack:
            iload 8 /* validEntry */
            ifeq 65
            iload 7 /* weakAlgs */
            ifeq 65
        62: .line 701
            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 703
            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 701
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
            athrow
        65: .line 706
      StackMap locals:
      StackMap stack:
            iload 5 /* oneDigestVerified */
            ireturn
        end local 8 // boolean validEntry
        end local 7 // boolean weakAlgs
        end local 6 // sun.security.util.ManifestDigester$Entry mde
        end local 5 // boolean oneDigestVerified
        end local 4 // sun.misc.BASE64Decoder decoder
        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;
            0   66     4            decoder  Lsun/misc/BASE64Decoder;
            1   66     5  oneDigestVerified  Z
            2   66     6                mde  Lsun/security/util/ManifestDigester$Entry;
            3   66     7           weakAlgs  Z
            4   66     8         validEntry  Z
           11   52     9                 se  Ljava/util/Map$Entry<Ljava/lang/Object;Ljava/lang/Object;>;
           12   52    11                key  Ljava/lang/String;
           14   52    12          algorithm  Ljava/lang/String;
           19   52    13             digest  Ljava/security/MessageDigest;
           21   52    14                 ok  Z
           23   52    15           expected  [B
           25   26    16           computed  [B
           27   52    16           computed  [B
           57   60     9                key  Ljava/lang/String;
    Exceptions:
      throws java.io.IOException, java.security.SignatureException
    MethodParameters:
         Name  Flags
      sfAttr   
      name     
      md       
      decoder  

  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 718
            aconst_null
            astore 3 /* signers */
        start local 3 // java.util.ArrayList signers
         1: .line 720
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         2: goto 14
         3: .line 722
      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 723
            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 724
            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 725
            aload 3 /* signers */
            ifnonnull 8
         7: .line 726
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* signers */
         8: .line 730
      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 732
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            ifnull 13
        10: .line 733
            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 734
            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 733
            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 720
      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 738
            aload 3 /* signers */
            ifnull 17
        16: .line 739
            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 741
      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 756
            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 758
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 6
         3: .line 759
      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 760
            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 758
            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 762
            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 768
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         1: goto 5
         2: .line 769
      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 770
            iconst_1
            ireturn
         4: .line 768
      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 772
            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 779
            aload 1 /* set */
            aload 0 /* subset */
            if_acmpne 2
         1: .line 780
            iconst_1
            ireturn
         2: .line 783
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         3: goto 7
         4: .line 784
      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 785
            iconst_0
            ireturn
         6: .line 783
      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 787
            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 799
            aload 1 /* oldSigners */
            ifnonnull 2
            aload 0 /* signers */
            aload 2 /* newSigners */
            if_acmpne 2
         1: .line 800
            iconst_1
            ireturn
         2: .line 805
      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 806
            iconst_0
            ireturn
         4: .line 809
      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 810
            iconst_0
            ireturn
         6: .line 816
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         7: goto 16
         8: .line 818
      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 819
      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 817
            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 820
            iload 4 /* found */
            ifne 15
        14: .line 821
            iconst_0
            ireturn
        end local 4 // boolean found
        15: .line 816
      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 823
            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 829
            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 836
            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 837
      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 838
            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 839
            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 840
            return
         7: .line 836
      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 844
            aload 4 /* oldSigners */
            ifnonnull 12
        10: .line 845
            aload 1 /* newSigners */
            astore 5 /* cachedSigners */
        start local 5 // java.security.CodeSigner[] cachedSigners
        11: .line 846
            goto 20
        end local 5 // java.security.CodeSigner[] cachedSigners
        12: .line 848
      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 847
            astore 5 /* cachedSigners */
        start local 5 // java.security.CodeSigner[] cachedSigners
        14: .line 849
            aload 4 /* oldSigners */
            iconst_0
            aload 5 /* cachedSigners */
            iconst_0
        15: .line 850
            aload 4 /* oldSigners */
            arraylength
        16: .line 849
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        17: .line 851
            aload 1 /* newSigners */
            iconst_0
            aload 5 /* cachedSigners */
            aload 4 /* oldSigners */
            arraylength
        18: .line 852
            aload 1 /* newSigners */
            arraylength
        19: .line 851
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        20: .line 854
      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 855
            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 856
            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"
InnerClasses:
  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