Class BinaryTreeRootCalculator

  • All Implemented Interfaces:
    ERSRootNodeCalculator

    public class BinaryTreeRootCalculator
    extends java.lang.Object
    implements ERSRootNodeCalculator
    Calculator based on the use of a left weighted binary Merkle tree created on top of the partial hash tree objects provided.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      org.bouncycastle.asn1.tsp.PartialHashtree[] computePathToRoot​(org.bouncycastle.operator.DigestCalculator digCalc, org.bouncycastle.asn1.tsp.PartialHashtree node, int index)
      Calculate a path from the leaf node to the root of the last computed Merkle tree.
      byte[] computeRootHash​(org.bouncycastle.operator.DigestCalculator digCalc, org.bouncycastle.asn1.tsp.PartialHashtree[] nodes)
      Calculate the root hash of the Merkle tree from the partial hash-tree nodes.
      byte[] recoverRootHash​(org.bouncycastle.operator.DigestCalculator digCalc, org.bouncycastle.asn1.tsp.PartialHashtree[] nodes)
      Recover the root hash from a path made up of PartialHashtrees.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • BinaryTreeRootCalculator

        public BinaryTreeRootCalculator()
    • Method Detail

      • computeRootHash

        public byte[] computeRootHash​(org.bouncycastle.operator.DigestCalculator digCalc,
                                      org.bouncycastle.asn1.tsp.PartialHashtree[] nodes)
        Description copied from interface: ERSRootNodeCalculator
        Calculate the root hash of the Merkle tree from the partial hash-tree nodes.
        Specified by:
        computeRootHash in interface ERSRootNodeCalculator
        Parameters:
        digCalc - the digest calculator to use.
        nodes - the partial hash-trees forming the basis of the Merkle tree.
        Returns:
        the root hash of the Merkle tree.
      • computePathToRoot

        public org.bouncycastle.asn1.tsp.PartialHashtree[] computePathToRoot​(org.bouncycastle.operator.DigestCalculator digCalc,
                                                                             org.bouncycastle.asn1.tsp.PartialHashtree node,
                                                                             int index)
        Description copied from interface: ERSRootNodeCalculator
        Calculate a path from the leaf node to the root of the last computed Merkle tree.
        Specified by:
        computePathToRoot in interface ERSRootNodeCalculator
        Parameters:
        digCalc - the digest calculator to use.
        node - the leaf node at the start of the path.
        index - the index of the node in the original list of partial hash trees.
        Returns:
      • recoverRootHash

        public byte[] recoverRootHash​(org.bouncycastle.operator.DigestCalculator digCalc,
                                      org.bouncycastle.asn1.tsp.PartialHashtree[] nodes)
        Description copied from interface: ERSRootNodeCalculator
        Recover the root hash from a path made up of PartialHashtrees.
        Specified by:
        recoverRootHash in interface ERSRootNodeCalculator
        Parameters:
        digCalc - the digest calculator to use.
        nodes - the partial hash-trees forming a path from a leaf to the root of the Merkle tree.
        Returns:
        the root hash of the Merkle tree.