The cryptonite package

[Tags:bsd3, library, test]

A repository of cryptographic primitives.

If anything cryptographic related is missing from here, submit a pull request to have it added. This package strive to be a cryptographic kitchen sink that provides cryptography for everyone.

Evaluate the security related to your requirements before using.

Read Crypto.Tutorial for a quick start guide.


[Skip to Readme]

Properties

Versions 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 0.10, 0.11, 0.12, 0.13, 0.14, 0.15, 0.15.1, 0.16, 0.17, 0.18, 0.19, 0.20, 0.21, 0.22
Change log CHANGELOG.md
Dependencies base (>=4.3 && <5), bytestring, deepseq, ghc-prim, integer-gmp, memory (>=0.12), Win32 [details]
License BSD3
Copyright Vincent Hanquez <vincent@snarc.org>
Author Vincent Hanquez <vincent@snarc.org>
Maintainer vincent@snarc.org
Stability experimental
Category Cryptography
Home page https://github.com/haskell-crypto/cryptonite
Bug tracker https://github.com/haskell-crypto/cryptonite/issues
Source repository head: git clone https://github.com/haskell-crypto/cryptonite
Uploaded Fri Feb 24 18:11:48 UTC 2017 by VincentHanquez
Distributions Arch:0.22, Debian:0.10, FreeBSD:0.6, LTSHaskell:0.21, NixOS:0.22, Stackage:0.22, Tumbleweed:0.21
Downloads 7135 total (2087 in the last 30 days)
Votes
2 []
Status Docs available [build log]
Last success reported on 2017-02-24 [all 1 reports]

Modules

[Index]

Flags

NameDescriptionDefaultType
support_aesniallow compilation with AESNI on system and architecture that supports itEnabledManual
support_rdrandallow compilation with RDRAND on system and architecture that supports itEnabledManual
support_pclmuldqAllow compilation with pclmuldq on architecture that supports itDisabledManual
support_sseUse SSE optimized version when existing (BLAKE2, ARGON2)DisabledManual
support_blake2_sseUse SSE optimized version of BLAKE2.DisabledManual
integer-gmpWhether or not to use GMP for some functionsEnabledManual
support_deepseqadd deepseq instances for cryptographic typesEnabledManual
old_toolchain_inlineruse -fgnu89-inline to workaround an old compiler / linker / glibc issue.DisabledManual
check_alignmentextra check on alignment in C layers, which cause lowlevel assert errors. for debugging only.DisabledManual

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

For package maintainers and hackage trustees

Readme for cryptonite

Readme for cryptonite-0.22

cryptonite

Join the chat at <a href="https://gitter.im/vincenthz/cryptonite">https://gitter.im/vincenthz/cryptonite</a> 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

Versioning

Development versions are an incremental number prefixed by 0. There is no API stability between development versions.

Production versions : TBD

Coding Style

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

Support

cryptonite supports the following platforms:

  • 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 work too, but since the maintainer(s) don't have regular access to them, we can't commit to 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 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

Links