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.

“I have to jump between apps to get to my authenticator”

Checks (re-run on this request)

Proof data

Record hash (SHA-256)
1b2b8643dcfa42db52fd3a16fe6b27f5b16aedf1182a47ce7a462a4d160cd70b
Signature (Ed25519, base64)
w3pT1Wby1qMPbxLZkUcuNONxow9qMojOZDDwMTrBHsI7MdDXTdomV3MAjN1pESKtRpXY1QGSUFDmR+ewutdSDQ==
Merkle root
97eb1062a862b99998bef0a84476eb3c3812bb77c2cb927f4fd2933b59da9e3d
Merkle path
["1b2a220dddfd49ecf1681e587e4d03fb543f71761b9f84fbb8405d587b179680","b5295a8b1207c72b038d9e038ca03f4798881fee28782aa891cdc71d0b4aa0e9","7b220a7366577730d22f3fecc6d1dd8067899b7e85ddcefd677e18b8951b8082","3c7ff9d7b2480e52a5274ec0f688887e7d2ba3a3724a0bb64492a662b6deef35","5a698c34ca71145d39bbd4c4d3bbe67f93a05306a794d8f6b9161b48853ff76f","78136b16de5bf8d7555bfdf502a48ab68ea2c19472e3e07f7c07c3a68dfdaa9b","72ab4956649bcb3edff733f088a2cc26fab9c754963006c5edfa87b90904e9eb","c691d3d16c996265dde561bf5a52920641ba4ab4fb9214491575ef3a0799566f","a3a0d2c4a94e1f27f441b05aca916dceb955bc40fa75605191c5324451e055fb","1a518fc55f456ac8a3fc1149ce435adbc642ba8b892aa64974a81b798eec6a67","3debd39a24af6852066a31af419923ca1fb9349fdf8444f76aef62b0f9a98230","7fc459298391904a3838099fd1a0b7e635c26503d7f861328c446e440a4bd8b4","5b47260d99d2c4ad6e0d963995c990c8506dbf10eb0b146a116c3fc6ba348071","a9559f2ca8536f2c18bf059f3f0099d62235a93ac35dc17b09967d392b72be7f","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:xero/communication/en","quote":"I have to jump between apps to get to my authenticator","rating":1,"review_date":"2026-06-18","source":"Google Play","source_url":"https://play.google.com/store/apps/details?id=com.xero.touch","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.