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 744
            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 743
            putstatic sun.security.util.SignatureFileVerifier.hexc:[C
        11: .line 744
            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 363
            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   55     0             this  Lsun/security/util/SignatureFileVerifier;
            0   55     1          signers  Ljava/util/Hashtable<Ljava/lang/String;[Ljava/security/CodeSigner;>;
            0   55     2  manifestDigests  Ljava/util/List<Ljava/lang/Object;>;
            1   55     3               sf  Ljava/util/jar/Manifest;
            4   55     4          version  Ljava/lang/String;
            7   55     5            infos  [Lsun/security/pkcs/SignerInfo;
           12   55     6          decoder  Lsun/misc/BASE64Decoder;
           13   55     7       newSigners  [Ljava/security/CodeSigner;
           17   30     8                s  Ljava/security/CodeSigner;
           34   55     8          entries  Ljava/util/Iterator<Ljava/util/Map$Entry<Ljava/lang/String;Ljava/util/jar/Attributes;>;>;
           35   55     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 372
            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 373
            aload 3 /* permitted */
            ifnonnull 20
         2: .line 375
            getstatic sun.security.util.SignatureFileVerifier.JAR_DISABLED_CHECK:Lsun/security/util/DisabledAlgorithmConstraints;
            aload 2 /* algorithm */
         3: .line 376
            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 375
            invokevirtual sun.security.util.DisabledAlgorithmConstraints.permits:(Ljava/lang/String;Lsun/security/util/ConstraintsParameters;)V
         5: .line 377
            goto 18
      StackMap locals: sun.security.util.SignatureFileVerifier java.lang.String java.lang.String java.lang.Boolean
      StackMap stack: java.security.cert.CertPathValidatorException
         6: astore 4 /* e */
        start local 4 // java.security.cert.CertPathValidatorException e
         7: .line 378
            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 379
            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 380
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            ifnull 17
        10: .line 381
            aload 4 /* e */
            invokevirtual java.security.cert.CertPathValidatorException.getMessage:()Ljava/lang/String;
            ifnull 13
        11: .line 382
            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.cert.CertPathValidatorException.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 383
            goto 17
        13: .line 384
      StackMap locals: java.security.cert.CertPathValidatorException
      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 385
            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 384
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        16: .line 386
            aload 4 /* e */
            invokevirtual java.security.cert.CertPathValidatorException.printStackTrace:()V
        17: .line 389
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 4 // java.security.cert.CertPathValidatorException e
        18: .line 392
      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 393
            iconst_1
            ireturn
        20: .line 397
      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/cert/CertPathValidatorException;
      Exception table:
        from    to  target  type
           2     5       6  Class java.security.cert.CertPathValidatorException
    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 406
            ldc ""
            astore 2 /* w */
        start local 2 // java.lang.String w
         1: .line 408
            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 409
            aload 3 /* key */
            aload 1 /* header */
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 5
         4: .line 410
            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 408
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 413
            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 414
            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 415
            aload 3 /* e */
            invokevirtual java.lang.RuntimeException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        10: .line 414
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* w */
        end local 3 // java.lang.RuntimeException e
        11: .line 420
      StackMap locals:
      StackMap stack:
            aload 2 /* w */
            invokevirtual java.lang.String.length:()I
            ifne 13
        12: .line 421
            ldc "Unknown Algorithm(s)"
            areturn
        13: .line 424
      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 436
            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 437
            iconst_0
            istore 6 /* manifestSigned */
        start local 6 // boolean manifestSigned
         2: .line 439
            iconst_1
            istore 7 /* weakAlgs */
        start local 7 // boolean weakAlgs
         3: .line 441
            iconst_0
            istore 8 /* validEntry */
        start local 8 // boolean validEntry
         4: .line 444
            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 446
            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 448
            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 450
            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 451
            iconst_1
            istore 8 /* validEntry */
        10: .line 454
            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 455
            goto 29
        12: .line 460
      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 462
            aload 4 /* manifestDigests */
            aload 11 /* key */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        14: .line 463
            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 464
            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 465
            aload 13 /* digest */
            ifnull 29
        17: .line 466
            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 468
            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 467
            astore 15 /* expectedHash */
        start local 15 // byte[] expectedHash
        20: .line 470
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            ifnull 27
        21: .line 471
            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 472
            aload 12 /* algorithm */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        23: .line 471
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        24: .line 473
            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 474
            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 475
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            invokevirtual sun.security.util.Debug.println:()V
        27: .line 478
      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 479
            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 444
      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 487
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            ifnull 38
        31: .line 488
            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 489
            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 490
            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 491
            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 490
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        end local 9 // java.lang.String key
        37: .line 489
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 33
        38: .line 496
      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 497
            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 499
            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 497
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
            athrow
        42: .line 501
      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 509
            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 510
            iconst_1
            istore 5 /* attrsVerified */
        start local 5 // boolean attrsVerified
         2: .line 512
            iconst_1
            istore 6 /* weakAlgs */
        start local 6 // boolean weakAlgs
         3: .line 514
            iconst_0
            istore 7 /* validEntry */
        start local 7 // boolean validEntry
         4: .line 518
            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 519
            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 521
            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 523
            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 522
            astore 11 /* algorithm */
        start local 11 // java.lang.String algorithm
        10: .line 524
            iconst_1
            istore 7 /* validEntry */
        11: .line 527
            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 528
            goto 34
        13: .line 533
      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 535
            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 536
            aload 12 /* digest */
            ifnull 34
        16: .line 538
            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 537
            astore 13 /* mde */
        start local 13 // sun.security.util.ManifestDigester$Entry mde
        18: .line 539
            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 541
            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 540
            astore 15 /* expectedHash */
        start local 15 // byte[] expectedHash
        21: .line 543
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            ifnull 28
        22: .line 544
            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 546
            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 544
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        25: .line 547
            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 548
            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 549
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            invokevirtual sun.security.util.Debug.println:()V
        28: .line 552
      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 556
            iconst_0
            istore 5 /* attrsVerified */
        30: .line 557
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            ifnull 35
        31: .line 558
            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 560
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            invokevirtual sun.security.util.Debug.println:()V
        33: .line 562
            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 518
      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 568
      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 569
            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 570
            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 571
            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 572
            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 571
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        end local 8 // java.lang.String key
        42: .line 570
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 38
        43: .line 577
      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 578
            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 579
            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 580
            ldc "Disabled algorithm(s) used: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        47: .line 581
            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 578
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
            athrow
        49: .line 587
      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 605
            iconst_0
            istore 5 /* oneDigestVerified */
        start local 5 // boolean oneDigestVerified
         1: .line 606
            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 608
            iconst_1
            istore 7 /* weakAlgs */
        start local 7 // boolean weakAlgs
         3: .line 610
            iconst_0
            istore 8 /* validEntry */
        start local 8 // boolean validEntry
         4: .line 612
            aload 6 /* mde */
            ifnonnull 8
         5: .line 613
            new java.lang.SecurityException
            dup
         6: .line 614
            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 613
            invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 617
      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 622
            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 623
            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 625
            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 627
            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 628
            iconst_1
            istore 8 /* validEntry */
        15: .line 631
            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 632
            goto 52
        17: .line 637
      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 639
            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 641
            aload 13 /* digest */
            ifnull 52
        20: .line 642
            iconst_0
            istore 14 /* ok */
        start local 14 // boolean ok
        21: .line 645
            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 644
            astore 15 /* expected */
        start local 15 // byte[] expected
        23: .line 647
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.workaround:Z
            ifeq 26
        24: .line 648
            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 649
            goto 27
        end local 16 // byte[] computed
        26: .line 650
      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 653
      StackMap locals: byte[]
      StackMap stack:
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            ifnull 34
        28: .line 654
            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 655
            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 654
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        31: .line 656
            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 657
            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 658
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            invokevirtual sun.security.util.Debug.println:()V
        34: .line 661
      StackMap locals:
      StackMap stack:
            aload 16 /* computed */
            aload 15 /* expected */
            invokestatic java.security.MessageDigest.isEqual:([B[B)Z
            ifeq 38
        35: .line 662
            iconst_1
            istore 5 /* oneDigestVerified */
        36: .line 663
            iconst_1
            istore 14 /* ok */
        37: .line 664
            goto 47
        38: .line 666
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.workaround:Z
            ifne 47
        39: .line 667
            aload 6 /* mde */
            aload 13 /* digest */
            invokevirtual sun.security.util.ManifestDigester$Entry.digestWorkaround:(Ljava/security/MessageDigest;)[B
            astore 16 /* computed */
        40: .line 668
            aload 16 /* computed */
            aload 15 /* expected */
            invokestatic java.security.MessageDigest.isEqual:([B[B)Z
            ifeq 47
        41: .line 669
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            ifnull 44
        42: .line 670
            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 671
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            invokevirtual sun.security.util.Debug.println:()V
        44: .line 673
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.security.util.SignatureFileVerifier.workaround:Z
        45: .line 674
            iconst_1
            istore 5 /* oneDigestVerified */
        46: .line 675
            iconst_1
            istore 14 /* ok */
        47: .line 679
      StackMap locals:
      StackMap stack:
            iload 14 /* ok */
            ifne 52
        48: .line 680
            new java.lang.SecurityException
            dup
            new java.lang.StringBuilder
            dup
            ldc "invalid "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        49: .line 681
            aload 13 /* digest */
            invokevirtual java.security.MessageDigest.getAlgorithm:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        50: .line 682
            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 680
            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 622
      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 689
      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 690
            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 691
            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 692
            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 693
            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 692
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        end local 9 // java.lang.String key
        60: .line 691
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 56
        61: .line 698
      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 699
            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 701
            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 699
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
            athrow
        65: .line 704
      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 716
            aconst_null
            astore 3 /* signers */
        start local 3 // java.util.ArrayList signers
         1: .line 718
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         2: goto 14
         3: .line 720
      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 721
            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 722
            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 723
            aload 3 /* signers */
            ifnonnull 8
         7: .line 724
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* signers */
         8: .line 727
      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 729
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            ifnull 13
        10: .line 730
            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 731
            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 730
            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 718
      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 735
            aload 3 /* signers */
            ifnull 17
        16: .line 736
            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 738
      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 753
            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 755
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 6
         3: .line 756
      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 757
            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 755
            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 759
            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 765
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         1: goto 5
         2: .line 766
      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 767
            iconst_1
            ireturn
         4: .line 765
      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 769
            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 776
            aload 1 /* set */
            aload 0 /* subset */
            if_acmpne 2
         1: .line 777
            iconst_1
            ireturn
         2: .line 780
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         3: goto 7
         4: .line 781
      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 782
            iconst_0
            ireturn
         6: .line 780
      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 784
            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 796
            aload 1 /* oldSigners */
            ifnonnull 2
            aload 0 /* signers */
            aload 2 /* newSigners */
            if_acmpne 2
         1: .line 797
            iconst_1
            ireturn
         2: .line 802
      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 803
            iconst_0
            ireturn
         4: .line 806
      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 807
            iconst_0
            ireturn
         6: .line 813
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         7: goto 16
         8: .line 815
      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 816
      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 814
            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 817
            iload 4 /* found */
            ifne 15
        14: .line 818
            iconst_0
            ireturn
        end local 4 // boolean found
        15: .line 813
      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 820
            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 826
            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 833
            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 834
      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 835
            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 836
            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 837
            return
         7: .line 833
      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 841
            aload 4 /* oldSigners */
            ifnonnull 12
        10: .line 842
            aload 1 /* newSigners */
            astore 5 /* cachedSigners */
        start local 5 // java.security.CodeSigner[] cachedSigners
        11: .line 843
            goto 20
        end local 5 // java.security.CodeSigner[] cachedSigners
        12: .line 845
      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 844
            astore 5 /* cachedSigners */
        start local 5 // java.security.CodeSigner[] cachedSigners
        14: .line 846
            aload 4 /* oldSigners */
            iconst_0
            aload 5 /* cachedSigners */
            iconst_0
        15: .line 847
            aload 4 /* oldSigners */
            arraylength
        16: .line 846
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        17: .line 848
            aload 1 /* newSigners */
            iconst_0
            aload 5 /* cachedSigners */
            aload 4 /* oldSigners */
            arraylength
        18: .line 849
            aload 1 /* newSigners */
            arraylength
        19: .line 848
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        20: .line 851
      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 852
            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 853
            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