Go to file
Mikael Bung 0ca7afcb87 [SECURITY] Fix a buffer overflow in SHA384
Caused by a difference in the size of the digest
byte array allocated on Haskell side and the
amount of bytes copied to it on the C side.

In cbits/cryptonite_sha512.c:cryptonite_sha384_finalize
SHA384_DIGEST_SIZE bytes is copied into the out buffer.
SHA384_DIGEST_SIZE is #defined as 64 in cbits/cryptonite_sha512.h
while the buffer given will have size 48, as defined in
Crypto/Hash/SHA384.hs.

Defining SHA384_DIGEST_SIZE as 48 fixes the issue.
2016-02-21 09:23:36 +00:00
benchs [bench] add some number for chacha poly1305 2015-07-30 14:40:54 +01:00
cbits [SECURITY] Fix a buffer overflow in SHA384 2016-02-21 09:23:36 +00:00
Crypto Merge pull request #62 from clinty/dsa-truncate 2016-02-11 08:04:32 +00:00
gen Add support for blake2s(p) 224 bits 2016-01-09 10:09:35 +00:00
tests Added Ed448-Goldilocks support 2016-02-09 01:22:55 -07:00
.gitignore [bench] ignore binaries 2015-05-02 05:43:06 +01:00
.travis.yml update .travis 2016-01-14 19:17:43 +00:00
CHANGELOG.md update CHANGELOG 2016-02-20 06:21:07 +00:00
cryptonite.cabal bump version to 0.12 2016-02-20 06:21:15 +00:00
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 add dummy makefile to run QA 2015-05-03 14:26:21 +01:00
QA.hs [QA] update to latest state of things 2015-07-29 10:02:44 +01:00
README.md add BSD to support list 2015-07-08 13:46:42 +02:00
Setup.hs initial commit. 2014-07-04 14:58:01 +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 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

TODO

  • add support for XSalsa