CHANGELOG.md
# Changelog
## v0.4.0 (2025-03-12)
* Add Changelog
* Add NaCl public-key encryption via X25519 ECDH
* `Salchicha.box/4`
* `Salchicha.box_open/4`
* `Salchicha.generate_box_keypair/0`
* `Salchicha.compute_shared_secret/2`
* Add NaCl public-key message signing via Ed25519 EdDSA
* `Salchicha.sign/2`
* `Salchicha.signature_valid?/3`
* `Salchicha.generate_sign_keypair/0`
* Add examples of public key crypto usage
## v0.3.0 (2025-03-07)
* Improve docs
* Add examples for XSalsa20/XChaCha20 encryption/decryption
* Add additional type docs
* Change references of "block count" to "block counter" for clarity
* Fix typos
* Internal function `Salchicha.Salsa.xsalsa20_poly1305_decrypt/4` takes `cipher_text` and `tag` as arguments instead of combined message. `Salchicha.secretbox_open/3` remains unchanged.
* Expose Salsa20 Poly1305 functions
* `Salchicha.Salsa.salsa20_poly1305_encrypt/3`
* `Salchicha.Salsa.salsa20_poly1305_decrypt/4`
## v0.2.0 (2025-03-06)
* Improve docs and typespecs
* Add pure elixir implementations of ChaCha20/XChaCha20 Poly1305 functions in `Salchicha.Chacha`
* `Salchicha.Chacha.chacha20_poly1305_encrypt_pure/4`
* `Salchicha.Chacha.chacha20_poly1305_decrypt_pure/5`
* `Salchicha.Chacha.xchacha20_poly1305_encrypt_pure/4`
* `Salchicha.Chacha.xchacha20_poly1305_decrypt_pure/5`
* Add `Salchicha.Chacha.chacha20_xor/4` stream cipher primitive
* Internal `Salchicha.Salsa` improvements
* Verify MAC before decrypting remaining ciphertext
## v0.1.0 (2025-02-19)
* Initial release
* Support XSalsa20 Poly1305
* `Salchicha.secretbox/3`
* `Salchicha.secretbox_open/3`
* Internal functions and primitives in `Salchicha.Salsa`
* Support XChaCha20 Poly1305 in combined and detached modes
* `Salchicha.xchacha20_poly1305_encrypt/4`
* `Salchicha.xchacha20_poly1305_decrypt/4`
* `Salchicha.xchacha20_poly1305_encrypt_detached/4`
* `Salchicha.xchacha20_poly1305_decrypt_detached/5`
* Internal functions and primitives in `Salchicha.Chacha`