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.

“I have installed it on my computers and phones.”

Checks (re-run on this request)

Proof data

Record hash (SHA-256)
0ae52c7688312925cdd365881d3bff5ccb60a3455c5a63a51a27eb4c256ec2f6
Signature (Ed25519, base64)
2PU5j4Ab77qMcr+xNqg8N6WBi3X5N4M0Gcndov/CwPV9qIrFGgZVXqZG2elg6IyG9slaTx4Tr1U14KrlVMMNCA==
Merkle root
d019a962265fd99700bb41421c12bf721bc431ce9725f4e9d547011775ab56ec
Merkle path
["0ae2cd04258e7d720191d78f52e9c4ce5505fd910edf62a3eed2f78ba7d28c9e","8c23425c2fe0a97ae831103fd6b81cc6cfd916484e6c4aa4177683b1b72e3d77","e2b81a4cd6fcf19e4a057232c0c282f909b4f09f78f8fe49684951398f40328f","d37e140325d406d392294309a6167ddf2f2651861801785f99fe587c52987e57","cfd2e61060ac360624bfcb54776d909c19d3fb84b9b9b59638c546a51ea99257","eec67e3122ad2e1e28b599e52d4746723847bf13c468a14d7598abc3c8bbed69","8f948f5530db090ed5f7380ad5387caa87506c8fd9068edd68b82de6ef2d89f6","e2e1ade2a1b450230b10f21e64adc1e37aa49e3dad985d5af0a772524206e672","da531636ca8589a0bb866c9f012ce723f6e1392415c3c1571a431384ca31378f","eb3dd5434fe96df428da5de67b44043d1e0a655b59c16fccd9d9ec4f640938ad","4cc034251d442e8c2f32660ba00b05d7f7b553c1726d84f939c0940a5d928aec","a3af7151d6a244480abe5bc8ada397c9af55b3431df57672865c450809772fd0","8d7f9bb84a33c413af9063341c8f5160bc8725a67ef59bd2d044580fb9f3155b","65b176b4a433b701cea4a24b83deb2fa9ed09be9f26f9fdaada87e8434a57f00","a28f44db157d986c9333d9e3edce8ce71060ce7f7d8f4bff70f57fc26d48546f"]
Anchored
2026-08-31
Public log entry
search.sigstore.dev, log index 2657725656 · entry 108e9186e8c5677adf65…
Expected log hash
b4666dc064e94c6d0ca3a2e9a0c5f9ff5cb70ce3ce9e0a74343a10c712c15a62 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":"v1788147462663","kind":"published-quote","locale":"en","page":"subtheme:proton/ordering/setup-configuration/en","quote":"I have installed it on my computers and phones.","rating":5,"review_date":"2026-07-26","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 (d019a962265f…), 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.