Quote verification

This proves the quote below is recorded by Citatio exactly as displayed and has not been altered since it was committed and anchored. It documents Citatio's crawl observation; it does not imply endorsement by the source platform. The quote links to the original review.

“BitWarden is by far the easiest to use with its simple, straightforward interface”

Checks (re-run on this request)

Proof data

Record hash (SHA-256)
7afd21100a17dd948851c7a0d76c17f333aad96eda250deb5d443490ca927c30
Signature (Ed25519, base64)
CMMyeOWDZOXR30xVESwbVoW13TRMkrozfGbz5IchOtdH367inpoEuLLwI9Y/RC9fH2YcNTy1CET8iCn3kI8TCg==
Merkle root
97eb1062a862b99998bef0a84476eb3c3812bb77c2cb927f4fd2933b59da9e3d
Merkle path
["7afcc5a3c27f118cb0783094dad1ff3301442520b97615c7e03b519e7acee4bd","5babef71c533e3dc944c539bdf73aefa1b0cf30201317f302c9b87c17a337176","d5b2e826a2e54918b62995262b8faa10d5b6e897d72503b4f36334ebb46655b8","5561a3a8e31303124f8d0d038cea2e234eb68f7c5414474f25f14024b57de997","a07ac6ca5fb61118afa343f34ef223cdf8fd798a837602f2c5f5cd12d5a37b42","130bdc6629d5a9d377fdcc37a80d8cdea87a442adec3efc88c46e9c070611bf5","f3a6c1cacf58ecf0dc1163cc1124d73d45645bf915720df70371f89ea5c22d76","59af406feb985ad19a5365703cb69c0d2701cd86ae2e818b229e750e1d558117","f6eb18f3c0909d2d5df51bf93f40eaf8d3cfb3b09a8a01702334cd471cd70a2d","2d8ecb41f8400c70f915406462ee47efc269e681ddb12759aa75be7bb6a1c1b3","4a7da3ae635c518c772181747583fe91b52dc970a195f2fea0b029288d95f308","ed5206c0018c25fc911a5b83d48a4b07edf1ca07ade25d7e56162349167c269c","6772a6b2cfb742f4baa103e424787f6ab6a8cbdfc294db886f1451f7c9752077","90e3c3ed08ff9f4dee6683cf95bfff311f4715cac07e97ca75ea5b9bcf13efe4","01242865574478f13dcf9d888236d7a907264abdb87f360db7db06de0945075a"]
Anchored
2026-09-11
Public log entry
search.sigstore.dev, log index 2789279696 · entry 108e9186e8c5677a3885…
Expected log hash
05c7009ecf7ce5cf315c252c2a1dd135e64989a02cacdaaa3c5a87412a2e921c The log entry's spec.data.hash.value must equal this value: the SHA-256 of the Merkle root string above. Recompute it yourself from the root to confirm.
Canonical record
{"dataset_version":"v1789017464005","kind":"published-quote","locale":"en","page":"product:bitwarden/family/en","quote":"BitWarden is by far the easiest to use with its simple, straightforward interface","rating":5,"review_date":"2026-08-04","source":"Apple App Store","source_url":"https://apps.apple.com/au/app/id1137397744?see-all=reviews","v":1}

Verify in the public log

  1. Open the Rekor entry (pre-filled with this proof's log index).
  2. In the entry, compare spec.data.hash.value with the "Expected log hash" above: it is the SHA-256 of the Merkle root string (97eb1062a862…), which ties this proof's root to the log entry.
  3. Decode spec.signature.publicKey.content from base64: it must equal Citatio's published key at /.well-known/citatio-signing.json.
  4. The entry's integratedTime is the independent timestamp: the root, and with it this quote, existed no later than that moment.
  5. Locally, without any Citatio infrastructure: SHA-256 the canonical record (must equal the record hash), verify the Ed25519 signature against the public key, and fold the hash through the Merkle path (sorted-pair SHA-256) to reach the anchored root.