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.

“Terrible software”

Checks (re-run on this request)

Proof data

Record hash (SHA-256)
09fd42a57de58110ae62ec35cce61e49a4781b60e51e6ccb82caae7e8b16881e
Signature (Ed25519, base64)
awlqd+G0sH11vJ2KG/GnFlYysOjM80WtrkxDa71nJuThdOjNPGE5o0OnfwHhOYHDTy71L8fyv10bWBNFPIlYCQ==
Merkle root
57e60dc521a4ab8ee39747670ba01310ec9c3f92c64800e03425c0a645a7f8c3
Merkle path
["09fde105903a5f12149610dc367e16c3b2486e6b9331b054ee39149c7677f3f4","0f287b7657492c925f40f84f9d79059ec771613bfeb0ae26b5986dff5e6cf74f","642f1965a19602fa173674258ed89a2d5d2edbf69323ff2429f35072fc462fdf","d57b8893637574e1372bb4b607d9fd94e302a620dd581939ab862eda32ab3ac3","aac4c3041c0d19579d78cc04838a8c71994bca027c84b6272b638c2694a157d8","65ebecaa061c5b72e83849b2be8fec1562e34c47e95f6b9d661e0a4701ecb4ad","6c2248bee7dba4117b34b35a32ed5723a040d40fb72b72f5e888d59f7d7d3145","0ffca6c89f41662df6526e00e6541254a965846bd178745e850efecc3cce2363","fe1ba3a251c937404d732c8b70bd7d668fadd05c0e77ec3b3cf3889b00cf68fa","e29289300e7e5fb4ab57148d1f6ae3dcf174621ea612e26fe246750d901c4882","727fd922a23c440ac2a60248f361a2b3785869137989ecad4faf9b75cf8b3fda","93c63a80b8e3489d0ab8339ec4503845df462143333ed3d531894d0e245f4a12","fe5d111587316ff31f5b38fa29f046572eebf5a2bd99ba16667a173d27f92a5c","dcda2bb48f4a1ab26f6126b1aaafb184e5f8d3630133c0cad42caf115918a81c","a1d5535cf9f405ffdd99d322e20ae6357cbed1419e88c64471b565623f0a674b"]
Anchored
2026-09-02
Public log entry
search.sigstore.dev, log index 2684249937 · entry 108e9186e8c5677a47d4…
Expected log hash
46538ec60065603bf54101fff011eda05a02a8a062bf118596692399059b11c2 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":"v1788336087966","kind":"published-quote","locale":"en","page":"brand:smallpdf","quote":"Terrible software","rating":1,"review_date":"2026-08-29","source":"Google Play","source_url":"https://play.google.com/store/apps/details?id=com.smallpdf.app.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 (57e60dc521a4…), 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.