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 can't pay for this feature, since Duo offers it for free.”

Checks (re-run on this request)

Proof data

Record hash (SHA-256)
a09c01e9f35697f140394f91f9f4e5d0b5f76c3a6eb8fc03fdd923c117d7700a
Signature (Ed25519, base64)
q5Sapn/6faaxkMzdpq2xud5g882R+KyC9WO8E/sRHFenZ2zg4YGmS1XJN4+WfZwwnz94mAPDr3DSx1GuLKNnCQ==
Merkle root
e299bf38720a5a91bdf63bbc0205245bccdf3432ab1652c69342549658b7a9ef
Merkle path
["a09ceb16bf027d170e03bc3a03364ab3d08c7518df9cdc0318736d0408108b0e","26e6eb6b5e51ed34044cd31386475bf8759b48782f8329f0fe1b4332a0140275","eec60ffcbd76f779620333372386e9b0106d2ce314edeb59582eb290e0e162e1","0b6e06218a96b039f83c2a96c36400a4634b6695bfde023250a1b66e27ea86a0","f3a6eead0997a320b13e9de56c526b25df40f9dfdb1b8e30d846e82c7f75762e","dc0147c641b6018622675143f2b3a40a0656e8505e061228227063c3c3eb78bd","c5a0a6e6d91f4be78f6ffc65fd3876843f8e19bbddbbc86bebd369bee5440cb3","399106b947da4de06fea7bc9ec6fdc5a5e6ac7e5d13d4c31da4b9afd2cc43924","657a5da28e24642a71f35fcafcf838d174c74e29972797a56ad57d0e306d6e12","72445aebf1d9fc469248c1809af39dae4de7b03ba26ea5cb00c225422cbd320f","6d2c471b82300715f66f5dbf8b523ac1e6edc072f3668c57fd7750412f90467f","81ae0d98613af401743ec4987802323d53d8fda24ce374cdf2d369d04f6e8e3d","b5d03b72964f911025dbd61c2eea673598b47768b7619e9a279966a44a138147","e3714293de39ce3c6e3cb9d5ea7711343b19d2be532c75504682d8ef52e8f91e","2a462314156907e42d6f0d96eed96123f1d79516aef73ed189d9f5466556b638"]
Anchored
2026-09-21
Public log entry
search.sigstore.dev, log index 2904877428 · entry 108e9186e8c5677ab408…
Expected log hash
d020708737f55ccdf49203f373fcbcefe8158cc388605556fbfda3c365de7360 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":"v1789881486272","kind":"published-quote","locale":"en","page":"theme:bitwarden/price/en","quote":"I can't pay for this feature, since Duo offers it for free.","rating":2,"review_date":"2026-07-28","source":"Google Play","source_url":"https://play.google.com/store/apps/details?id=com.x8bit.bitwarden","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 (e299bf38720a…), 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.