BSD-3-Clause licensed by Hécate Moonlight, Koz Ross
Maintained by The Haskell Cryptography contributors
This version can be pinned in stack with:sel-0.1.0.0@sha256:f8c49b7bfb682725cd9373aa96ca27442f1a164d4bd32b0ac7b9e2441db4e9cc,2670

sel CI made with Haskell

Sel is the library for casual users by the Haskell Cryptography Group. It builds on Libsodium, a reliable and audited library for common operations.

Hashing

Purpose Module
Hash passwords Sel.Hashing.Password
Verify the integrity of files and hash large data Sel.Hashing
Hash tables, bloom filters, fast integrity checking of short input Sel.Hashing.Short

Secret key / Symmetric cryptography

Purpose Module
Authenticate a message with a secret key Sel.SecretKey.Authentication
Encrypt and sign data with a secret key Sel.SecretKey.Cipher
Encrypt a stream of messages Sel.SecretKey.Stream

Public and Secret key / Asymmetric cryptography

Purpose Module
Sign and encrypt with my secret key and my recipient’s public key Sel.PublicKey.Cipher
Sign and encrypt an anonymous message with my recipient’s public key Sel.PublicKey.Seal
Sign with a secret key and distribute my public key Sel.PublicKey.Signature

HMAC message authentication

Purpose Module
HMAC-256 Sel.HMAC.SHA256
HMAC-512 Sel.HMAC.SHA512
HMAC-512-256 Sel.HMAC.SHA512_256

Legacy SHA2 constructs

Purpose Module
SHA-256 Sel.Hashing.SHA256
SHA-512 Sel.Hashing.SHA512
Scrypt Sel.Scrypt

Changes

CHANGELOG

sel-0.1.0.0

  • Consistently rename ciphertext-related types and functions #182
  • Add support for additional data (AD) in Sel.SecretKey.Stream #183
  • Define some cryptographic functions in sel as pure #189

sel-0.0.3.0

  • Add constant time hex encoding #176
  • Support text-display 1.0.0.0
  • Replace usages of memcpy with Foreign.copyBytes #172
  • Add constant-time pointer comparison #171
  • (Internal) Add constant-time Eq, use Scoped for internals #169
  • Cleanup, allow more versions of tasty #168
  • (Internal) Add Scoped for better readability of nested continuations #167
  • Update hedgehog #180

sel-0.0.2.0

  • Add usages of secureMain in examples
  • Depends on libsodium-bindings-0.0.2.0