public class sun.security.util.ManifestEntryVerifier
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.security.util.ManifestEntryVerifier
  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

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

  java.util.ArrayList<java.security.MessageDigest> digests;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0000) 
    Signature: Ljava/util/ArrayList<Ljava/security/MessageDigest;>;

  java.util.ArrayList<byte[]> manifestHashes;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0000) 
    Signature: Ljava/util/ArrayList<[B>;

  private sun.misc.BASE64Decoder decoder;
    descriptor: Lsun/misc/BASE64Decoder;
    flags: (0x0002) ACC_PRIVATE

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

  private java.util.jar.Manifest man;
    descriptor: Ljava/util/jar/Manifest;
    flags: (0x0002) ACC_PRIVATE

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

  private java.util.jar.JarEntry entry;
    descriptor: Ljava/util/jar/JarEntry;
    flags: (0x0002) ACC_PRIVATE

  private java.security.CodeSigner[] signers;
    descriptor: [Ljava/security/CodeSigner;
    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 45
            ldc "jar"
            invokestatic sun.security.util.Debug.getInstance:(Ljava/lang/String;)Lsun/security/util/Debug;
            putstatic sun.security.util.ManifestEntryVerifier.debug:Lsun/security/util/Debug;
         1: .line 239
            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
         2: .line 238
            putstatic sun.security.util.ManifestEntryVerifier.hexc:[C
         3: .line 239
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.util.jar.Manifest);
    descriptor: (Ljava/util/jar/Manifest;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // sun.security.util.ManifestEntryVerifier this
        start local 1 // java.util.jar.Manifest man
         0: .line 79
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 66
            aload 0 /* this */
            aconst_null
            putfield sun.security.util.ManifestEntryVerifier.decoder:Lsun/misc/BASE64Decoder;
         2: .line 67
            aload 0 /* this */
            aconst_null
            putfield sun.security.util.ManifestEntryVerifier.name:Ljava/lang/String;
         3: .line 70
            aload 0 /* this */
            iconst_1
            putfield sun.security.util.ManifestEntryVerifier.skip:Z
         4: .line 74
            aload 0 /* this */
            aconst_null
            putfield sun.security.util.ManifestEntryVerifier.signers:[Ljava/security/CodeSigner;
         5: .line 81
            aload 0 /* this */
            new java.util.HashMap
            dup
            bipush 11
            invokespecial java.util.HashMap.<init>:(I)V
            putfield sun.security.util.ManifestEntryVerifier.createdDigests:Ljava/util/HashMap;
         6: .line 82
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield sun.security.util.ManifestEntryVerifier.digests:Ljava/util/ArrayList;
         7: .line 83
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield sun.security.util.ManifestEntryVerifier.manifestHashes:Ljava/util/ArrayList;
         8: .line 84
            aload 0 /* this */
            new sun.misc.BASE64Decoder
            dup
            invokespecial sun.misc.BASE64Decoder.<init>:()V
            putfield sun.security.util.ManifestEntryVerifier.decoder:Lsun/misc/BASE64Decoder;
         9: .line 85
            aload 0 /* this */
            aload 1 /* man */
            putfield sun.security.util.ManifestEntryVerifier.man:Ljava/util/jar/Manifest;
        10: .line 86
            return
        end local 1 // java.util.jar.Manifest man
        end local 0 // sun.security.util.ManifestEntryVerifier this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lsun/security/util/ManifestEntryVerifier;
            0   11     1   man  Ljava/util/jar/Manifest;
    MethodParameters:
      Name  Flags
      man   

  public void setEntry(java.lang.String, java.util.jar.JarEntry);
    descriptor: (Ljava/lang/String;Ljava/util/jar/JarEntry;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=9, args_size=3
        start local 0 // sun.security.util.ManifestEntryVerifier this
        start local 1 // java.lang.String name
        start local 2 // java.util.jar.JarEntry entry
         0: .line 97
            aload 0 /* this */
            getfield sun.security.util.ManifestEntryVerifier.digests:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.clear:()V
         1: .line 98
            aload 0 /* this */
            getfield sun.security.util.ManifestEntryVerifier.manifestHashes:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.clear:()V
         2: .line 99
            aload 0 /* this */
            aload 1 /* name */
            putfield sun.security.util.ManifestEntryVerifier.name:Ljava/lang/String;
         3: .line 100
            aload 0 /* this */
            aload 2 /* entry */
            putfield sun.security.util.ManifestEntryVerifier.entry:Ljava/util/jar/JarEntry;
         4: .line 102
            aload 0 /* this */
            iconst_1
            putfield sun.security.util.ManifestEntryVerifier.skip:Z
         5: .line 103
            aload 0 /* this */
            aconst_null
            putfield sun.security.util.ManifestEntryVerifier.signers:[Ljava/security/CodeSigner;
         6: .line 105
            aload 0 /* this */
            getfield sun.security.util.ManifestEntryVerifier.man:Ljava/util/jar/Manifest;
            ifnull 7
            aload 1 /* name */
            ifnonnull 8
         7: .line 106
      StackMap locals:
      StackMap stack:
            return
         8: .line 112
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield sun.security.util.ManifestEntryVerifier.skip:Z
         9: .line 114
            aload 0 /* this */
            getfield sun.security.util.ManifestEntryVerifier.man:Ljava/util/jar/Manifest;
            aload 1 /* name */
            invokevirtual java.util.jar.Manifest.getAttributes:(Ljava/lang/String;)Ljava/util/jar/Attributes;
            astore 3 /* attr */
        start local 3 // java.util.jar.Attributes attr
        10: .line 115
            aload 3 /* attr */
            ifnonnull 16
        11: .line 119
            aload 0 /* this */
            getfield sun.security.util.ManifestEntryVerifier.man:Ljava/util/jar/Manifest;
            new java.lang.StringBuilder
            dup
            ldc "./"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.jar.Manifest.getAttributes:(Ljava/lang/String;)Ljava/util/jar/Attributes;
            astore 3 /* attr */
        12: .line 120
            aload 3 /* attr */
            ifnonnull 16
        13: .line 121
            aload 0 /* this */
            getfield sun.security.util.ManifestEntryVerifier.man:Ljava/util/jar/Manifest;
            new java.lang.StringBuilder
            dup
            ldc "/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.util.jar.Manifest.getAttributes:(Ljava/lang/String;)Ljava/util/jar/Attributes;
            astore 3 /* attr */
        14: .line 122
            aload 3 /* attr */
            ifnonnull 16
        15: .line 123
            return
        16: .line 127
      StackMap locals: java.util.jar.Attributes
      StackMap stack:
            aload 3 /* attr */
            invokevirtual java.util.jar.Attributes.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 34
      StackMap locals: sun.security.util.ManifestEntryVerifier java.lang.String java.util.jar.JarEntry java.util.jar.Attributes top java.util.Iterator
      StackMap stack:
        17: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 4 /* se */
        start local 4 // java.util.Map$Entry se
        18: .line 128
            aload 4 /* se */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            astore 6 /* key */
        start local 6 // java.lang.String key
        19: .line 130
            aload 6 /* 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 34
        20: .line 132
            aload 6 /* key */
            iconst_0
            aload 6 /* key */
            invokevirtual java.lang.String.length:()I
            bipush 7
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 7 /* algorithm */
        start local 7 // java.lang.String algorithm
        21: .line 134
            aload 0 /* this */
            getfield sun.security.util.ManifestEntryVerifier.createdDigests:Ljava/util/HashMap;
            aload 7 /* algorithm */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.security.MessageDigest
            astore 8 /* digest */
        start local 8 // java.security.MessageDigest digest
        22: .line 136
            aload 8 /* digest */
            ifnonnull 28
        23: .line 140
            aload 7 /* algorithm */
            getstatic sun.security.util.ManifestEntryVerifier$SunProviderHolder.instance:Ljava/security/Provider;
        24: .line 139
            invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;Ljava/security/Provider;)Ljava/security/MessageDigest;
            astore 8 /* digest */
        25: .line 141
            aload 0 /* this */
            getfield sun.security.util.ManifestEntryVerifier.createdDigests:Ljava/util/HashMap;
            aload 7 /* algorithm */
            aload 8 /* digest */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        26: .line 142
            goto 28
      StackMap locals: sun.security.util.ManifestEntryVerifier java.lang.String java.util.jar.JarEntry java.util.jar.Attributes java.util.Map$Entry java.util.Iterator java.lang.String java.lang.String java.security.MessageDigest
      StackMap stack: java.security.NoSuchAlgorithmException
        27: pop
        28: .line 147
      StackMap locals:
      StackMap stack:
            aload 8 /* digest */
            ifnull 34
        29: .line 148
            aload 8 /* digest */
            invokevirtual java.security.MessageDigest.reset:()V
        30: .line 149
            aload 0 /* this */
            getfield sun.security.util.ManifestEntryVerifier.digests:Ljava/util/ArrayList;
            aload 8 /* digest */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        31: .line 150
            aload 0 /* this */
            getfield sun.security.util.ManifestEntryVerifier.manifestHashes:Ljava/util/ArrayList;
        32: .line 151
            aload 0 /* this */
            getfield sun.security.util.ManifestEntryVerifier.decoder:Lsun/misc/BASE64Decoder;
            aload 4 /* se */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual sun.misc.BASE64Decoder.decodeBuffer:(Ljava/lang/String;)[B
        33: .line 150
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 8 // java.security.MessageDigest digest
        end local 7 // java.lang.String algorithm
        end local 6 // java.lang.String key
        end local 4 // java.util.Map$Entry se
        34: .line 127
      StackMap locals: sun.security.util.ManifestEntryVerifier java.lang.String java.util.jar.JarEntry java.util.jar.Attributes top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 17
        35: .line 155
            return
        end local 3 // java.util.jar.Attributes attr
        end local 2 // java.util.jar.JarEntry entry
        end local 1 // java.lang.String name
        end local 0 // sun.security.util.ManifestEntryVerifier this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   36     0       this  Lsun/security/util/ManifestEntryVerifier;
            0   36     1       name  Ljava/lang/String;
            0   36     2      entry  Ljava/util/jar/JarEntry;
           10   36     3       attr  Ljava/util/jar/Attributes;
           18   34     4         se  Ljava/util/Map$Entry<Ljava/lang/Object;Ljava/lang/Object;>;
           19   34     6        key  Ljava/lang/String;
           21   34     7  algorithm  Ljava/lang/String;
           22   34     8     digest  Ljava/security/MessageDigest;
      Exception table:
        from    to  target  type
          23    26      27  Class java.security.NoSuchAlgorithmException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      name   
      entry  

  public void update(byte);
    descriptor: (B)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // sun.security.util.ManifestEntryVerifier this
        start local 1 // byte buffer
         0: .line 161
            aload 0 /* this */
            getfield sun.security.util.ManifestEntryVerifier.skip:Z
            ifeq 1
            return
         1: .line 163
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 5
         3: .line 164
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.util.ManifestEntryVerifier.digests:Ljava/util/ArrayList;
            iload 2 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.security.MessageDigest
            iload 1 /* buffer */
            invokevirtual java.security.MessageDigest.update:(B)V
         4: .line 163
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* i */
            aload 0 /* this */
            getfield sun.security.util.ManifestEntryVerifier.digests:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 3
        end local 2 // int i
         6: .line 166
            return
        end local 1 // byte buffer
        end local 0 // sun.security.util.ManifestEntryVerifier this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lsun/security/util/ManifestEntryVerifier;
            0    7     1  buffer  B
            2    6     2       i  I
    MethodParameters:
        Name  Flags
      buffer  

  public void update(byte[], int, int);
    descriptor: ([BII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // sun.security.util.ManifestEntryVerifier this
        start local 1 // byte[] buffer
        start local 2 // int off
        start local 3 // int len
         0: .line 172
            aload 0 /* this */
            getfield sun.security.util.ManifestEntryVerifier.skip:Z
            ifeq 1
            return
         1: .line 174
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         2: goto 5
         3: .line 175
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.util.ManifestEntryVerifier.digests:Ljava/util/ArrayList;
            iload 4 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.security.MessageDigest
            aload 1 /* buffer */
            iload 2 /* off */
            iload 3 /* len */
            invokevirtual java.security.MessageDigest.update:([BII)V
         4: .line 174
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 4 /* i */
            aload 0 /* this */
            getfield sun.security.util.ManifestEntryVerifier.digests:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 3
        end local 4 // int i
         6: .line 177
            return
        end local 3 // int len
        end local 2 // int off
        end local 1 // byte[] buffer
        end local 0 // sun.security.util.ManifestEntryVerifier this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lsun/security/util/ManifestEntryVerifier;
            0    7     1  buffer  [B
            0    7     2     off  I
            0    7     3     len  I
            2    6     4       i  I
    MethodParameters:
        Name  Flags
      buffer  
      off     
      len     

  public java.util.jar.JarEntry getEntry();
    descriptor: ()Ljava/util/jar/JarEntry;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.security.util.ManifestEntryVerifier this
         0: .line 184
            aload 0 /* this */
            getfield sun.security.util.ManifestEntryVerifier.entry:Ljava/util/jar/JarEntry;
            areturn
        end local 0 // sun.security.util.ManifestEntryVerifier this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/util/ManifestEntryVerifier;

  public java.security.CodeSigner[] verify(java.util.Hashtable<java.lang.String, java.security.CodeSigner[]>, java.util.Hashtable<java.lang.String, java.security.CodeSigner[]>);
    descriptor: (Ljava/util/Hashtable;Ljava/util/Hashtable;)[Ljava/security/CodeSigner;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // sun.security.util.ManifestEntryVerifier this
        start local 1 // java.util.Hashtable verifiedSigners
        start local 2 // java.util.Hashtable sigFileSigners
         0: .line 199
            aload 0 /* this */
            getfield sun.security.util.ManifestEntryVerifier.skip:Z
            ifeq 2
         1: .line 200
            aconst_null
            areturn
         2: .line 203
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.util.ManifestEntryVerifier.digests:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.isEmpty:()Z
            ifeq 4
         3: .line 204
            new java.lang.SecurityException
            dup
            new java.lang.StringBuilder
            dup
            ldc "digest missing for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield sun.security.util.ManifestEntryVerifier.name:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 207
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.util.ManifestEntryVerifier.signers:[Ljava/security/CodeSigner;
            ifnull 6
         5: .line 208
            aload 0 /* this */
            getfield sun.security.util.ManifestEntryVerifier.signers:[Ljava/security/CodeSigner;
            areturn
         6: .line 210
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         7: goto 23
         8: .line 212
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.util.ManifestEntryVerifier.digests:Ljava/util/ArrayList;
            iload 3 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast java.security.MessageDigest
            astore 4 /* digest */
        start local 4 // java.security.MessageDigest digest
         9: .line 213
            aload 0 /* this */
            getfield sun.security.util.ManifestEntryVerifier.manifestHashes:Ljava/util/ArrayList;
            iload 3 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast byte[]
            astore 5 /* manHash */
        start local 5 // byte[] manHash
        10: .line 214
            aload 4 /* digest */
            invokevirtual java.security.MessageDigest.digest:()[B
            astore 6 /* theHash */
        start local 6 // byte[] theHash
        11: .line 216
            getstatic sun.security.util.ManifestEntryVerifier.debug:Lsun/security/util/Debug;
            ifnull 18
        12: .line 217
            getstatic sun.security.util.ManifestEntryVerifier.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "Manifest Entry: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        13: .line 218
            aload 0 /* this */
            getfield sun.security.util.ManifestEntryVerifier.name:Ljava/lang/String;
            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 4 /* 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;
        14: .line 217
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        15: .line 219
            getstatic sun.security.util.ManifestEntryVerifier.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "  manifest "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* manHash */
            invokestatic sun.security.util.ManifestEntryVerifier.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
        16: .line 220
            getstatic sun.security.util.ManifestEntryVerifier.debug:Lsun/security/util/Debug;
            new java.lang.StringBuilder
            dup
            ldc "  computed "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* theHash */
            invokestatic sun.security.util.ManifestEntryVerifier.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
        17: .line 221
            getstatic sun.security.util.ManifestEntryVerifier.debug:Lsun/security/util/Debug;
            invokevirtual sun.security.util.Debug.println:()V
        18: .line 224
      StackMap locals: java.security.MessageDigest byte[] byte[]
      StackMap stack:
            aload 6 /* theHash */
            aload 5 /* manHash */
            invokestatic java.security.MessageDigest.isEqual:([B[B)Z
            ifne 22
        19: .line 225
            new java.lang.SecurityException
            dup
            new java.lang.StringBuilder
            dup
            aload 4 /* digest */
            invokevirtual java.security.MessageDigest.getAlgorithm:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        20: .line 226
            ldc " digest error for "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield sun.security.util.ManifestEntryVerifier.name:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        21: .line 225
            invokespecial java.lang.SecurityException.<init>:(Ljava/lang/String;)V
            athrow
        end local 6 // byte[] theHash
        end local 5 // byte[] manHash
        end local 4 // java.security.MessageDigest digest
        22: .line 210
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        23: iload 3 /* i */
            aload 0 /* this */
            getfield sun.security.util.ManifestEntryVerifier.digests:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 8
        end local 3 // int i
        24: .line 230
            aload 0 /* this */
            aload 2 /* sigFileSigners */
            aload 0 /* this */
            getfield sun.security.util.ManifestEntryVerifier.name:Ljava/lang/String;
            invokevirtual java.util.Hashtable.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.security.CodeSigner[]
            putfield sun.security.util.ManifestEntryVerifier.signers:[Ljava/security/CodeSigner;
        25: .line 231
            aload 0 /* this */
            getfield sun.security.util.ManifestEntryVerifier.signers:[Ljava/security/CodeSigner;
            ifnull 27
        26: .line 232
            aload 1 /* verifiedSigners */
            aload 0 /* this */
            getfield sun.security.util.ManifestEntryVerifier.name:Ljava/lang/String;
            aload 0 /* this */
            getfield sun.security.util.ManifestEntryVerifier.signers:[Ljava/security/CodeSigner;
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        27: .line 234
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.util.ManifestEntryVerifier.signers:[Ljava/security/CodeSigner;
            areturn
        end local 2 // java.util.Hashtable sigFileSigners
        end local 1 // java.util.Hashtable verifiedSigners
        end local 0 // sun.security.util.ManifestEntryVerifier this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   28     0             this  Lsun/security/util/ManifestEntryVerifier;
            0   28     1  verifiedSigners  Ljava/util/Hashtable<Ljava/lang/String;[Ljava/security/CodeSigner;>;
            0   28     2   sigFileSigners  Ljava/util/Hashtable<Ljava/lang/String;[Ljava/security/CodeSigner;>;
            7   24     3                i  I
            9   22     4           digest  Ljava/security/MessageDigest;
           10   22     5          manHash  [B
           11   22     6          theHash  [B
    Exceptions:
      throws java.util.jar.JarException
    Signature: (Ljava/util/Hashtable<Ljava/lang/String;[Ljava/security/CodeSigner;>;Ljava/util/Hashtable<Ljava/lang/String;[Ljava/security/CodeSigner;>;)[Ljava/security/CodeSigner;
    MethodParameters:
                 Name  Flags
      verifiedSigners  
      sigFileSigners   

  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 248
            new java.lang.StringBuffer
            dup
            aload 0 /* data */
            arraylength
            iconst_2
            imul
            invokespecial java.lang.StringBuffer.<init>:(I)V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuffer sb
         1: .line 250
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 6
         3: .line 251
      StackMap locals: java.lang.StringBuffer int
      StackMap stack:
            aload 1 /* sb */
            getstatic sun.security.util.ManifestEntryVerifier.hexc:[C
            aload 0 /* data */
            iload 2 /* i */
            baload
            iconst_4
            ishr
            bipush 15
            iand
            caload
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
         4: .line 252
            aload 1 /* sb */
            getstatic sun.security.util.ManifestEntryVerifier.hexc:[C
            aload 0 /* data */
            iload 2 /* i */
            baload
            bipush 15
            iand
            caload
            invokevirtual java.lang.StringBuffer.append:(C)Ljava/lang/StringBuffer;
            pop
         5: .line 250
            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 254
            aload 1 /* sb */
            invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuffer sb
        end local 0 // byte[] data
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  data  [B
            1    8     1    sb  Ljava/lang/StringBuffer;
            2    7     2     i  I
    MethodParameters:
      Name  Flags
      data  
}
SourceFile: "ManifestEntryVerifier.java"
NestMembers:
  sun.security.util.ManifestEntryVerifier$SunProviderHolder
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map
  private SunProviderHolder = sun.security.util.ManifestEntryVerifier$SunProviderHolder of sun.security.util.ManifestEntryVerifier