MyNixOS website logo
Description

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

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.

Why

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.

What

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.

How

Library initialisation

  • Crypto.Sodium.Init

Secret-key cryptography

  • Authenticated symmetric-key encryption: Crypto.Sodium.Encrypt.Symmetric

  • Message authentication codes: Crypto.Sodium.Mac

Public-key cryptography

  • Authenticated public-key encryption: Crypto.Sodium.Encrypt.Public

  • Public-key signatures: Crypto.Sodium.Sign

Additional primitives

  • Key derivation and generation: Crypto.Sodium.Key

  • Cryptographically-secure random: Crypto.Sodium.Random

  • Hashing: Crypto.Sodium.Hash

crypto-sodium

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

Note: this package is experimental and WIP.

Use

Get it

Add crypto-sodium to the dependencies of your package.

Documentation

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

Metadata

Version

0.0.5.0

License

Platforms (75)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows