NaCl: Easy-and-safe-to-use library for cryptography

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]

This library uses Sodium under the hood, but only exposes the primitives that are part of the “classic” NaCl interface. We believe, it is better to be paranoid than sorry.

Note: this package is experimental and WIP.

Secret-key cryptography


[Skip to Readme]

Properties

Versions 0.0.1.0, 0.0.1.0, 0.0.2.0, 0.0.3.0, 0.0.3.1, 0.0.4.0, 0.0.5.0
Change log CHANGELOG.md
Dependencies base (>=4.10 && <4.15), bytestring (>=0.9 && <0.11), gdp, libsodium (>=1.0 && <2), memory, safe-exceptions (>=0.1 && <0.2), text (>=0.7 && <1.3) [details]
License MPL-2.0
Copyright 2020 Serokell
Author Kirill Elagin <kirelagin@serokell.io>
Maintainer Kirill Elagin <kirelagin@serokell.io>
Category Cryptography
Home page https://github.com/serokell/haskell-nacl#readme
Bug tracker https://github.com/serokell/haskell-nacl/issues
Source repo head: git clone https://github.com/serokell/haskell-nacl
Uploaded by kirelagin at 2020-05-23T22:10:32Z

Modules

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Readme for NaCl-0.0.1.0

[back to package description]

NaCl (haskell-NaCl)

Easy-and-safe-to-use library for cryptography.

Note: this package is experimental and WIP.

Cryptography is hard to do right and you should never try to implement it on your own, even if you have access to safe and secure cryptographic primitives. Luckily, D. J. Bernstein created NaCl.

NaCl was designed specifically to make it hard to use it incorrectly and thus save your from a disaster. It exposes high-level cryptographic algorithms with underlying implementations chosen for you, so you do not get flexibility, but you get security, which is more important.

Sodium is a reimplementation of NaCl with the goal to make it more portable across different platforms. With time, it started providing not only the same interface as NaCl, the developers of Sodium decided to add new primitives too.

Sodium is more portable, but some people are afraid of using it, and prefer to stick to NaCl. We agree that it is better to be paranoid than sorry. That is why, even though this library uses Sodium under the hood, it only exposes the primitives that are part of the “classic” NaCl interface.

Why not?

Use

Contributing

If you encounter any issues when using this library or have improvement ideas, please open report in issue on GitHub. You are also very welcome to submit pull request, if you feel like doing so.

License

MPL-2.0 © Serokell