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.

“The user experience of this app is poor.”

Checks (re-run on this request)

Proof data

Record hash (SHA-256)
bf03e65a37a160d9f0ed29b9c102892fab7bba92e37c8b5fd00d659a0bbfb4af
Signature (Ed25519, base64)
OwU4dw++sbRv85x4BEIlqW9RZlI+Q6YPIj8HeJWKb5r1QnVpo0wl7zZkuYz+K+7Qox7692/75JBKFS8vI23SAw==
Merkle root
ab8d4de5853e13d360962f03dfb915842a42e1c5601cdaac4f2b37ad0ba96b78
Merkle path
["bf072fdbee8cdb9300df9c5331e86683e02907eaf10e75ffe6bb8439b7c61b63","2697a242712b547275539c5f5cd60fcc6baab032bfde1e81c52c8bd0a63d8ad7","486271c6e14a57dd3601a9541d6a329a19c7efecb19e94d3ecd5dfda4fc01921","f001ebe55efd3b53b73a4121bd968cc5b75c21fb434a03e70eef3db19c81c249","c4fa21e1cbf1692333ffc375ce53f76079b744c7818d207f1ac7d3d943265264","8bce72f968c34e83acb46f3877e71e59953ff81bb649366325bafc6c58f1ef8b","4c88ea0f9240568fed7b7f9a7ff583ef1931caef026cc406d9906d17de13782c","e5b49eba2cd9900604cafaf110314e75bf1b407238a91c83dfcd05cddc3c2dc4","1fae433fa62b1d10de8d65ab002c964b0f9d81950fa70b5434c25815fc6a196d","62fc219472e3c18412859cebb11f16aa36347adea22771a748638dc54c108bc2","693fbba9b3c12d5dfd7c6211482aa843bfca6b1a3e761ffd5d5c7b28411c25c0","8a8cf96cfb22cc9b18bf024f817204dc03453e9f0ef24dcc21741bab976d07bb","2f227ff2cf64aec6ce4a159fd9eeccf0e147e045e656ebde552ff3787ab930ab","0d65fb7d6fb1f6bc88b73078a53833894fc747e8876cdcdc40319714cf650cf8","90ac6c76618b09f3702b50a6410c80828bbcb4ead0d9d85dda294a654717f483"]
Anchored
2026-10-09
Public log entry
search.sigstore.dev, log index 3162293789 · entry 108e9186e8c5677af0ef…
Expected log hash
49c1b9c7cf9c0180248092c94f6cb48d5e59f6c65f471decaa61f120e90874ce 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":"v1791539611981","kind":"published-quote","locale":"en","page":"brand:bitwarden","quote":"The user experience of this app is poor.","rating":3,"review_date":"2026-09-02","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 (ab8d4de5853e…), 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.