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.

“Every iOS app that has in-app subscriptions is required to have a “restore purchases” flow”

Checks (re-run on this request)

Proof data

Record hash (SHA-256)
0b90b9eaac3410b05352311f9b3289c7597d1275f7e36681f3a40bc0dac0cfd0
Signature (Ed25519, base64)
b0OMKETgNVkykxv8Uct+r1bo655SoTlcKKh2SYp7AW4qRz9mTSAck8mHApySGskitNnt4ehBBGLAAJKbQidtCw==
Merkle root
9ddf6b9053b6e5e7a2f15ee7f3bfc8dfb72c48a1917ae5b7e553033e3ded6523
Merkle path
["0b9ec2071f9f1187b512b111d24cde01eb7f9f50f05b0b8223a77a392a1a3bbd","7fae8e564e92f511c89cccc96ed94648507aa9f9e142e1db0fb672672576fe12","8dabd7836e268ec7bfa1fbc179138b351f9ccd07b2fa0a45936a590e472f7450","6198f92a88eafb23684b37aab8f77b1d14f4337f1900a25d071f7a05ae760089","1246f0519c2d2865a38951359421c7b18fd364234f9a0836da85eff8acdaaf98","3d553e871e71cc828f9cc7c91a145abcd66546ffcba3cafecf725cbc249cc718","5631c8e1f8163618365da89f663de8afbbf5cb95b655516d4ced312b95fc49ac","1cc0241fe2e5c404bfe8b45c1cb7f067846b7964fcdaba89d9818a5758cb044d","4fab6ffd794ceab59a863f7cbb1f73d1f709efd495c4f6b1172c24d0f97c2bab","62bb60a9913631c1b9d34dd951571334fe9f161a482cafd2a776c54cfa0d0ee3","038819857fb4bb0d6571d3d98bc6a7629b4e9068d5be86efc4eee63acee35906","dcfa3f0fc39e185ac4a0c3ac51da16fea53e6a2f4d1d1050a83d0659142cb3f6","48fbcfcef32592ba72653616c6b287b5138e378088c17384b9af4bf9ec9a216f","a4308f946a16111c9d609738b93b2f2ae813ce88e33e490f89cf33e3a52e64d3","50c4eca268fbb41f8c6bc36d8a5d1b6cc09733d96f0fb33e6cb584096c56f695"]
Anchored
2026-08-19
Public log entry
search.sigstore.dev, log index 2514967984 · entry 108e9186e8c5677a902c…
Expected log hash
be0cb34bbab326d10b25013c37c9294b14554a6c6e9fac3dc68c06dc2c3c60e7 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":"v1787135269737","kind":"published-quote","locale":"en","page":"subtheme:proton/ordering/setup-configuration/en","quote":"Every iOS app that has in-app subscriptions is required to have a “restore purchases” flow","rating":1,"review_date":"2026-06-20","source":"Apple App Store","source_url":"https://apps.apple.com/us/app/id1437005085?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 (9ddf6b9053b6…), 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.