Settings for Merkle Hash Trees.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
- Cryptlib.Data.MerkleHashTree.instBEqHashTree.beq (Cryptlib.Data.MerkleHashTree.HashTree.empty a) (Cryptlib.Data.MerkleHashTree.HashTree.empty b) = (a == b)
- Cryptlib.Data.MerkleHashTree.instBEqHashTree.beq x✝¹ x✝ = false
Instances For
@[instance_reducible]
@[instance_reducible]
Equations
- Cryptlib.Data.MerkleHashTree.instInhabitedHashTree = { default := Cryptlib.Data.MerkleHashTree.HashTree.empty { data := #[] } }
- settings : Settings α
- size : ℕ
- hashtrees : Std.HashMap ℕ (HashTree α)
- indices : Std.HashMap ByteArray ℕ
Instances For
The current Merkle tree head.
def
Cryptlib.Data.MerkleHashTree.currentHead
(α : Type)
[Hashable α]
(tree : MerkleHashTrees α)
:
HashTree α
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Cryptlib.Data.MerkleHashTree.printHashTree tree = IO.println (toString "hashTree\n" ++ toString (Cryptlib.Data.MerkleHashTree.reprHashTree tree " " false))
Instances For
def
Cryptlib.Data.MerkleHashTree.printMerkleHashTrees
{α : Type}
[Repr α]
[Hashable α]
(mht : MerkleHashTrees α)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
The current Merkle tree hash.
def
Cryptlib.Data.MerkleHashTree.digest
(α : Type)
[Hashable α]
(treeSize : ℕ)
(tree : MerkleHashTrees α)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Cryptlib.Data.MerkleHashTree.index
(α : Type)
[Hashable α]
(tree : MerkleHashTrees α)
(hash : ByteArray)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
The current size and Merkle tree hash.
Equations
- Cryptlib.Data.MerkleHashTree.info α tree = (tree.size, Cryptlib.Data.MerkleHashTree.digest α tree.size tree)
Instances For
An empty tree.
Equations
- Cryptlib.Data.MerkleHashTree.empty α settings = { settings := settings, size := 0, hashtrees := ∅.insert 0 (Cryptlib.Data.MerkleHashTree.HashTree.empty settings.hash0), indices := ∅ }
Instances For
The hash value of a HashTree.
Equations
- Cryptlib.Data.MerkleHashTree.hashValue α (Cryptlib.Data.MerkleHashTree.HashTree.empty hash) = hash
- Cryptlib.Data.MerkleHashTree.hashValue α (Cryptlib.Data.MerkleHashTree.HashTree.leaf hash index value) = hash
- Cryptlib.Data.MerkleHashTree.hashValue α (Cryptlib.Data.MerkleHashTree.HashTree.node hash leftIndex rightIndex leftTree rightTree) = hash
Instances For
Equations
- One or more equations did not get rendered due to their size.
- Cryptlib.Data.MerkleHashTree.rIndex α (Cryptlib.Data.MerkleHashTree.HashTree.leaf hash index value) = index
- Cryptlib.Data.MerkleHashTree.rIndex α (Cryptlib.Data.MerkleHashTree.HashTree.node hash leftIndex rightIndex leftTree rightTree) = rightIndex
Instances For
Equations
- One or more equations did not get rendered due to their size.
- Cryptlib.Data.MerkleHashTree.lIndex α (Cryptlib.Data.MerkleHashTree.HashTree.leaf hash index value) = index
- Cryptlib.Data.MerkleHashTree.lIndex α (Cryptlib.Data.MerkleHashTree.HashTree.node hash leftIndex rightIndex leftTree rightTree) = leftIndex
Instances For
Equations
- Cryptlib.Data.MerkleHashTree.isPowerOf2 n = (n &&& n - 1 == 0)
Instances For
Adds an input to the tree.
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Cryptlib.Data.MerkleHashTree.add.insert
(α : Type)
[Hashable α]
(inp : α)
(tree : MerkleHashTrees α)
(ht : HashTree α)
:
HashTree α
Equations
- One or more equations did not get rendered due to their size.
- Cryptlib.Data.MerkleHashTree.add.insert α inp tree (Cryptlib.Data.MerkleHashTree.HashTree.empty hash) = Cryptlib.Data.MerkleHashTree.HashTree.leaf (tree.settings.hash1 inp) tree.size inp
Instances For
Adds a list of inputs to the tree.
def
Cryptlib.Data.MerkleHashTree.fromList
(α : Type)
[Hashable α]
(settings : Settings α)
(xs : List α)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[instance_reducible]
Equations
Instances For
@[instance_reducible]
Equations
- One or more equations did not get rendered due to their size.
@[instance_reducible]
def
Cryptlib.Data.MerkleHashTree.sizeTree
(α : Type)
[Hashable α]
(tree : MerkleHashTrees α)
(treeSize : ℕ)
:
HashTree α
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Cryptlib.Data.MerkleHashTree.generateInclusionProof
(α : Type)
[Hashable α]
(targetHash : ByteArray)
(treeSize : ℕ)
(tree : MerkleHashTrees α)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Cryptlib.Data.MerkleHashTree.generateInclusionProof.path
(α : Type)
[Hashable α]
(index : ℕ)
(tree : HashTree α)
:
Equations
- One or more equations did not get rendered due to their size.
- Cryptlib.Data.MerkleHashTree.generateInclusionProof.path α index (Cryptlib.Data.MerkleHashTree.HashTree.empty hash) = []
- Cryptlib.Data.MerkleHashTree.generateInclusionProof.path α index (Cryptlib.Data.MerkleHashTree.HashTree.leaf hash index_1 value) = []
Instances For
def
Cryptlib.Data.MerkleHashTree.verifyInclusionProof
(α : Type)
[Hashable α]
(settings : Settings α)
(leafHash rootHash : ByteArray)
(proof : InclusionProof)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Cryptlib.Data.MerkleHashTree.verifyInclusionProof.verify
(α : Type)
[Hashable α]
(settings : Settings α)
(rootHash : ByteArray)
(index treeSize : ℕ)
(currentHash : ByteArray)
(proof' : List ByteArray)
:
Equations
- One or more equations did not get rendered due to their size.
- Cryptlib.Data.MerkleHashTree.verifyInclusionProof.verify α settings rootHash index treeSize currentHash [] = (treeSize == 0 && currentHash == rootHash)
- Cryptlib.Data.MerkleHashTree.verifyInclusionProof.verify α settings rootHash index 0 currentHash proof' = false