crypto-sodium: Easy-and-safe-to-use high-level cryptography based on Sodium

[ cryptography, library, mpl ] [ Propose Tags ]

This is a collection of high-level cryptographic primitives based on Sodium, spiced up with extra type-safety of the Haskell type system.

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 you 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 more than the same interface as NaCl. Nowadays it implements additional primitives and utility functions.


Library initialisation

Secret-key cryptography

Public-key cryptography

Additional primitives

[Skip to Readme]
Versions [faq],,
Change log
Dependencies base (>=4.10 && <4.15), bytestring (>=0.9 && <0.11), cereal (>=0.1 && <0.6), libsodium (>=1.0.11 && <2), memory (>=0.14.15 && <0.16), NaCl (>= && <0.1), safe-exceptions (==0.1.*) [details]
License MPL-2.0
Copyright 2020 Serokell
Author Kirill Elagin <>
Maintainer Kirill Elagin <>
Category Cryptography
Home page
Bug tracker
Source repo head: git clone
Uploaded by kirelagin at 2020-06-12T11:36:47Z
Distributions NixOS:
Downloads 114 total (38 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs uploaded by user
Build status unknown [no reports yet]


[Index] [Quick Jump]


Maintainer's Corner

For package maintainers and hackage trustees

Readme for crypto-sodium-

[back to package description]


Easy-and-safe-to-use high-level cryptography based on Sodium

Note: this package is experimental and WIP.


Get it

Add crypto-sodium to the dependencies of your package.


All documentation exists is in the form of Haddock comments, you can find them in the source code or browse on Hackage.