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.

“J'ai été totalement déçu”

Checks (re-run on this request)

Proof data

Record hash (SHA-256)
2b3604e9cddb4b96aad289f6128066f8f64af93ae27ac414f4d1a5146ad6847f
Signature (Ed25519, base64)
jbQMrO7nAta2eGc5ZJQ6cGla3Rk/h8s0ENIwVdLGpct/RKotbEi+EjiYqQ61wjZ6uorFSpR4ym7MZDRokXHTDA==
Merkle root
72711ef72b8a7ab084630b9628ceb2defcf0aae546304d44ed173db57929457f
Merkle path
["2b388e92af5fd70b7b5682a97c31420a5e85e992a6233789cd0a121e186c07d4","efac4d6eb38a7d7782271ac24424e70036adb3899b641d898526f1caa76f3bb6","e72bbb634911248198ad6c17be1b46fe02ec06f57b72cb593368e4339ea70f91","5db31e4e909d8e8322ec4df8ca914860c0bd7127c01e3815bd15fed7999627ab","71117f9820598b1929af948c89bc12cace6eaad1922bdaf3c329c6e85fad4d56","51b4ea492b2d55598a6bd24b44a3191509a4dde91481d0554501e3de3ceda649","a700ef3401c7f5589a5a407b09617b4010fe1e9d699eefcb03f475b4c404370f","01045e361fa9800c9123d0855fac1b176beb563518fef4b5007eeb76729cf318","5de58186d5a3b02b43dc3f858e28333247dc818871eb235ad892b0e90fee8618","d05961cf0a31f6344c6315f48d6e7a0f8721211eac2ba2e7b7605942c4728624","790248ad2dcc8bf1e005a4305d751ae310e3284a78d78df2dc1d7daa8cc6f6d1","6a6dfccff9dc241f298e0a52411b762bea9080a6c51d433e9025bb218ea1e106","135f944fcf4a92d6f5a1944e44ad8a4edfeca6c93156b3f0cac35c7e930312a7","768946b507e7dea873e9570265486799703565faf3780e57d953562adfb568fa","6eb04938b6a483bb163369a1d918b32576dde0943755b89bf4c6d18743828ba3"]
Anchored
2026-08-19
Public log entry
search.sigstore.dev, log index 2514130917 · entry 108e9186e8c5677a3273…
Expected log hash
65ba51eff926c65ed0ce093a942d84c628d811a59302f32867c6589627e47792 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":"v1787124488047","kind":"published-quote","locale":"fr","page":"theme:proton/service/fr","quote":"J'ai été totalement déçu","rating":1,"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 (72711ef72b8a…), 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.