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.

“complicated and not very well integrated”

Checks (re-run on this request)

Proof data

Record hash (SHA-256)
3e51c2376b6ef622b800911f0ed3e44a3ec13e839d72fdb56c4a5a27b49d1aa7
Signature (Ed25519, base64)
8nDI8N6G87rthbUfGz80GDhs6izHf2R+Zk0Rd5I4qUO15kE9CC4QksM1nThC1SIFYCp3KDK3lIkbcQI+yIIdBg==
Merkle root
3286418fc06d25de584969d1d1d5f4b079918bf6b5a5178364cae8b78bb351b2
Merkle path
["3e51aa6c849d98011e29cbcb9c038280a822c5571b986183f2da3227fe701630","7b4ba1d1611259e38923b35e253ab36150ccaf20a21d811cb9f06a7078021234","862365d17d9917b8cc81718a990c577043da7e1738beec1cfffbb43619410a45","d9b464b0ce05ed83b9760d6e02047f3b396bb943290918fddfc61ee751d70a88","a0131d98ff0d83b28f41090b31b91801e6c91c6175d23031f25ba9bfe1a313b2","48898c336f9115ec67c174aee06b6685b12e0aa67c277d1fee561923fa1b5a85","57ae9a8895cc5d3a96e5ac396f50246aa2c2115f6cc4c081fc2e1babf6fbd492","a274c017f2b2d8a53c3cf85459835fd4eb7457b0b1c4243a782d4e114e0ff7fc","4c7653bf5c0592c0381898c4ecf61a1593f9922ccabf497ae58fc08dc6debf6a","f277c357fa613e48e1a39d1fdbd31f13c57b0edcc00b52cc4af745e2912e25d0","fbf0beecd3644a0b1ed85afe1d822ac72eb6c6fefbbb832dbc0449418be397e1","18f743e4293ac0f418bd2370e18523fb86a3c1df20723b156051657b751cdb54","d9800b1b87d047478eeb89f8a1dda19593d3b273c40fa6d591a1b944763f5e83","b4d8773b8032d1dec9dc6fa4ba1d52baf4d9efac6a7cb542ab0617b855dc5284"]
Anchored
2026-10-15
Public log entry
search.sigstore.dev, log index 3258071454 · entry 108e9186e8c5677ae2ee…
Expected log hash
f9026b3bdc4a2e986a01140b2370b0ce9ec3e7c9353055dd7c9909c6a9941809 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":"v1792030101458","kind":"published-quote","locale":"en","page":"brand:bitwarden","quote":"complicated and not very well integrated","rating":4,"review_date":"2026-09-05","source":"Google Play","source_url":"https://play.google.com/store/apps/details?id=com.x8bit.bitwarden","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 (3286418fc06d…), 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.