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.

“Very easy to use”

Checks (re-run on this request)

Proof data

Record hash (SHA-256)
2058de05d2d1c8e55c97c5caa1141af02cd5a0d15aa78593ff04d6e98b5e760c
Signature (Ed25519, base64)
AbxiEUIgNNZqKvL6K8lY+IidcpdyNv/rLR9vPfiw2G6EhnOierBjYjYjYL0INAt4fN9ZqDyfrZEoj3sEW7kDCg==
Merkle root
c1d49fab62e94ee1796f3eb15e1a21f856756e9a68ad117a17ae6c9694ffe1e9
Merkle path
["20567f889ca9a9d4aa290d047a036bd15a8061ccf8d7cedd39d91c0bac1cd138","508aa6336cce572fa669a0f418fb9ffcbfc9fb5633e7e3eec8a6feb5ed71c93c","41301ff54895f5ccf77bad06f6f1bff536cf1abf01639f23829f462c3850da95","22c3906036d2daf79bf06f54285b01741944d4fa02309540a7fd9425db50f8c9","6f379d6944192721bcd0216781d739df497e41190d359d7036d789d59b1bdda6","a28b733a03d660a7183f9cce9ffe047e64e65f09baf7e97b8740c2e5351bd93d","675ba5f733cca6c4cbdb07179481fe2483298e20781966e4e60bbdd3d4215321","4647306b0073c3e956abfdce49609933fbf13a333d1cc41a7aed9d88fe696db8","660987a1d975d103c727fe645d2df0a0d982d2bf0201397c64bd105ef57259f9","ff25a65eca2b7ec4f4d9a166775f2c868b6fffadc9f1f205a339db799fc3747a","d548028ef9025b3c22d524c1f1d85be654856c3ed276e6e4b719f445ffebfe9d","219bd599cfb89fbe7096defae6a66c994562ac0a422a5db43368bd9cf9789683","856d9a6a3e94d695a98fa0bb5ce8d80e9fc70a3794652b53ea754ef3c0720b7a","436050ea3288f64644ca44d910bc166b737265d33885dda72495c78f7429279a"]
Anchored
2026-10-15
Public log entry
search.sigstore.dev, log index 3258717636 · entry 108e9186e8c5677abf47…
Expected log hash
30640a6c2a3bbbd5aa6e5244e634da7339a6d42d7209b3c3a5dde0fcd662474c 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":"v1792034121129","kind":"published-quote","locale":"en","page":"brand:surfshark","quote":"Very easy to use","rating":5,"review_date":"2026-09-05","source":"Google Play","source_url":"https://play.google.com/store/apps/details?id=com.surfshark.vpnclient.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 (c1d49fab62e9…), 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.