use the typeclass for the lowest IO impure C bindings definitions, and define the pure interface as generic on top of this. At the same time define an Hash.IO interface to allow mutable manipulations of hash contextes when necessary. Use HashAlgorithm instead of HashFunction in the [PubKey] sections Tweak the HMAC, PBKDF2 functions to be more efficient and use the new interface |
||
|---|---|---|
| cbits | ||
| Crypto | ||
| gen | ||
| tests | ||
| .gitignore | ||
| .travis.yml | ||
| cryptonite.cabal | ||
| cryptonite.sublime-project | ||
| LICENSE | ||
| QA.hs | ||
| README.md | ||
| Setup.hs | ||
cryptonite
Cryptonite is a haskell repository of cryptographic primitives. Each crypto algorithm have specificities, that are hard to wrap in common APIs and types, so instead of trying to provide a common ground for algorithms that wouldn't allow to provide all different usage or a really complicated system, this just provide a non-consistant low-level API.
If you have no idea what're you doing, please do not use this directly, rely on higher level protocols or higher level implementation.
Documentation: cryptonite on hackage
Coding Style
The coding style of this project mostly follows: haskell-style
Support
cryptonite supports the following platform:
- Windows >= 8
- OSX >= 10.8
- Linux
On the following architectures:
- x86-64
- i386
On the following haskell versions:
- GHC 7.0.x
- GHC 7.4.x
- GHC 7.6.x
- GHC 7.8.x
- GHC 7.10.x
Links
TODO
- remove copy of read-only part of ChaCha / Salsa state by splitting the stuff in two.
- add support for XSalsa


