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 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 237
            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 236
            putstatic sun.security.util.ManifestEntryVerifier.hexc:[C
         3: .line 237
            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 78
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 66
            aload 0 /* this */
            aconst_null
            putfield sun.security.util.ManifestEntryVerifier.name:Ljava/lang/String;
         2: .line 69
            aload 0 /* this */
            iconst_1
            putfield sun.security.util.ManifestEntryVerifier.skip:Z
         3: .line 73
            aload 0 /* this */
            aconst_null
            putfield sun.security.util.ManifestEntryVerifier.signers:[Ljava/security/CodeSigner;
         4: .line 80
            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;
         5: .line 81
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield sun.security.util.ManifestEntryVerifier.digests:Ljava/util/ArrayList;
         6: .line 82
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield sun.security.util.ManifestEntryVerifier.manifestHashes:Ljava/util/ArrayList;
         7: .line 83
            aload 0 /* this */
            aload 1 /* man */
            putfield sun.security.util.ManifestEntryVerifier.man:Ljava/util/jar/Manifest;
         8: .line 84
            return
        end local 1 // java.util.jar.Manifest man
        end local 0 // sun.security.util.ManifestEntryVerifier this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lsun/security/util/ManifestEntryVerifier;
            0    9     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 95
            aload 0 /* this */
            getfield sun.security.util.ManifestEntryVerifier.digests:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.clear:()V
         1: .line 96
            aload 0 /* this */
            getfield sun.security.util.ManifestEntryVerifier.manifestHashes:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.clear:()V
         2: .line 97
            aload 0 /* this */
            aload 1 /* name */
            putfield sun.security.util.ManifestEntryVerifier.name:Ljava/lang/String;
         3: .line 98
            aload 0 /* this */
            aload 2 /* entry */
            putfield sun.security.util.ManifestEntryVerifier.entry:Ljava/util/jar/JarEntry;
         4: .line 100
            aload 0 /* this */
            iconst_1
            putfield sun.security.util.ManifestEntryVerifier.skip:Z
         5: .line 101
            aload 0 /* this */
            aconst_null
            putfield sun.security.util.ManifestEntryVerifier.signers:[Ljava/security/CodeSigner;
         6: .line 103
            aload 0 /* this */
            getfield sun.security.util.ManifestEntryVerifier.man:Ljava/util/jar/Manifest;
            ifnull 7
            aload 1 /* name */
            ifnonnull 8
         7: .line 104
      StackMap locals:
      StackMap stack:
            return
         8: .line 110
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield sun.security.util.ManifestEntryVerifier.skip:Z
         9: .line 112
            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 113
            aload 3 /* attr */
            ifnonnull 16
        11: .line 117
            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 118
            aload 3 /* attr */
            ifnonnull 16
        13: .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 */
        14: .line 120
            aload 3 /* attr */
            ifnonnull 16
        15: .line 121
            return
        16: .line 125
      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 126
            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 128
            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 130
            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 132
            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 134
            aload 8 /* digest */
            ifnonnull 28
        23: .line 138
            aload 7 /* algorithm */
            getstatic sun.security.util.ManifestEntryVerifier$SunProviderHolder.instance:Ljava/security/Provider;
        24: .line 137
            invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;Ljava/security/Provider;)Ljava/security/MessageDigest;
            astore 8 /* digest */
        25: .line 139
            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 140
            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 145
      StackMap locals:
      StackMap stack:
            aload 8 /* digest */
            ifnull 34
        29: .line 146
            aload 8 /* digest */
            invokevirtual java.security.MessageDigest.reset:()V
        30: .line 147
            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 148
            aload 0 /* this */
            getfield sun.security.util.ManifestEntryVerifier.manifestHashes:Ljava/util/ArrayList;
        32: .line 149
            invokestatic java.util.Base64.getMimeDecoder:()Ljava/util/Base64$Decoder;
            aload 4 /* se */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.util.Base64$Decoder.decode:(Ljava/lang/String;)[B
        33: .line 148
            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 125
      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 153
            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 159
            aload 0 /* this */
            getfield sun.security.util.ManifestEntryVerifier.skip:Z
            ifeq 1
            return
         1: .line 161
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 5
         3: .line 162
      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 161
            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 164
            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 170
            aload 0 /* this */
            getfield sun.security.util.ManifestEntryVerifier.skip:Z
            ifeq 1
            return
         1: .line 172
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         2: goto 5
         3: .line 173
      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 172
            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 175
            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 182
            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 197
            aload 0 /* this */
            getfield sun.security.util.ManifestEntryVerifier.skip:Z
            ifeq 2
         1: .line 198
            aconst_null
            areturn
         2: .line 201
      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 202
            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 205
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.security.util.ManifestEntryVerifier.signers:[Ljava/security/CodeSigner;
            ifnull 6
         5: .line 206
            aload 0 /* this */
            getfield sun.security.util.ManifestEntryVerifier.signers:[Ljava/security/CodeSigner;
            areturn
         6: .line 208
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         7: goto 23
         8: .line 210
      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 211
            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 212
            aload 4 /* digest */
            invokevirtual java.security.MessageDigest.digest:()[B
            astore 6 /* theHash */
        start local 6 // byte[] theHash
        11: .line 214
            getstatic sun.security.util.ManifestEntryVerifier.debug:Lsun/security/util/Debug;
            ifnull 18
        12: .line 215
            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 216
            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 215
            invokevirtual sun.security.util.Debug.println:(Ljava/lang/String;)V
        15: .line 217
            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 218
            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 219
            getstatic sun.security.util.ManifestEntryVerifier.debug:Lsun/security/util/Debug;
            invokevirtual sun.security.util.Debug.println:()V
        18: .line 222
      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 223
            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 224
            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 223
            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 208
      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 228
            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 229
            aload 0 /* this */
            getfield sun.security.util.ManifestEntryVerifier.signers:[Ljava/security/CodeSigner;
            ifnull 27
        26: .line 230
            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 232
      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 246
            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 248
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 6
         3: .line 249
      StackMap locals: java.lang.StringBuilder 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.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         4: .line 250
            aload 1 /* sb */
            getstatic sun.security.util.ManifestEntryVerifier.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 248
            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 252
            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  
}
SourceFile: "ManifestEntryVerifier.java"
NestMembers:
  sun.security.util.ManifestEntryVerifier$SunProviderHolder
InnerClasses:
  public Decoder = java.util.Base64$Decoder of java.util.Base64
  public abstract Entry = java.util.Map$Entry of java.util.Map
  private SunProviderHolder = sun.security.util.ManifestEntryVerifier$SunProviderHolder of sun.security.util.ManifestEntryVerifier