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.

“now I feel much safer”

Checks (re-run on this request)

Proof data

Record hash (SHA-256)
08e18f557789c1210431b7135bd050096ca3c0cad24a10579f47a585cbef67fe
Signature (Ed25519, base64)
h+QBh/PCd/pPhC1lH1ilzCLR2AhZ3MzpbzHa0hZfewrGzQYYhkO5+1YUpwAAVP0eSwFdFJ6FCwCMHQHGj/x9Cw==
Merkle root
5281b854216b4e6bf9a4d9c1ef2bed9777ade9c29883f1d0f546437faa5e15d2
Merkle path
["08e80cda09eea651a6533a0902ac2be1e542dd57736d22c88fd9d0c52ccf249a","0a4f4ab27224a9cda3c5412749c00d2b1b83a83630bd653991794c184e994d16","7649b5d395ccea8b82108ff7addaab5d7c452aa92f2dfa3e713ace56058d9361","16488894f0c19bbc0f73382de064dd983d9a902780a15941aabf9b7296f067db","10863a054716c194e596237291156b641d98ff32f57aacd956b9c1ef42aba0e8","1d53ca694e0a3c83594feaaaacc34fe3524049ce1c695a3d1c52a343f0ef9f09","f00ac2d0c7e4d1c6c985594096db38edb67cc1aa2275b80cba1f997fb2c22996","31d9d3a5bd4c9e14da4cddd8cdd6d98c9de880400da48d8f05c0d140235f7ee2","c10bed160c6519c9219aa763268b5902185e19e48c365be538b0c3b195285bae","fadbe310cb70d52fbd3634d14b34e1efb399570b614a0591192430a9232e341b","da5d4823df4c5c306936c556ea76fd5e08d888de36c068442385b351792c1da0","aa60331715a4760f0f363284fb54b33c3fc51349cd38dc377612197ee40acea0","d2789c0fe09629a41906406d8fe2985c294ae3218eaa35da0f43e8c1d654bd45","3f2e066b220d21f290fe4ee4e114e6992e62cbb35f6faaf0f86e02332f98dc0b","266f13136d3ad4d5b30a4dbd24c9af8bfcbe23d11b0188abcff5f3a43a71af37"]
Anchored
2026-08-24
Public log entry
search.sigstore.dev, log index 2579520646 · entry 108e9186e8c5677ac653…
Expected log hash
6c785387604f7a22a5b096fa3c6c8cb93055a92b2f2f24f3a0a42c9bae32debd 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":"v1787540495725","kind":"published-quote","locale":"en","page":"theme:proton/quality/en","quote":"now I feel much safer","rating":5,"review_date":"2026-08-13","source":"Google Play","source_url":"https://play.google.com/store/apps/details?id=ch.protonvpn.android","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 (5281b854216b…), 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.