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.

“It doesn't let you choose where to connect”

Checks (re-run on this request)

Proof data

Record hash (SHA-256)
1099aee0ace024c16bb589831fc8b638e04476e0b729686dfa9b5d79a75298a0
Signature (Ed25519, base64)
52r1OjpsYjxVYSyp+iNDvJi4/CLbFCMI5SWI18qaSBGv2tpEvHdgdOsHhs/p2pcdGmiEsl1r58A5oynmsMlPBQ==
Merkle root
749703591848535a8600340214debbd99b61273e3bed402bec28b292f90ce9b6
Merkle path
["1099586561a2a3d1c3065b729c5ce1c1dbf93d8825e981aa1f5494f0cd1f8e09","84556e16229fa8a5a3809071c590456973b93246800733cb01de096b1b4b77f6","b044dfc279d1f931c2f3c0ad2a4231b68d17b40c33f056e164073402a99b8707","36096aca5166bf7219210ff3731c3494fe28022c2ff6be22e9429e093b595119","e0f1dc02b2401f4ba00bd7c33b59885907ca1edab40843bb9e913c31e09f8a21","6055a4a3ed368de1c057f6231977252bd23d8fec0556d4ffbb4f9d38a0313734","b2e68f256a92609c364a86cdcf876d4d11e8085eece97fc57c087f0c598ba438","0fb5f4feb61237f884e11ecd4012728a7f54f02430e34ecf7509316fa335f4fb","417c85cb5bc74224a7949ccb9ce854d65a12d5a1b58d85021ca13c2ee26e44b7","c0bf6e4c7b3b7225bd7333d1b2c852c473129b6fe0d035f8d0e8850855d89130","93679534062379205612628dc9781008baf49947d9dbfa452e39b3c67e2ad30c","a7574a1284f296e344531b28e98ffbc4091b43e8e280936e3f14d9482fb06f49","34c0dfbb126009f4c79d4469e45bcea801fec7d101a7b81a66d8a0095ff6d708","f43a1936699be5b728ab2cee5100b0cce7fa6828f7bb521f1ba149ba44cd48a1","bc5d1d560a30e83fe0f1b6a9452dc46dc135b1a7f73575ec3aa5d459bb76fc8b"]
Anchored
2026-08-19
Public log entry
search.sigstore.dev, log index 2514602687 · entry 108e9186e8c5677ac525…
Expected log hash
e53e7f935eb508100ef1046b60c784e0bda15dd54afae176c275a97cf1f64052 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":"v1787131269839","kind":"published-quote","locale":"en","page":"subtheme:proton/quality/vpn-speed-servers/en","quote":"It doesn't let you choose where to connect","rating":3,"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 (749703591848…), 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.