CHANGELOG (1857B)
1 # Changelog 2 3 - 0.1.1 (2026-10-31) 4 * Bumps the ppad-aead and ppad-secp256k1 dependencies, to 0.3.7 5 and 0.5.9, which (along with ppad-fixed) under the llvm flag on 6 x86_64 are compiled with LLVM's x86 cmov converter off 7 (-optlc=-x86-cmov-converter=false). This library is compiled 8 likewise, as ppad-fixed's constant-time arithmetic can be inlined 9 into it. 10 11 - 0.1.0 (2026-10-10) 12 * Breaking: splits the post-handshake session into separate Sender 13 and Receiver states, so one state can't serve both directions and 14 a reader thread and a writer thread can each own one. Every 15 operation returns the next state; the docs now stress that reusing 16 an old state reuses a nonce (or accepts replays). 17 18 * Breaking: the local static key is a Keypair, so its secret and 19 public halves can't be mismatched, and the handshake states are 20 distinct Initiator and Responder types. 21 22 * Breaking: frames are decrypted whole with 'decrypt', or on a 23 stream with 'decrypt_header' (exactly 18 bytes) followed by 24 'decrypt_body'. 'decrypt_frame', 'decrypt_frame_partial' and 25 FrameResult are removed. 26 27 * Breaking: removes unused API (Key32, SessionNonce, MessagePayload, 28 HandshakeState, the public Sec type, the DecryptionFailed error) 29 and the exposed Internal module, renames the InvalidKey error to 30 InvalidEntropy, and drops the Generic, Show and Eq instances of 31 secret-bearing types. All public types have NFData instances. 32 33 * Fixes the key rotation docs (keys rotate every 500 messages in each 34 direction), rotates keys whenever a nonce reaches 1000 or more, and 35 requires ppad-aead >= 0.3.6 for constant-time MAC comparison. 36 37 * Tests now cover every BOLT #8 Appendix A vector, including all 38 handshake failure cases and the final keys on both sides. 39 40 - 0.0.1 (2026-04-18) 41 * Initial release.