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.

“codes could only be restored back to its own app”

Checks (re-run on this request)

Proof data

Record hash (SHA-256)
08d62ed9adb874a972e9444d7c1770f67464f8cfc0628d2cd736d96f9608c10d
Signature (Ed25519, base64)
VeTMqzu4K7aSEVTTSiAGY/5Wspnu3McEGs1moUBn5X7JfSsZtnKTXyb4ifbg6Ydv5OhFWNoY/kENx8fUgQWdBw==
Merkle root
a5d88709ba617fe812c94d00606cf582d21e964e3014eeed21e24c3822682a40
Merkle path
["08ca03c94f9c51cdf3f367bbe836672ec77a8e72b63b22adc479aa4a2b298b3c","f1cdfd8cc0d147c9dbcc7ff04cbf7fdcafccc713198ff67b670a7d09f26b3096","5d5b966fe554d9ba7fd5c423e76b3976a2c13e981f1f37d483b312d04af059f0","0d4d533198a3b8a13c6492bee11fdab5a424674e1f20c4d5505d37238becb058","3ef378da6db70ddbf64dbe36223903e6ef1bce0e90a2b84e43d7577d15a95f12","e5a9f33137b6efa847de6f198f62b91a84de657473cca7ada42db79eb0142f4f","777c73fb40734aa20750884ea39232ef4797c6ce0f498cf5e5c9a2274258adc6","50fbd25bff74a8c83b33cfbfc16dfc37ab390b8f4c0cd9cb29c07e95ff5ab3fc","827eaf68f629ff98a25b3121c64347adc33cb8cc719d430b32e76263c88e58cf","f2e16f57a9892eec07dbeb78bce79273e2662e20b5810bc808241b4e79dd765a","23b11cdfa7d4c9ec55287e1683565266f583df3c5b5b4a9c37905da9d2f32bd2","0d90287140c688b078bbed5856c891d1e5d8314dfae0b71eb7981526e520adc5","7b48dcfd125d0832bd7f5a9c76821165d9d78970ff8029ee47dac7ef938d86a3","aa514b327a9841f1a8b8f1ee34db42dc890d9a3d820327c14f52ced1df128a39","33e990fa14b58c6037d59a973c8935635ce911b2e7d4249f5e781ce19fe14ee6"]
Anchored
2026-08-29
Public log entry
search.sigstore.dev, log index 2633155673 · entry 108e9186e8c5677ac961…
Expected log hash
59d0143474a5e64649e00814367477c4772bdc0867286cdc45867421d3d54959 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":"v1787979141339","kind":"published-quote","locale":"en","page":"product:proton/proton-authenticator/en","quote":"codes could only be restored back to its own app","rating":5,"review_date":"2026-08-10","source":"Google Play","source_url":"https://play.google.com/store/apps/details?id=proton.android.authenticator","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 (a5d88709ba61…), 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.