Commit 2090a05
committed
push-seal: hand-seal examples, so tonight's milestone needs no new code
CKIOS proposes the right milestone for tonight: ONE notification, sealed by hand,
that opens on the phone. Not the feature. It exercises every unknown -- key
custody across two processes, seal/open agreement, the APNs environment (which is
currently operator testimony rather than a measurement), and the deep link --
while each piece is small enough that a failure has one candidate cause.
The room listed the sealer as STARTED and the corpus as NOT STARTED, and read
that as blocking. It is not: sealing one payload needs the crate, not the corpus.
The corpus proves CONFORMANCE between two implementations, which is a later
question than whether a blob opens.
So these three examples close that gap with no new library code:
kp generate an X25519 recipient keypair
handseal seal a payload to a public key, print hex, report the size delta
handopen open one, or print the refusal AND its wire code
MEASURED RATHER THAN ESTIMATED, on a realistic ask payload:
111 bytes plaintext -> 160 bytes sealed. 49 bytes of overhead: 1 version + 32
encapsulated key + 16 authentication tag.
That number retires a question I had left open in the spec deliberately -- I
refused to state a derived sealed-size figure before measuring one, because a
derived number stated early becomes normative by accident. Now it is measured:
the 2048-byte plaintext cap yields ~2097 sealed, comfortably inside APNs' 4KB
ceiling, so the cap needs no revision.
Round trip verified with its control: the correct key opens to the exact
plaintext; a wrong recipient refuses as Aead, wire code `malformed`, which is the
three-into-one collapse the spec requires rather than a leak about which part of
the envelope was wrong.
Examples rather than a binary or a script, so they live beside the crate they
exercise and cannot drift from it.1 parent a850151 commit 2090a05
3 files changed
Lines changed: 42 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
0 commit comments