packages feed

hash-tree-0.1.0: Data/HashTree.hs

-- | Two-way (binary) Merkle Hash Trees which implements append-only logs and
--   provides both inclusion proof and consistency proof.
--   The API design is inspired by Certificate Transparency defined in RFC 6962.
module Data.HashTree (
    -- * Settings
    Settings,
    defaultSettings,

    -- ** Accessors
    hash0,
    hash1,
    hash2,

    -- * Merkle Hash Trees
    MerkleHashTrees,

    -- ** Accessors
    info,
    size,
    digest,

    -- ** Related types
    TreeSize,
    Index,

    -- ** Creating Merkle Hash Trees
    empty,
    fromList,

    -- ** Appending an element
    add,

    -- * Inclusion Proof
    InclusionProof,
    defaultInclusionProof,

    -- ** Accessors
    leafIndex,
    treeSize,
    inclusion,

    -- ** Proof and verification
    generateInclusionProof,
    verifyInclusionProof,

    -- * Consistency Proof
    ConsistencyProof,
    defaultConsistencyProof,

    -- ** Accessors
    firstTreeSize,
    secondTreeSize,
    consistency,

    -- ** Proof and verification
    generateConsistencyProof,
    verifyConsistencyProof,
) where

import Data.HashTree.Internal