cryptonite: Cryptography Primitives sink

[ bsd3, cryptography ] [ Propose Tags ]

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]
Versions [faq] 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, 0.23, 0.24, 0.25, 0.26
Change log CHANGELOG.md
Dependencies base (>=4.3 && <5), bytestring, deepseq, foundation (>=0.0.8), ghc-prim, integer-gmp, memory (>=0.14.5), Win32 [details]
License BSD-3-Clause
Copyright Vincent Hanquez <vincent@snarc.org>
Author Vincent Hanquez <vincent@snarc.org>
Maintainer vincent@snarc.org
Category Cryptography
Home page https://github.com/haskell-crypto/cryptonite
Bug tracker https://github.com/haskell-crypto/cryptonite/issues
Source repo head: git clone https://github.com/haskell-crypto/cryptonite
Uploaded by VincentHanquez at Tue Apr 25 16:21:28 UTC 2017
Distributions Arch:0.26, Debian:0.25, Fedora:0.25, FreeBSD:0.6, LTSHaskell:0.25, NixOS:0.26, Stackage:0.25, openSUSE:0.26
Downloads 98012 total (974 in the last 30 days)
Rating 2.5 (votes: 9) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs available [build log]
Last success reported on 2017-04-25 [all 1 reports]

Modules

[Index]

Flags

NameDescriptionDefaultType
support_aesni

allow compilation with AESNI on system and architecture that supports it

EnabledManual
support_rdrand

allow compilation with RDRAND on system and architecture that supports it

EnabledManual
support_pclmuldq

Allow compilation with pclmuldq on architecture that supports it

DisabledManual
support_sse

Use SSE optimized version when existing (BLAKE2, ARGON2)

DisabledManual
support_blake2_sse

Use SSE optimized version of BLAKE2.

DisabledManual
integer-gmp

Whether or not to use GMP for some functions

EnabledManual
support_deepseq

add deepseq instances for cryptographic types

EnabledManual
old_toolchain_inliner

use -fgnu89-inline to workaround an old compiler linker glibc issue.

DisabledManual
check_alignment

extra 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-0.23

[back to package description]

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