{
  "group": "merkle",
  "protocol": 1,
  "description": "RFC 6962 §2.1: leaf SHA-256(0x00||d), node SHA-256(0x01||l||r), MTH of the transparency-dev reference leaves, paths and proofs of the 7-leaf example §2.1.3, segments with a left boundary (§7.5). Every hash is 32 bytes.",
  "cases": [
    {
      "name": "leaf_hashes",
      "leaf_inputs_hex": [
        "",
        "00",
        "10",
        "2021",
        "3031",
        "40414243",
        "5051525354555657",
        "606162636465666768696a6b6c6d6e6f"
      ],
      "expected_leaf_hashes": [
        "6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d",
        "96a296d224f285c67bee93c30f8a309157f0daa35dc5b87e410b78630a09cfc7",
        "0298d122906dcfc10892cb53a73992fc5b9f493ea4c9badb27b791b4127a7fe7",
        "07506a85fd9dd2f120eb694f86011e5bb4662e5c415a62917033d4a9624487e7",
        "bc1a0643b12e4d2d7c77918f44e0f4f79a838b6cf9ec5b5c283e1f4d88599e6b",
        "4271a26be0d8a84f0bd54c8c302e7cb3a3b5d1fa6780a40bcce2873477dab658",
        "b08693ec2e721597130641e8211e7eedccb4c26413963eee6c1e2ed16ffb1a5f",
        "46f6ffadd3d06a09ff3c5860d2755c8b9819db7df44251788c7d8e3180de8eb1"
      ]
    },
    {
      "name": "roots_by_size",
      "leaf_inputs_hex": [
        "",
        "00",
        "10",
        "2021",
        "3031",
        "40414243",
        "5051525354555657",
        "606162636465666768696a6b6c6d6e6f"
      ],
      "expected_roots": [
        {
          "size": 0,
          "root": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
        },
        {
          "size": 1,
          "root": "6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d"
        },
        {
          "size": 2,
          "root": "fac54203e7cc696cf0dfcb42c92a1d9dbaf70ad9e621f4bd8d98662f00e3c125"
        },
        {
          "size": 3,
          "root": "aeb6bcfe274b70a14fb067a5e5578264db0fa9b51af5e0ba159158f329e06e77"
        },
        {
          "size": 4,
          "root": "d37ee418976dd95753c1c73862b9398fa2a2cf9b4ff0fdfe8b30cd95209614b7"
        },
        {
          "size": 5,
          "root": "4e3bbb1f7b478dcfe71fb631631519a3bca12c9aefca1612bfce4c13a86264d4"
        },
        {
          "size": 6,
          "root": "76e67dadbcdf1e10e1b74ddc608abd2f98dfb16fbce75277b5232a127f2087ef"
        },
        {
          "size": 7,
          "root": "ddb89be403809e325750d3d263cd78929c2942b7942a34b77e122c9594a74c8c"
        },
        {
          "size": 8,
          "root": "5dc9da79a70659a9ad559cb701ded9a2ab9d823aad2f4960cfe370eff4604328"
        }
      ]
    },
    {
      "name": "audit_paths_7",
      "leaf_inputs_hex": [
        "",
        "00",
        "10",
        "2021",
        "3031",
        "40414243",
        "5051525354555657"
      ],
      "expected": [
        {
          "index": 0,
          "size": 7,
          "path": [
            "96a296d224f285c67bee93c30f8a309157f0daa35dc5b87e410b78630a09cfc7",
            "5f083f0a1a33ca076a95279832580db3e0ef4584bdff1f54c8a360f50de3031e",
            "837dbb152e9b079010717e84e865da4ebc0fa198a806d59d31bf15accef22d0e"
          ],
          "structure": "[b, h, l]"
        },
        {
          "index": 3,
          "size": 7,
          "path": [
            "0298d122906dcfc10892cb53a73992fc5b9f493ea4c9badb27b791b4127a7fe7",
            "fac54203e7cc696cf0dfcb42c92a1d9dbaf70ad9e621f4bd8d98662f00e3c125",
            "837dbb152e9b079010717e84e865da4ebc0fa198a806d59d31bf15accef22d0e"
          ],
          "structure": "[c, g, l]"
        },
        {
          "index": 4,
          "size": 7,
          "path": [
            "4271a26be0d8a84f0bd54c8c302e7cb3a3b5d1fa6780a40bcce2873477dab658",
            "b08693ec2e721597130641e8211e7eedccb4c26413963eee6c1e2ed16ffb1a5f",
            "d37ee418976dd95753c1c73862b9398fa2a2cf9b4ff0fdfe8b30cd95209614b7"
          ],
          "structure": "[f, j, k]"
        },
        {
          "index": 6,
          "size": 7,
          "path": [
            "0ebc5d3437fbe2db158b9f126a1d118e308181031d0a949f8dededebc558ef6a",
            "d37ee418976dd95753c1c73862b9398fa2a2cf9b4ff0fdfe8b30cd95209614b7"
          ],
          "structure": "[i, k]"
        }
      ]
    },
    {
      "name": "consistency_7",
      "leaf_inputs_hex": [
        "",
        "00",
        "10",
        "2021",
        "3031",
        "40414243",
        "5051525354555657"
      ],
      "expected": [
        {
          "from": 3,
          "to": 7,
          "proof": [
            "0298d122906dcfc10892cb53a73992fc5b9f493ea4c9badb27b791b4127a7fe7",
            "07506a85fd9dd2f120eb694f86011e5bb4662e5c415a62917033d4a9624487e7",
            "fac54203e7cc696cf0dfcb42c92a1d9dbaf70ad9e621f4bd8d98662f00e3c125",
            "837dbb152e9b079010717e84e865da4ebc0fa198a806d59d31bf15accef22d0e"
          ],
          "structure": "[c, d, g, l]"
        },
        {
          "from": 4,
          "to": 7,
          "proof": [
            "837dbb152e9b079010717e84e865da4ebc0fa198a806d59d31bf15accef22d0e"
          ],
          "structure": "[l]"
        },
        {
          "from": 6,
          "to": 7,
          "proof": [
            "0ebc5d3437fbe2db158b9f126a1d118e308181031d0a949f8dededebc558ef6a",
            "b08693ec2e721597130641e8211e7eedccb4c26413963eee6c1e2ed16ffb1a5f",
            "d37ee418976dd95753c1c73862b9398fa2a2cf9b4ff0fdfe8b30cd95209614b7"
          ],
          "structure": "[i, j, k]"
        }
      ]
    },
    {
      "name": "inclusion_wrong_index_fails",
      "index": 1,
      "size": 7,
      "leaf_hash": "6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d",
      "path": [
        "96a296d224f285c67bee93c30f8a309157f0daa35dc5b87e410b78630a09cfc7",
        "5f083f0a1a33ca076a95279832580db3e0ef4584bdff1f54c8a360f50de3031e",
        "837dbb152e9b079010717e84e865da4ebc0fa198a806d59d31bf15accef22d0e"
      ],
      "root": "ddb89be403809e325750d3d263cd78929c2942b7942a34b77e122c9594a74c8c",
      "expected_valid": false
    },
    {
      "name": "segments",
      "leaf_inputs_hex": [
        "",
        "00",
        "10",
        "2021",
        "3031",
        "40414243",
        "5051525354555657",
        "606162636465666768696a6b6c6d6e6f"
      ],
      "expected": [
        {
          "start": 0,
          "size": 8,
          "left": [],
          "segment_leaf_hashes": [
            "6e340b9cffb37a989ca544e6bb780a2c78901d3fb33738768511a30617afa01d",
            "96a296d224f285c67bee93c30f8a309157f0daa35dc5b87e410b78630a09cfc7",
            "0298d122906dcfc10892cb53a73992fc5b9f493ea4c9badb27b791b4127a7fe7",
            "07506a85fd9dd2f120eb694f86011e5bb4662e5c415a62917033d4a9624487e7",
            "bc1a0643b12e4d2d7c77918f44e0f4f79a838b6cf9ec5b5c283e1f4d88599e6b",
            "4271a26be0d8a84f0bd54c8c302e7cb3a3b5d1fa6780a40bcce2873477dab658",
            "b08693ec2e721597130641e8211e7eedccb4c26413963eee6c1e2ed16ffb1a5f",
            "46f6ffadd3d06a09ff3c5860d2755c8b9819db7df44251788c7d8e3180de8eb1"
          ],
          "expected_root": "5dc9da79a70659a9ad559cb701ded9a2ab9d823aad2f4960cfe370eff4604328"
        },
        {
          "start": 3,
          "size": 8,
          "left": [
            "fac54203e7cc696cf0dfcb42c92a1d9dbaf70ad9e621f4bd8d98662f00e3c125",
            "0298d122906dcfc10892cb53a73992fc5b9f493ea4c9badb27b791b4127a7fe7"
          ],
          "segment_leaf_hashes": [
            "07506a85fd9dd2f120eb694f86011e5bb4662e5c415a62917033d4a9624487e7",
            "bc1a0643b12e4d2d7c77918f44e0f4f79a838b6cf9ec5b5c283e1f4d88599e6b",
            "4271a26be0d8a84f0bd54c8c302e7cb3a3b5d1fa6780a40bcce2873477dab658",
            "b08693ec2e721597130641e8211e7eedccb4c26413963eee6c1e2ed16ffb1a5f",
            "46f6ffadd3d06a09ff3c5860d2755c8b9819db7df44251788c7d8e3180de8eb1"
          ],
          "expected_root": "5dc9da79a70659a9ad559cb701ded9a2ab9d823aad2f4960cfe370eff4604328"
        },
        {
          "start": 5,
          "size": 7,
          "left": [
            "d37ee418976dd95753c1c73862b9398fa2a2cf9b4ff0fdfe8b30cd95209614b7",
            "bc1a0643b12e4d2d7c77918f44e0f4f79a838b6cf9ec5b5c283e1f4d88599e6b"
          ],
          "segment_leaf_hashes": [
            "4271a26be0d8a84f0bd54c8c302e7cb3a3b5d1fa6780a40bcce2873477dab658",
            "b08693ec2e721597130641e8211e7eedccb4c26413963eee6c1e2ed16ffb1a5f"
          ],
          "expected_root": "ddb89be403809e325750d3d263cd78929c2942b7942a34b77e122c9594a74c8c"
        },
        {
          "start": 7,
          "size": 7,
          "left": [
            "d37ee418976dd95753c1c73862b9398fa2a2cf9b4ff0fdfe8b30cd95209614b7",
            "0ebc5d3437fbe2db158b9f126a1d118e308181031d0a949f8dededebc558ef6a",
            "b08693ec2e721597130641e8211e7eedccb4c26413963eee6c1e2ed16ffb1a5f"
          ],
          "segment_leaf_hashes": [],
          "expected_root": "ddb89be403809e325750d3d263cd78929c2942b7942a34b77e122c9594a74c8c"
        },
        {
          "start": 6,
          "size": 8,
          "left": [
            "d37ee418976dd95753c1c73862b9398fa2a2cf9b4ff0fdfe8b30cd95209614b7",
            "0ebc5d3437fbe2db158b9f126a1d118e308181031d0a949f8dededebc558ef6a"
          ],
          "segment_leaf_hashes": [
            "b08693ec2e721597130641e8211e7eedccb4c26413963eee6c1e2ed16ffb1a5f",
            "46f6ffadd3d06a09ff3c5860d2755c8b9819db7df44251788c7d8e3180de8eb1"
          ],
          "expected_root": "5dc9da79a70659a9ad559cb701ded9a2ab9d823aad2f4960cfe370eff4604328"
        }
      ]
    }
  ]
}
