public class org.bouncycastle.tsp.PartialHashTreeProcessor
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.bouncycastle.tsp.PartialHashTreeProcessor
  super_class: java.lang.Object
{
  private final byte[][] values;
    descriptor: [[B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(org.bouncycastle.asn1.tsp.PartialHashtree);
    descriptor: (Lorg/bouncycastle/asn1/tsp/PartialHashtree;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.bouncycastle.tsp.PartialHashTreeProcessor this
        start local 1 // org.bouncycastle.asn1.tsp.PartialHashtree tree
         0: .line 14
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 16
            aload 0 /* this */
            aload 1 /* tree */
            invokevirtual org.bouncycastle.asn1.tsp.PartialHashtree.getValues:()[[B
            putfield org.bouncycastle.tsp.PartialHashTreeProcessor.values:[[B
         2: .line 17
            return
        end local 1 // org.bouncycastle.asn1.tsp.PartialHashtree tree
        end local 0 // org.bouncycastle.tsp.PartialHashTreeProcessor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/bouncycastle/tsp/PartialHashTreeProcessor;
            0    3     1  tree  Lorg/bouncycastle/asn1/tsp/PartialHashtree;
    MethodParameters:
      Name  Flags
      tree  

  public byte[] getHash(org.bouncycastle.operator.DigestCalculator);
    descriptor: (Lorg/bouncycastle/operator/DigestCalculator;)[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // org.bouncycastle.tsp.PartialHashTreeProcessor this
        start local 1 // org.bouncycastle.operator.DigestCalculator digestCalculator
         0: .line 29
            aload 0 /* this */
            getfield org.bouncycastle.tsp.PartialHashTreeProcessor.values:[[B
            arraylength
            iconst_1
            if_icmpne 2
         1: .line 31
            aload 0 /* this */
            getfield org.bouncycastle.tsp.PartialHashTreeProcessor.values:[[B
            iconst_0
            aaload
            areturn
         2: .line 36
      StackMap locals:
      StackMap stack:
            aload 1 /* digestCalculator */
            invokeinterface org.bouncycastle.operator.DigestCalculator.getOutputStream:()Ljava/io/OutputStream;
            astore 2 /* dOut */
        start local 2 // java.io.OutputStream dOut
         3: .line 38
            iconst_1
            istore 3 /* i */
        start local 3 // int i
         4: goto 7
         5: .line 40
      StackMap locals: java.io.OutputStream int
      StackMap stack:
            aload 2 /* dOut */
            aload 0 /* this */
            getfield org.bouncycastle.tsp.PartialHashTreeProcessor.values:[[B
            iload 3 /* i */
            aaload
            invokevirtual java.io.OutputStream.write:([B)V
         6: .line 38
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 3 /* i */
            aload 0 /* this */
            getfield org.bouncycastle.tsp.PartialHashTreeProcessor.values:[[B
            arraylength
            if_icmpne 5
        end local 3 // int i
         8: .line 43
            aload 1 /* digestCalculator */
            invokeinterface org.bouncycastle.operator.DigestCalculator.getDigest:()[B
         9: areturn
        end local 2 // java.io.OutputStream dOut
        10: .line 45
      StackMap locals: org.bouncycastle.tsp.PartialHashTreeProcessor org.bouncycastle.operator.DigestCalculator
      StackMap stack: java.io.IOException
            astore 2 /* e */
        start local 2 // java.io.IOException e
        11: .line 47
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "calculator failed: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* e */
            invokevirtual java.io.IOException.getMessage:()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.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.io.IOException e
        end local 1 // org.bouncycastle.operator.DigestCalculator digestCalculator
        end local 0 // org.bouncycastle.tsp.PartialHashTreeProcessor this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   12     0              this  Lorg/bouncycastle/tsp/PartialHashTreeProcessor;
            0   12     1  digestCalculator  Lorg/bouncycastle/operator/DigestCalculator;
            3   10     2              dOut  Ljava/io/OutputStream;
            4    8     3                 i  I
           11   12     2                 e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           2     9      10  Class java.io.IOException
    MethodParameters:
                  Name  Flags
      digestCalculator  

  public void verifyContainsHash(byte[]);
    descriptor: ([B)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.bouncycastle.tsp.PartialHashTreeProcessor this
        start local 1 // byte[] hash
         0: .line 61
            aload 0 /* this */
            aload 1 /* hash */
            invokevirtual org.bouncycastle.tsp.PartialHashTreeProcessor.containsHash:([B)Z
            ifne 2
         1: .line 63
            new org.bouncycastle.tsp.PartialHashTreeVerificationException
            dup
            ldc "calculated hash is not present in partial hash tree"
            invokespecial org.bouncycastle.tsp.PartialHashTreeVerificationException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 65
      StackMap locals:
      StackMap stack:
            return
        end local 1 // byte[] hash
        end local 0 // org.bouncycastle.tsp.PartialHashTreeProcessor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/bouncycastle/tsp/PartialHashTreeProcessor;
            0    3     1  hash  [B
    Exceptions:
      throws org.bouncycastle.tsp.PartialHashTreeVerificationException
    MethodParameters:
      Name  Flags
      hash  final

  public boolean containsHash(byte[]);
    descriptor: ([B)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.bouncycastle.tsp.PartialHashTreeProcessor this
        start local 1 // byte[] hash
         0: .line 76
            iconst_1
            istore 2 /* i */
        start local 2 // int i
         1: goto 5
         2: .line 78
      StackMap locals: int
      StackMap stack:
            aload 1 /* hash */
            aload 0 /* this */
            getfield org.bouncycastle.tsp.PartialHashTreeProcessor.values:[[B
            iload 2 /* i */
            aaload
            invokestatic org.bouncycastle.util.Arrays.areEqual:([B[B)Z
            ifeq 4
         3: .line 80
            iconst_1
            ireturn
         4: .line 76
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         5: iload 2 /* i */
            aload 0 /* this */
            getfield org.bouncycastle.tsp.PartialHashTreeProcessor.values:[[B
            arraylength
            if_icmpne 2
        end local 2 // int i
         6: .line 84
            iconst_0
            ireturn
        end local 1 // byte[] hash
        end local 0 // org.bouncycastle.tsp.PartialHashTreeProcessor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/bouncycastle/tsp/PartialHashTreeProcessor;
            0    7     1  hash  [B
            1    6     2     i  I
    MethodParameters:
      Name  Flags
      hash  final
}
SourceFile: "PartialHashTreeProcessor.java"