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.

“Easily best PDF editing and reviewing tool I've used.”

Checks (re-run on this request)

Proof data

Record hash (SHA-256)
6f5bd808c57d238a64a7e73b32aa70b47571f0cb4180319a8fd6783c790c61bf
Signature (Ed25519, base64)
O1YAgL/wj8rsGppNGlyaK22Ny2E2Y2zI5rPu/7uBZDhrQWGTE5eeg1GN76a/VLUgJSQRLxeU4ZghrGp/hrUkDg==
Merkle root
c921242d78a65e026e3281000ec5ef04ef930758058c4fed3f79f3b5ef992cde
Merkle path
["6f5dc63f5dce5d887210093c812b07ed293d7f278cc00765117000c3959e2f91","07a207fc400dbe5204cb02884300c0a885e2a5b9ac88a09520a95b2fe587f3df","d2de88fa3fad675bbde64d84768d84ada095102d593117f78e7cd812f9177240","dbeb936909ecc9ba1be9c6fd18a243b5bf4606363e7daa64334c346b646ba532","827a0702e9df036b1df34d252004472ef67e647ee0bd098ede92203dbbde9b7b","59748fca6c58b89fa052483c68761240457fffb4b70c4d45396d3cf03b11bc08","b74771755d749e9796416f5ec7b4f4121b84f071259ea1cb3bcd5f5421fc7f03","3f1a10e9fb32d9e0de95c72019946cd2d5957649466eba39a2d4232754e44411","09832f3b3c7ff437804becd9bdfe7c2444736042f2019447a7c86d28ab62cf62","02faf15951b8d75f7e4261fe841fdca6e6d635b37c56f72d60e8bfc6a970c3e2","a45ab0b3422ce68deecab893ec226571ecb3381413cb401d520a3bdd4e73f40a","c7f1bd682d2372a571af460f6db6329aa6d4392056d2c542b2f8aee42d41d110","6b2632561b59cd0b7b7d163c35b619821251fc87f905afdc68f4b8821607ceaa","11c55b906d5338fe2597d0d6abbdec07bcd15a81c2687346b92acf8d9db0c2f7","522d5a6bf348351e5632579ca190fcb390464957ba4b4698b399695ee13b67d6"]
Anchored
2026-08-21
Public log entry
search.sigstore.dev, log index 2543700701 · entry 108e9186e8c5677ac7e1…
Expected log hash
c1abaf0323b08bce2cedebaf1993162920ee741ace8973292e7ffdd13aca356b 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":"v1787287374804","kind":"published-quote","locale":"en","page":"product:xodo/pdf-editor/en","quote":"Easily best PDF editing and reviewing tool I've used.","rating":5,"review_date":"2026-07-20","source":"Google Play","source_url":"https://play.google.com/store/apps/details?id=com.xodo.pdf.reader","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 (c921242d78a6…), 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.