The extensive README is also a pretty good intro to how one can do crypto (as in cryptography: get off my lawn!) in Haskell using the excellent cryptonite library. For those who won't click through to TFR: > import Crypto.Number.Hash (SHA3_256) > import Crypto.PubKey.ECC.ECDSA (sign, verify) > import Crypto.PubKey.ECC.Generate (generate) > import Crypto.PubKey.ECC.Types (getCurveByName, SEC_p256k1) > let msg = "hello…
Is cryptonite anything like production ready? I mean, does it protect against timing side channels (perhaps using crypto instructions like AES-NI), etc. Something I didn't like about it is that it exposes crypto primitives, including stuff like TripleDES, with no warning[0]. The tutorial also has you handle IVs directly.[1] [0] https://hackage.haskell.org/package/cryptonite-0.24/docs/Cry... [1] https://hackage.haskel…
Also, the tutorial is a bit advanced and is meant to show a particular use case of using symmetric block ciphers for encryption/decryption, you are not always using such bare-bones primitives-- check out the hashing part of the README.md in Nanocoin.
IMO it's production ready, and has most all potential known attacks documented above the functions that are vulnerable.