|
8 years ago | |
---|---|---|
Crypto | 8 years ago | |
benchs | 8 years ago | |
cbits | 8 years ago | |
gen | 8 years ago | |
tests | 8 years ago | |
.gitignore | 8 years ago | |
.travis.yml | 8 years ago | |
CHANGELOG.md | 8 years ago | |
LICENSE | 8 years ago | |
Makefile | 8 years ago | |
QA.hs | 8 years ago | |
README.md | 8 years ago | |
Setup.hs | 9 years ago | |
cryptonite.cabal | 8 years ago | |
cryptonite.sublime-project | 8 years ago |
README.md
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
Versioning
Development versions are an incremental number prefixed by 0. No specific meaning is associated with the versions, specially no API stability.
Production versions : TBD
Coding Style
The coding style of this project mostly follows: haskell-style
Support
cryptonite supports the following platform:
- Windows >= 8
- OSX >= 10.8
- Linux
- BSDs
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
Further platforms and architectures probably works too, but until maintainer(s) don't have regular access to them, we can't commit for further support
Known Building Issues
on OSX <= 10.7, the system compiler doesn't understand the '-maes' option, and with the lack of autodetection feature builtin in .cabal file, it is left on the user to disable the aesni. See the [Disabling AESNI] section
Disabling AESNI
It may be useful to disable AESNI (for building, testing or runtime purpose), and one can do that with the support_aesni flag.
As part of configure of cryptonite:
cabal configure --flag='-support_aesni'
or as part of an installation:
cabal install --constraint="cryptonite -support_aesni"
For help with cabal flags, see: stackoverflow : is there a way to define flags for cabal
Links
- ChaCha
- ChaCha-test-vectors
- Poly1305
- Poly1305-test-vectors
- Salsa
- Salsa128-test-vectors
- Salsa256-test-vectors
- PBKDF2
- PBKDF2-test-vectors
- Scrypt
- Curve25519
- Ed25519
- AFIS
TODO
- add support for XSalsa