entropy alternatives and similar packages
Based on the "Cryptography" category.
Alternatively, view entropy alternatives based on common mentions on social networks and blogs.
-
merkle-tree
An implementation of a Merkle Tree and merkle tree proofs -
pedersen-commitment
An implementation of Pedersen commitment schemes -
arithmetic-circuits
Arithmetic circuits for zero knowledge proof systems -
cryptohash
efficient and practical cryptohashing in haskell. DEPRECATED in favor of cryptonite -
oblivious-transfer
Oblivious transfer for multiparty computation -
elliptic-curve
A polymorphic interface for elliptic curve operations -
cipher-blowfish
DEPRECATED by cryptonite; A collection of cryptographic block and stream ciphers in haskell -
cipher-aes
DEPRECATED - use cryptonite - a comprehensive fast AES implementation for haskell that supports aesni and advanced cryptographic modes. -
crypto-api
Haskell generic interface (type classes) for cryptographic algorithms -
ed25519
Minimal ed25519 Haskell package, binding to the ref10 SUPERCOP implementation. -
skein
Skein, a family of cryptographic hash functions. Includes Skein-MAC as well. -
qnap-decrypt
Decrypt files encrypted by the QNAP's Hybrid Backup Sync -
cryptohash-sha256
Fast, pure and practical SHA-256 implementation -
galois-fft
Finite field polynomial arithmetic based on fast Fourier transforms -
crypto-pubkey-types
Crypto Public Key algorithm generic types. -
crypto-pubkey
DEPRECATED - use cryptonite - Cryptographic public key related algorithms in haskell (RSA,DSA,DH,ElGamal) -
signable
Deterministic serialisation and signatures with proto-lens and protobuf-elixir support -
crypto-enigma
A Haskell Enigma machine simulator with rich display and machine state details. -
cprng-aes
Crypto Pseudo Random Number Generator using AES in counter mode -
cipher-aes128
Based on cipher-aes, but using a crypto-api interface and providing resulting IVs for each mode -
crypto-numbers
DEPRECATED - use cryptonite - Cryptographic number related function and algorithms
Static code analysis for 29 languages.
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of entropy or a related project?
README
Introduction
This package allows Haskell users to easily acquire entropy for use in critical
security applications by calling out to either windows crypto api, unix/linux's
getrandom
and /dev/urandom
. Hardware RNGs (currently RDRAND, patches
welcome) are supported via the hardwareRNG
function.
Quick Start
To simply get random bytes use getEntropy
:
#!/usr/bin/env cabal
{- cabal:
build-depends: base, entropy, bytestring
-}
import qualified Data.ByteString as BS
import System.Entropy
main :: IO ()
main = print . BS.unpack =<< getEntropy 16
-- Example output: [241,191,215,193,225,27,121,244,16,155,252,41,131,38,6,100]
Faster Randoms from Hardware
Most x86 systems include a hardware random number generator. These can be faster but require more trust in the platform:
import qualified Data.ByteString as B
import System.Entropy
eitherRNG :: Int -> IO B.ByteString
eitherRNG sz = maybe (getEntropy sz) pure =<< getHardwareEntropy sz
main :: IO ()
main = print . B.unpack =<< eitherRNG 32
This package supports Windows, {li,u}nix, QNX, and has preliminary support for HaLVM.
Typically tested on Linux and OSX - testers are as welcome as patches.