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

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

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

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

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

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

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

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

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

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

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

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

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

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

  public void <init>(java.util.ArrayList<java.security.CodeSigner[]>, sun.security.util.ManifestDigester, java.lang.String, );
    descriptor: (Ljava/util/ArrayList;Lsun/security/util/ManifestDigester;Ljava/lang/String;[B)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=5
        start local 0 // sun.security.util.SignatureFileVerifier this
        start local 1 // java.util.ArrayList signerCache
        start local 2 // sun.security.util.ManifestDigester md
        start local 3 // java.lang.String name
        start local 4 // byte[] rawBytes
         0: .line 116
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 96
            aload 0 /* this */
            iconst_0
            putfield sun.security.util.SignatureFileVerifier.workaround:Z
         2: .line 99
            aload 0 /* this */
            aconst_null
            putfield sun.security.util.SignatureFileVerifier.certificateFactory:Ljava/security/cert/CertificateFactory;
         3: .line 102
            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 107
            aload 0 /* this */
            aconst_null
            putfield sun.security.util.SignatureFileVerifier.timestamp:Ljava/security/Timestamp;
         5: .line 124
            aconst_null
            astore 5 /* obj */
        start local 5 // java.lang.Object obj
         6: .line 126
            invokestatic sun.security.jca.Providers.startJarVerification:()Ljava/lang/Object;
            astore 5 /* obj */
         7: .line 127
            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 128
            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 129
            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 130
            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 131
            aload 5 /* obj */
            invokestatic sun.security.jca.Providers.stopJarVerification:(Ljava/lang/Object;)V
        13: .line 132
            aload 6
            athrow
        14: .line 131
      StackMap locals:
      StackMap stack:
            aload 5 /* obj */
            invokestatic sun.security.jca.Providers.stopJarVerification:(Ljava/lang/Object;)V
        15: .line 133
            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 134
            getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
            invokevirtual java.lang.String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;
        17: .line 133
            putfield sun.security.util.SignatureFileVerifier.name:Ljava/lang/String;
        18: .line 135
            aload 0 /* this */
            aload 2 /* md */
            putfield sun.security.util.SignatureFileVerifier.md:Lsun/security/util/ManifestDigester;
        19: .line 136
            aload 0 /* this */
            aload 1 /* signerCache */
            putfield sun.security.util.SignatureFileVerifier.signerCache:Ljava/util/ArrayList;
        20: .line 137
            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 145
            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 157
            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 166
            aload 0 /* this */
            aload 1 /* sfBytes */
            putfield sun.security.util.SignatureFileVerifier.sfBytes:[B
         1: .line 167
            return
        end local 1 // byte[] sfBytes
        end local 0 // sun.security.util.SignatureFileVerifier this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lsun/security/util/SignatureFileVerifier;
            0    2     1  sfBytes  [B
    MethodParameters:
         Name  Flags
      sfBytes  

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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