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.

“Switched from Gmail to own my own data”

Checks (re-run on this request)

Proof data

Record hash (SHA-256)
87b9a1f12c48b02a71af5478c8f5cd077397a40811394fa42ccfc514b243337a
Signature (Ed25519, base64)
iU7N7E5haWryMH9z6CGl2W+rY6xyrUB8gb3LXjscK6m1S0AJ2UywGgc8HA/0NJVHVmoBTcNrE/SOvwl1HQNyDQ==
Merkle root
97eb1062a862b99998bef0a84476eb3c3812bb77c2cb927f4fd2933b59da9e3d
Merkle path
["87b8b847114ff811684c0b8507c8b05bab856c1f8bca712a395836ec64069188","8cb71e11d7a80aaff87512614c62995012ab90d3b64773ec33f8651bf55e0386","2b91143873325eeb99f3f997dc3a42ccf01b6d1b6f2213b81f957cc077e6497f","f89689d65ebda02538fab3a82eca62195221b7be90f3d072300365f292d7944d","53586626bed564056d48b80c45d9d6ce0aab6081a6378d762017624db286ea6e","e8a98650e9b705656a6ad46f758079738bf04a57385121f62b3ff652407a79f0","4482b86436ff6e0e41b47a745bbeb8fadba1ec23f226c0feb81e90cd17e1fddd","777bf4297fed231f99c8cd060e3d78803dafa6ecb248d6f058adaea48fe53187","69f6a6adee3e1487364ff7f66a60e68b3d841b938f4fee1ac9988613971d870f","f26d3a85fb7c13bcf564079a40ccce0c59790c9422cce7b3e9d8c323ff715e35","ec5d08312c4faca63dc7627be1ba2a3702a2b0fd2f002f14f7d74685eb44c040","ed5206c0018c25fc911a5b83d48a4b07edf1ca07ade25d7e56162349167c269c","6772a6b2cfb742f4baa103e424787f6ab6a8cbdfc294db886f1451f7c9752077","90e3c3ed08ff9f4dee6683cf95bfff311f4715cac07e97ca75ea5b9bcf13efe4","01242865574478f13dcf9d888236d7a907264abdb87f360db7db06de0945075a"]
Anchored
2026-09-11
Public log entry
search.sigstore.dev, log index 2789279696 · entry 108e9186e8c5677a3885…
Expected log hash
05c7009ecf7ce5cf315c252c2a1dd135e64989a02cacdaaa3c5a87412a2e921c 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":"v1789017464005","kind":"published-quote","locale":"en","page":"theme:tuta/service/en","quote":"Switched from Gmail to own my own data","rating":5,"review_date":"2026-09-07","source":"Apple App Store","source_url":"https://apps.apple.com/dk/app/id922429609?see-all=reviews","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 (97eb1062a862…), 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.