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.

“automatic updates should be included with this app”

Checks (re-run on this request)

Proof data

Record hash (SHA-256)
10ffd3eccffe64e98bbae042388e6d63b7aeb4c22741857e1d318c3f16de5fab
Signature (Ed25519, base64)
XVpJJgeZp9wixqaJdSxxJNTzVKvGiyG3WYvwKSPNRt2xE0OTyxDWyK8vl5/tkNpodCUleXxEP2eoCv9aBAdYAQ==
Merkle root
2d214bb14438515f4bedf5edd9b00a6a5113a016ba9b9fe8160d41d7e6046722
Merkle path
["11000c46594f42f0589033ec30f6f85867a9f413978412ff82fd21bb0d72234c","8d0ff082a539f9f56a140d0436099e58c7b6bd05172f11277bf801c471eda4f4","0d870b8e08f5f0c1abe5c74959ab36a69a982c221e514513d9ba9260b6add303","cbe8ae4c81550f9e640e38da72e99d5c97f1940cb5d747437af6d88cf8d98dcf","583973698a6e47dc76f5503cf7222fe9f10c3270320d7480a866e5580c551211","96174223c4fca2df521639dd2fff3ab2628143b0002fef56378a9f76f589a9f5","5d09ebf6feadb4fde5baf8ff422a4e15fa441fcfdf29d5e6537728734c61dd86","66e0a5ba4b1bd1f93ef8744e0dfd40a753c1b71bab13c735c21d6ce724368d07","86f9495e320b942ce4930a4d5a3b26c8b3f4385aba05df94ffb88a88b4b804e9","da6a83700e6562a5d2343083915006750e77e4b9161f4d7712b838b4c79cf708","3cceffba1780f717cd2ce38f156f4aacef37125986da7d1cbc55a2b4370f1ed6","ebdcf4f2d06ecaa7512b4e82d75b0892ee788e93cc90eec4b56bdf4af103e975","c8e78357eabd343df2a6d1ad8a9c122f986bc772443ab896b1e0fa855f0ebd28","35ea2df06612b261a549235c4e62b3e1ad1789f05da56f9ca671421e5071b72b"]
Anchored
2026-10-12
Public log entry
search.sigstore.dev, log index 3220562278 · entry 108e9186e8c5677a2753…
Expected log hash
13907aa3d3da271016c4b5e75946c4440692c6b4e1684187b965dbb983b157f7 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":"v1791777669660","kind":"published-quote","locale":"en","page":"brand:surfshark","quote":"automatic updates should be included with this app","rating":2,"review_date":"2026-10-07","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 (2d214bb14438…), 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.