lowlevel set of cryptographic primitives for haskell
Go to file
2020-06-26 07:16:30 +02:00
benchs ECDSA with a type class 2019-11-11 17:46:16 +01:00
cbits Add finalize_prefix functions 2020-06-26 07:16:30 +02:00
Crypto Add HashAlgorithmPrefix API 2020-06-26 07:16:18 +02:00
gen Update generation templates per latest changes 2019-02-25 06:42:44 +01:00
tests Use isNothing 2020-06-13 09:24:47 +02:00
.appveyor.yml Fix ignored allow_failures and weeder build in Travis CI 2020-03-08 18:34:59 +01:00
.gitignore Ignore stack.yaml.lock 2019-07-28 08:46:18 +02:00
.haskell-ci Fix ignored allow_failures and weeder build in Travis CI 2020-03-08 18:34:59 +01:00
.hlint.yaml Avoid error "Unknown mingw32 arch" with hlint 2020-03-14 08:07:35 +01:00
.travis.yml Fix ignored allow_failures and weeder build in Travis CI 2020-03-08 18:34:59 +01:00
CHANGELOG.md release 0.27 2020-06-21 12:07:25 +08:00
CONTRIBUTING.md add CONTRIBUTING guide - non definitive 2016-12-09 15:06:05 +00:00
cryptonite.cabal Add finalize_prefix functions 2020-06-26 07:16:30 +02:00
cryptonite.externals Update reference blake2 implementation with upstream 2019-02-21 17:16:00 +05:30
cryptonite.sublime-project wip 2015-04-08 14:12:58 +01:00
LICENSE update main license 2015-03-12 05:44:23 +00:00
Makefile fix QA building command 2019-01-06 16:08:48 +00:00
QA.hs ECDSA with a type class 2019-11-11 17:46:16 +01:00
README.md Drop GHC 7.8 and GHC 7.10 support, refer to pkg-guidelines 2018-03-12 08:35:49 +00:00
Setup.hs initial commit. 2014-07-04 14:58:01 +01:00
stack.yaml Fix ignored allow_failures and weeder build in Travis CI 2020-03-08 18:34:59 +01:00

cryptonite

Join the chat at https://gitter.im/vincenthz/cryptonite Build Status BSD Haskell

Cryptonite is a haskell repository of cryptographic primitives. Each crypto algorithm has specificities that are hard to wrap in common APIs and types, so instead of trying to provide a common ground for algorithms, this package provides a non-consistent low-level API.

If you have no idea what you're doing, please do not use this directly. Instead, rely on higher level protocols or implementations.

Documentation: cryptonite on hackage

Stability

Cryptonite APIs are stable, and we only strive to add, not change or remove. Note that because the API exposed is wide and also expose internals things (for power users and flexibility), certains APIs can be revised in extreme cases where we can't just add.

Versioning

Next version of 0.x is 0.(x+1). There's no exceptions, or API related meaning behind the numbers.

Each versions of stackage (going back 3 stable LTS) has a cryptonite version that we maintain with security fixes when necessary and are versioned with the following 0.x.y scheme.

Coding Style

The coding style of this project mostly follows: haskell-style

Support

See Haskell packages guidelines

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 purposes. This is achieved 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