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.

“Free features are generous too”

Checks (re-run on this request)

Proof data

Record hash (SHA-256)
133177358d4a0756ff9d681b55a05e47ca6d303bc5c1694a17af98254fb22622
Signature (Ed25519, base64)
XG3YM39AiHd+tDoWflC85sd+NubJ5Eh/iriD9b45Eik0IZEiWwRZQmUQyw5J06rx1O9OxD7kGwRgbsUGK4MWBQ==
Merkle root
a4d47c2a34f6eeba31e2744fb1551fe9a0e34820dfc152f1ad93a68b24759c3a
Merkle path
["133603896f85a06923b3776195d3cc52fab1397194881f67c43859174f031278","720f8faad63a93b6c93a86f5932839b53bbfc784bee0ed85e437013e43a6fde5","469b0d8b4ed1821d062d9e186a9add28b90e4cfb1dceee347ef2230b4d9ee80d","1b1288df030b269f1ee3632e9547e93eb962a61fcc70e9cf818aa4ce30fa0215","a8b1d950a78126f88eb53eb40cafbbeb0e9e03bd809253560e03bf0f73265091","57fde14642d9006050c91a382bfc8151190dc9d538850e405d97d66c00e76b41","3ed38c0af86d3c619c4bcb0abc014b97c7b586f6a82c52a0b496c1af47fa9590","7108752c93e7732582c27dbb20f3bb1f2e5aef89d3a58be22b646c2412e10165","828cc16f93084f80093055e1e7842d771ae26435aec7954937da085d5a2f72af","0d6dc980770ecb2484c2492ddb0af32ac789b8653586afd83a49ff50a3e532d3","8f3b5e1b98f4eb33172e959946f3638ce127fd1be49e04d0a6fc4e42b083c937","718239fed8057dcd9c8669511115793713c3c27b1e9657de27f870abdd5c7bee","0d7c4faad4992f205f2c1ebb2b0e4b1b7e9d070f1f77d3f8d64b80626c324f46","35108299fffbb5c1a0d86f074b5805457d73da5ec7c848a19bc9a928f6a42a99"]
Anchored
2026-10-16
Public log entry
search.sigstore.dev, log index 3272274666 · entry 108e9186e8c5677a2724…
Expected log hash
d56e71820b4c8c62b755e9f6e3d2b624566d12db6dd1606e99ef55749400c387 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":"v1792036997995","kind":"published-quote","locale":"en","page":"brand:bitwarden","quote":"Free features are generous too","rating":5,"review_date":"2026-08-20","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 (a4d47c2a34f6…), 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.