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.

“Easy to use and add to my shared vault for my household logins”

Checks (re-run on this request)

Proof data

Record hash (SHA-256)
8b6945645927f14b549a610095031b3b47c5b880ab0e7019df47a9ebad9cee6c
Signature (Ed25519, base64)
RPwurGUKk9jUolU16w/MtyfGAVx28AR1iryeCAZAiNrDGPr99LdG1r9jan21faW62I3PC29VIKTiYeguA/wsCA==
Merkle root
c53673589b1f41937342019e079ee2c0ad1635342b5b2a41cc71894367084fa3
Merkle path
["8b68fcc560e4498381bea9795d579b958380349864c93107b3833ba5ab0059b0","9879f015addf0348bfb7bae49e30709a7a26dffb0ae38ebef8a87efffe4e4778","eda73c5c2c3854a02d5b813708e95cbab76de515f488a981561cedefd5e711a3","6849962adfcf54a17ac6feb781a66cdb52fa7163159c796002321accd823dda6","a06ec1cfde9b6bb76de212d6c412e56cefdf1823d6948b79e7504081dc570bde","710b5babdd34bf2491b3a8069a18d5ca86113151082dc90703155438f69f8ab2","ec958f5b84274fc762eb86f893cbbd4474ea8bb02ecca7f3ad2313599f6baab4","0516d59311955de7f3cfde175798d23a3c27767ea81ca8cf102556a6c1633588","09ae3d6a540bc7005bce18c15fdb6dc32fffeb600931bcd241d121f9a47bea5d","48e1bd37a8d6f1d6e1a9f634986dbda15edffb6c3f8405733246abcd741b00e0","c34723beb192dbc1920ca91bac7a2606e98161da65a1dd54e4c8ce37be57b53b","9c04b66d7c5528cc5ea67d448a1d83ba04e099554b934c88a3623e8e6d97b2f9","98f2ab8272daf030d2ea0929f9c08ad47d4c9b5284f3c2cfb819d5893b3773c3","4cd1a38cdfbd42b170e4929f839c7168ae4c49380e77ff0b1b146fb7e3e194bf","8308334b0715cdc2685afc133c95aa85c9b86c8dab9c8659092b74cf2783feda"]
Anchored
2026-10-07
Public log entry
search.sigstore.dev, log index 3123908662 · entry 108e9186e8c5677a51cf…
Expected log hash
5372e71f27172d067b5d688f48846b5317672647da39397abf474cf22aba0576 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":"v1791348381030","kind":"published-quote","locale":"en","page":"product:bitwarden/family/en","quote":"Easy to use and add to my shared vault for my household logins","rating":5,"review_date":"2026-06-14","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 (c53673589b1f…), 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.