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

  private static final sun.security.util.DisabledAlgorithmConstraints JAR_DISABLED_CHECK;
    descriptor: Lsun/security/util/DisabledAlgorithmConstraints;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

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

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

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

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

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

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

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

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

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

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

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 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 63
            new sun.security.util.DisabledAlgorithmConstraints
            dup
         2: .line 64
            ldc "jdk.jar.disabledAlgorithms"
         3: .line 63
            invokespecial sun.security.util.DisabledAlgorithmConstraints.<init>:(Ljava/lang/String;)V
         4: .line 62
            putstatic sun.security.util.SignatureFileVerifier.JAR_DISABLED_CHECK:Lsun/security/util/DisabledAlgorithmConstraints;
         5: .line 69
            ldc "-DIGEST-Manifest-Main-Attributes"
         6: .line 70
            getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
         7: .line 69
            invokevirtual java.lang.String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;
         8: .line 68
            putstatic sun.security.util.SignatureFileVerifier.ATTR_DIGEST:Ljava/lang/String;
         9: .line 739
            bipush 16
            newarray 5
            dup
            iconst_0
            bipush 48
            castore
            dup
            iconst_1
            bipush 49
            castore
            dup
            iconst_2
            bipush 50
            castore
            dup
            iconst_3
            bipush 51
            castore
            dup
            iconst_4
            bipush 52
            castore
            dup
            iconst_5
            bipush 53
            castore
            dup
            bipush 6
            bipush 54
            castore
            dup
            bipush 7
            bipush 55
            castore
            dup
            bipush 8
            bipush 56
            castore
            dup
            bipush 9
            bipush 57
            castore
            dup
            bipush 10
            bipush 97
            castore
            dup
            bipush 11
            bipush 98
            castore
            dup
            bipush 12
            bipush 99
            castore
            dup
            bipush 13
            bipush 100
            castore
            dup
            bipush 14
            bipush 101
            castore
            dup
            bipush 15
            bipush 102
            castore
        10: .line 738
            putstatic sun.security.util.SignatureFileVerifier.hexc:[C
        11: .line 739
            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 110
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 90
            aload 0 /* this */
            iconst_0
            putfield sun.security.util.SignatureFileVerifier.workaround:Z
         2: .line 93
            aload 0 /* this */
            aconst_null
            putfield sun.security.util.SignatureFileVerifier.certificateFactory:Ljava/security/cert/CertificateFactory;
         3: .line 96
            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 101
            aload 0 /* this */
            aconst_null
            putfield sun.security.util.SignatureFileVerifier.timestamp:Ljava/security/Timestamp;
         5: .line 118
            aconst_null
            astore 5 /* obj */
        start local 5 // java.lang.Object obj
         6: .line 120
            invokestatic sun.security.jca.Providers.startJarVerification:()Ljava/lang/Object;
            astore 5 /* obj */
         7: .line 121
            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 122
            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 123
            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 124
            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 125
            aload 5 /* obj */
            invokestatic sun.security.jca.Providers.stopJarVerification:(Ljava/lang/Object;)V
        13: .line 126
            aload 6
            athrow
        14: .line 125
      StackMap locals:
      StackMap stack:
            aload 5 /* obj */
            invokestatic sun.security.jca.Providers.stopJarVerification:(Ljava/lang/Object;)V
        15: .line 127
            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 128
            getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
            invokevirtual java.lang.String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;
        17: .line 127
            putfield sun.security.util.SignatureFileVerifier.name:Ljava/lang/String;
        18: .line 129
            aload 0 /* this */
            aload 2 /* md */
            putfield sun.security.util.SignatureFileVerifier.md:Lsun/security/util/ManifestDigester;
        19: .line 130
            aload 0 /* this */
            aload 1 /* signerCache */
            putfield sun.security.util.SignatureFileVerifier.signerCache:Ljava/util/ArrayList;
        20: .line 131
            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 139
            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 151
            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 160
            aload 0 /* this */
            aload 1 /* sfBytes */
            putfield sun.security.util.SignatureFileVerifier.sfBytes:[B
         1: .line 161
            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 174
            aload 0 /* s */
            ldc ".SF"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 5
         1: .line 175
            aload 0 /* s */
            ldc ".DSA"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 5
         2: .line 176
            aload 0 /* s */
            ldc ".RSA"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 5
         3: .line 177
            aload 0 /* s */
            ldc ".EC"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifne 5
         4: .line 174
            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 191
            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 192
            aload 0 /* name */
            ldc "META-INF/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 3
         2: .line 193
            iconst_0
            ireturn
         3: .line 195
      StackMap locals:
      StackMap stack:
            aload 0 /* name */
            bipush 9
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 0 /* name */
         4: .line 196
            aload 0 /* name */
            bipush 47
            invokevirtual java.lang.String.indexOf:(I)I
            iconst_m1
            if_icmpeq 6
         5: .line 197
            iconst_0
            ireturn
         6: .line 199
      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 200
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         8: .line 201
      StackMap locals:
      StackMap stack:
            aload 0 /* name */
            ldc "SIG-"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 23
         9: .line 205
            aload 0 /* name */
            bipush 46
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 1 /* extIndex */
        start local 1 // int extIndex
        10: .line 206
            iload 1 /* extIndex */
            iconst_m1
            if_icmpeq 22
        11: .line 207
            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 209
            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 210
      StackMap locals: int java.lang.String
      StackMap stack:
            iconst_0
            ireturn
        14: .line 213
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* index */
        start local 3 // int index
        15: goto 21
        16: .line 214
      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 216
            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 217
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 4 // char cc
        20: .line 213
      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 221
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 1 // int extIndex
        23: .line 223
      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 230
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.createdDigests:Ljava/util/HashMap;
            ifnonnull 2
         1: .line 231
            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 233
      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 235
            aload 2 /* digest */
            ifnonnull 8
         4: .line 237
            aload 1 /* algorithm */
            invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
            astore 2 /* digest */
         5: .line 238
            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 239
            goto 8
      StackMap locals: sun.security.util.SignatureFileVerifier java.lang.String java.security.MessageDigest
      StackMap stack: java.security.NoSuchAlgorithmException
         7: pop
         8: .line 243
      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 260
            aconst_null
            astore 3 /* obj */
        start local 3 // java.lang.Object obj
         1: .line 262
            invokestatic sun.security.jca.Providers.startJarVerification:()Ljava/lang/Object;
            astore 3 /* obj */
         2: .line 263
            aload 0 /* this */
            aload 1 /* signers */
            aload 2 /* manifestDigests */
            invokevirtual sun.security.util.SignatureFileVerifier.processImpl:(Ljava/util/Hashtable;Ljava/util/List;)V
         3: .line 264
            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 265
            aload 3 /* obj */
            invokestatic sun.security.jca.Providers.stopJarVerification:(Ljava/lang/Object;)V
         6: .line 266
            aload 4
            athrow
         7: .line 265
      StackMap locals:
      StackMap stack:
            aload 3 /* obj */
            invokestatic sun.security.jca.Providers.stopJarVerification:(Ljava/lang/Object;)V
         8: .line 268
            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 275
            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 276
            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 279
            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 278
            astore 4 /* version */
        start local 4 // java.lang.String version
         4: .line 281
            aload 4 /* version */
            ifnull 5
            aload 4 /* version */
            ldc "1.0"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 6
         5: .line 284
      StackMap locals: java.util.jar.Manifest java.lang.String
      StackMap stack:
            return
         6: .line 287
      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 289
            aload 5 /* infos */
            ifnonnull 11
         8: .line 290
            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 291
            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 290
            invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 295
      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 298
            aload 6 /* newSigners */
            ifnonnull 14
        13: .line 299
            return
        14: .line 305
      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 306
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            ifnull 18
        17: .line 307
            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 309
      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 310
            aload 0 /* this */
            aconst_null
            putfield sun.security.util.SignatureFileVerifier.timestamp:Ljava/security/Timestamp;
        20: .line 311
            goto 31
        21: .line 312
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.timestamp:Ljava/security/Timestamp;
            ifnonnull 24
        22: .line 313
            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 314
            goto 29
        24: .line 315
      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 316
            aload 7 /* s */
            invokevirtual java.security.CodeSigner.getTimestamp:()Ljava/security/Timestamp;
            invokevirtual java.security.Timestamp.getTimestamp:()Ljava/util/Date;
        26: .line 315
            invokevirtual java.util.Date.before:(Ljava/util/Date;)Z
        27: .line 316
            ifeq 29
        28: .line 317
            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 305
      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 323
      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 322
            astore 7 /* entries */
        start local 7 // java.util.Iterator entries
        33: .line 326
            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 329
            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 330
            new java.lang.SecurityException
            dup
        36: .line 331
            ldc "Invalid signature file digest for Manifest main attributes"
        37: .line 330
            invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
            athrow
        38: .line 337
      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 338
            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 340
            iload 8 /* manifestSigned */
            ifne 42
        41: .line 341
            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 343
      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 344
            aload 10 /* name */
            iconst_2
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 10 /* name */
        44: .line 346
      StackMap locals:
      StackMap stack:
            aload 10 /* name */
            ldc "/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 46
        45: .line 347
            aload 10 /* name */
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 10 /* name */
        46: .line 349
      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 351
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            ifnull 52
        48: .line 352
            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 355
            goto 52
      StackMap locals:
      StackMap stack:
        50: getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            ifnull 52
        51: .line 356
            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 335
      StackMap locals:
      StackMap stack:
            aload 7 /* entries */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 38
        53: .line 361
            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 362
            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 371
            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 372
            aload 3 /* permitted */
            ifnonnull 20
         2: .line 374
            getstatic sun.security.util.SignatureFileVerifier.JAR_DISABLED_CHECK:Lsun/security/util/DisabledAlgorithmConstraints;
            aload 2 /* algorithm */
         3: .line 375
            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 374
            invokevirtual sun.security.util.DisabledAlgorithmConstraints.permits:(Ljava/lang/String;Lsun/security/util/ConstraintsParameters;)V
         5: .line 376
            goto 18
      StackMap locals: sun.security.util.SignatureFileVerifier java.lang.String java.lang.String java.lang.Boolean
      StackMap stack: java.security.GeneralSecurityException
         6: astore 4 /* e */
        start local 4 // java.security.GeneralSecurityException e
         7: .line 377
            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 378
            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 379
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            ifnull 17
        10: .line 380
            aload 4 /* e */
            invokevirtual java.security.GeneralSecurityException.getMessage:()Ljava/lang/String;
            ifnull 13
        11: .line 381
            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 382
            goto 17
        13: .line 383
      StackMap locals: java.security.GeneralSecurityException
      StackMap stack:
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            aload 1 /* key */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ":  "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* algorithm */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        14: .line 384
            ldc " was disabled, no exception msg given."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        15: .line 383
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        16: .line 385
            aload 4 /* e */
            invokevirtual java.security.GeneralSecurityException.printStackTrace:()V
        17: .line 388
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 4 // java.security.GeneralSecurityException e
        18: .line 391
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.permittedAlgs:Ljava/util/Map;
            aload 2 /* algorithm */
            getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        19: .line 392
            iconst_1
            ireturn
        20: .line 396
      StackMap locals:
      StackMap stack:
            aload 3 /* permitted */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
        end local 3 // java.lang.Boolean permitted
        end local 2 // java.lang.String algorithm
        end local 1 // java.lang.String key
        end local 0 // sun.security.util.SignatureFileVerifier this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   21     0       this  Lsun/security/util/SignatureFileVerifier;
            0   21     1        key  Ljava/lang/String;
            0   21     2  algorithm  Ljava/lang/String;
            1   21     3  permitted  Ljava/lang/Boolean;
            7   18     4          e  Ljava/security/GeneralSecurityException;
      Exception table:
        from    to  target  type
           2     5       6  Class java.security.GeneralSecurityException
    MethodParameters:
           Name  Flags
      key        
      algorithm  

  java.lang.String getWeakAlgorithms(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // sun.security.util.SignatureFileVerifier this
        start local 1 // java.lang.String header
         0: .line 405
            ldc ""
            astore 2 /* w */
        start local 2 // java.lang.String w
         1: .line 407
            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 408
            aload 3 /* key */
            aload 1 /* header */
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 5
         4: .line 409
            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 407
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 412
            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 413
            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 414
            aload 3 /* e */
            invokevirtual java.lang.RuntimeException.getMessage:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        10: .line 413
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 2 /* w */
        end local 3 // java.lang.RuntimeException e
        11: .line 419
      StackMap locals:
      StackMap stack:
            aload 2 /* w */
            invokevirtual java.lang.String.length:()I
            ifne 13
        12: .line 420
            ldc "Unknown Algorithm(s)"
            areturn
        13: .line 423
      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 434
            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 435
            iconst_0
            istore 5 /* manifestSigned */
        start local 5 // boolean manifestSigned
         2: .line 437
            iconst_1
            istore 6 /* weakAlgs */
        start local 6 // boolean weakAlgs
         3: .line 439
            iconst_0
            istore 7 /* validEntry */
        start local 7 // boolean validEntry
         4: .line 442
            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 444
            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 446
            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 448
            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 449
            iconst_1
            istore 7 /* validEntry */
        10: .line 452
            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 453
            goto 29
        12: .line 458
      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 460
            aload 3 /* manifestDigests */
            aload 10 /* key */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        14: .line 461
            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 462
            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 463
            aload 12 /* digest */
            ifnull 29
        17: .line 464
            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 466
            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 465
            astore 14 /* expectedHash */
        start local 14 // byte[] expectedHash
        20: .line 468
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            ifnull 27
        21: .line 469
            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 470
            aload 11 /* algorithm */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        23: .line 469
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        24: .line 471
            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 472
            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 473
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            invokevirtual sun.security.util.Debug.println:()V
        27: .line 476
      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 477
            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 442
      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 485
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            ifnull 38
        31: .line 486
            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 487
            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 488
            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 489
            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 488
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        end local 8 // java.lang.String key
        37: .line 487
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 33
        38: .line 494
      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 495
            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 497
            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 495
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
            athrow
        42: .line 499
      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 505
            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 506
            iconst_1
            istore 4 /* attrsVerified */
        start local 4 // boolean attrsVerified
         2: .line 508
            iconst_1
            istore 5 /* weakAlgs */
        start local 5 // boolean weakAlgs
         3: .line 510
            iconst_0
            istore 6 /* validEntry */
        start local 6 // boolean validEntry
         4: .line 514
            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 515
            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 517
            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 519
            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 518
            astore 10 /* algorithm */
        start local 10 // java.lang.String algorithm
        10: .line 520
            iconst_1
            istore 6 /* validEntry */
        11: .line 523
            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 524
            goto 34
        13: .line 529
      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 531
            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 532
            aload 11 /* digest */
            ifnull 34
        16: .line 534
            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 533
            astore 12 /* mde */
        start local 12 // sun.security.util.ManifestDigester$Entry mde
        18: .line 535
            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 537
            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 536
            astore 14 /* expectedHash */
        start local 14 // byte[] expectedHash
        21: .line 539
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            ifnull 28
        22: .line 540
            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 542
            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 540
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        25: .line 543
            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 544
            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 545
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            invokevirtual sun.security.util.Debug.println:()V
        28: .line 548
      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 552
            iconst_0
            istore 4 /* attrsVerified */
        30: .line 553
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            ifnull 35
        31: .line 554
            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 556
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            invokevirtual sun.security.util.Debug.println:()V
        33: .line 558
            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 514
      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 564
      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 565
            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 566
            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 567
            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 568
            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 567
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        end local 7 // java.lang.String key
        42: .line 566
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 38
        43: .line 573
      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 574
            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 575
            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 576
            ldc "Disabled algorithm(s) used: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        47: .line 577
            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 574
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
            athrow
        49: .line 583
      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 600
            iconst_0
            istore 4 /* oneDigestVerified */
        start local 4 // boolean oneDigestVerified
         1: .line 601
            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 603
            iconst_1
            istore 6 /* weakAlgs */
        start local 6 // boolean weakAlgs
         3: .line 605
            iconst_0
            istore 7 /* validEntry */
        start local 7 // boolean validEntry
         4: .line 607
            aload 5 /* mde */
            ifnonnull 8
         5: .line 608
            new java.lang.SecurityException
            dup
         6: .line 609
            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 608
            invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 612
      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 617
            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 618
            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 620
            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 622
            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 623
            iconst_1
            istore 7 /* validEntry */
        15: .line 626
            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 627
            goto 52
        17: .line 632
      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 634
            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 636
            aload 12 /* digest */
            ifnull 52
        20: .line 637
            iconst_0
            istore 13 /* ok */
        start local 13 // boolean ok
        21: .line 640
            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 639
            astore 14 /* expected */
        start local 14 // byte[] expected
        23: .line 642
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.workaround:Z
            ifeq 26
        24: .line 643
            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 644
            goto 27
        end local 15 // byte[] computed
        26: .line 645
      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 648
      StackMap locals: byte[]
      StackMap stack:
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            ifnull 34
        28: .line 649
            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 650
            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 649
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        31: .line 651
            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 652
            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 653
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            invokevirtual sun.security.util.Debug.println:()V
        34: .line 656
      StackMap locals:
      StackMap stack:
            aload 15 /* computed */
            aload 14 /* expected */
            invokestatic java.security.MessageDigest.isEqual:([B[B)Z
            ifeq 38
        35: .line 657
            iconst_1
            istore 4 /* oneDigestVerified */
        36: .line 658
            iconst_1
            istore 13 /* ok */
        37: .line 659
            goto 47
        38: .line 661
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.util.SignatureFileVerifier.workaround:Z
            ifne 47
        39: .line 662
            aload 5 /* mde */
            aload 12 /* digest */
            invokevirtual sun.security.util.ManifestDigester$Entry.digestWorkaround:(Ljava/security/MessageDigest;)[B
            astore 15 /* computed */
        40: .line 663
            aload 15 /* computed */
            aload 14 /* expected */
            invokestatic java.security.MessageDigest.isEqual:([B[B)Z
            ifeq 47
        41: .line 664
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            ifnull 44
        42: .line 665
            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 666
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            invokevirtual sun.security.util.Debug.println:()V
        44: .line 668
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.security.util.SignatureFileVerifier.workaround:Z
        45: .line 669
            iconst_1
            istore 4 /* oneDigestVerified */
        46: .line 670
            iconst_1
            istore 13 /* ok */
        47: .line 674
      StackMap locals:
      StackMap stack:
            iload 13 /* ok */
            ifne 52
        48: .line 675
            new java.lang.SecurityException
            dup
            new java.lang.StringBuilder
            dup
            ldc "invalid "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        49: .line 676
            aload 12 /* digest */
            invokevirtual java.security.MessageDigest.getAlgorithm:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        50: .line 677
            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 675
            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 617
      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 684
      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 685
            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 686
            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 687
            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 688
            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 687
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        end local 8 // java.lang.String key
        60: .line 686
      StackMap locals:
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 56
        61: .line 693
      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 694
            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 696
            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 694
            invokespecial java.security.SignatureException.<init>:(Ljava/lang/String;)V
            athrow
        65: .line 699
      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 711
            aconst_null
            astore 3 /* signers */
        start local 3 // java.util.ArrayList signers
         1: .line 713
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         2: goto 14
         3: .line 715
      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 716
            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 717
            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 718
            aload 3 /* signers */
            ifnonnull 8
         7: .line 719
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* signers */
         8: .line 722
      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 724
            getstatic sun.security.util.SignatureFileVerifier.debug:Lsun/security/util/Debug;
            ifnull 13
        10: .line 725
            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 726
            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 725
            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 713
      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 730
            aload 3 /* signers */
            ifnull 17
        16: .line 731
            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 733
      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 748
            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 750
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 6
         3: .line 751
      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 752
            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 750
            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 754
            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 760
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         1: goto 5
         2: .line 761
      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 762
            iconst_1
            ireturn
         4: .line 760
      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 764
            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 771
            aload 1 /* set */
            aload 0 /* subset */
            if_acmpne 2
         1: .line 772
            iconst_1
            ireturn
         2: .line 775
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         3: goto 7
         4: .line 776
      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 777
            iconst_0
            ireturn
         6: .line 775
      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 779
            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 791
            aload 1 /* oldSigners */
            ifnonnull 2
            aload 0 /* signers */
            aload 2 /* newSigners */
            if_acmpne 2
         1: .line 792
            iconst_1
            ireturn
         2: .line 797
      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 798
            iconst_0
            ireturn
         4: .line 801
      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 802
            iconst_0
            ireturn
         6: .line 808
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         7: goto 16
         8: .line 810
      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 811
      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 809
            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 812
            iload 4 /* found */
            ifne 15
        14: .line 813
            iconst_0
            ireturn
        end local 4 // boolean found
        15: .line 808
      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 815
            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 821
            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 828
            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 829
      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 830
            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 831
            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 832
            return
         7: .line 828
      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 836
            aload 4 /* oldSigners */
            ifnonnull 12
        10: .line 837
            aload 1 /* newSigners */
            astore 5 /* cachedSigners */
        start local 5 // java.security.CodeSigner[] cachedSigners
        11: .line 838
            goto 20
        end local 5 // java.security.CodeSigner[] cachedSigners
        12: .line 840
      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 839
            astore 5 /* cachedSigners */
        start local 5 // java.security.CodeSigner[] cachedSigners
        14: .line 841
            aload 4 /* oldSigners */
            iconst_0
            aload 5 /* cachedSigners */
            iconst_0
        15: .line 842
            aload 4 /* oldSigners */
            arraylength
        16: .line 841
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        17: .line 843
            aload 1 /* newSigners */
            iconst_0
            aload 5 /* cachedSigners */
            aload 4 /* oldSigners */
            arraylength
        18: .line 844
            aload 1 /* newSigners */
            arraylength
        19: .line 843
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        20: .line 846
      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 847
            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 848
            return
        end local 5 // java.security.CodeSigner[] cachedSigners
        end local 4 // java.security.CodeSigner[] oldSigners
        end local 3 // java.lang.String name
        end local 2 // java.util.Hashtable signers
        end local 1 // java.security.CodeSigner[] newSigners
        end local 0 // sun.security.util.SignatureFileVerifier this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   23     0           this  Lsun/security/util/SignatureFileVerifier;
            0   23     1     newSigners  [Ljava/security/CodeSigner;
            0   23     2        signers  Ljava/util/Hashtable<Ljava/lang/String;[Ljava/security/CodeSigner;>;
            0   23     3           name  Ljava/lang/String;
            1   23     4     oldSigners  [Ljava/security/CodeSigner;
            4    8     5  cachedSigners  [Ljava/security/CodeSigner;
           11   12     5  cachedSigners  [Ljava/security/CodeSigner;
           14   23     5  cachedSigners  [Ljava/security/CodeSigner;
            2    9     6              i  I
    Signature: ([Ljava/security/CodeSigner;Ljava/util/Hashtable<Ljava/lang/String;[Ljava/security/CodeSigner;>;Ljava/lang/String;)V
    MethodParameters:
            Name  Flags
      newSigners  
      signers     
      name        
}
SourceFile: "SignatureFileVerifier.java"
InnerClasses:
  public 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