This no longer seems to be used and is liable to make people think that cryponite provides Byteable instances when in fact its use is deprecated.
363 lines
13 KiB
Plaintext
363 lines
13 KiB
Plaintext
Name: cryptonite
|
|
Version: 0.21
|
|
Synopsis: Cryptography Primitives sink
|
|
Description:
|
|
A repository of cryptographic primitives.
|
|
.
|
|
* Symmetric ciphers: AES, DES, 3DES, Blowfish, Camellia, RC4, Salsa, XSalsa, ChaCha.
|
|
.
|
|
* Hash: SHA1, SHA2, SHA3, MD2, MD4, MD5, Keccak, Skein, Ripemd, Tiger, Whirlpool, Blake2
|
|
.
|
|
* MAC: HMAC, Poly1305
|
|
.
|
|
* Asymmetric crypto: DSA, RSA, DH, ECDH, ECDSA, ECC, Curve25519, Ed25519, Ed448
|
|
.
|
|
* Key Derivation Function: PBKDF2, Scrypt, HKDF
|
|
.
|
|
* Cryptographic Random generation: System Entropy, Deterministic Random Generator
|
|
.
|
|
* Data related: Anti-Forensic Information Splitter (AFIS)
|
|
.
|
|
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.
|
|
License: BSD3
|
|
License-file: LICENSE
|
|
Copyright: Vincent Hanquez <vincent@snarc.org>
|
|
Author: Vincent Hanquez <vincent@snarc.org>
|
|
Maintainer: vincent@snarc.org
|
|
Category: Cryptography
|
|
Stability: experimental
|
|
Build-Type: Simple
|
|
Homepage: https://github.com/haskell-crypto/cryptonite
|
|
Bug-reports: https://github.com/haskell-crypto/cryptonite/issues
|
|
Cabal-Version: >=1.10
|
|
extra-doc-files: README.md CHANGELOG.md
|
|
extra-source-files: cbits/*.h
|
|
cbits/aes/*.h
|
|
cbits/ed25519/*.h
|
|
cbits/ed448/*.h
|
|
cbits/p256/*.h
|
|
cbits/blake2/ref/*.h
|
|
cbits/blake2/sse/*.h
|
|
cbits/aes/x86ni_impl.c
|
|
tests/*.hs
|
|
|
|
source-repository head
|
|
type: git
|
|
location: https://github.com/haskell-crypto/cryptonite
|
|
|
|
Flag support_aesni
|
|
Description: allow compilation with AESNI on system and architecture that supports it
|
|
Default: True
|
|
Manual: True
|
|
|
|
Flag support_rdrand
|
|
Description: allow compilation with RDRAND on system and architecture that supports it
|
|
Default: True
|
|
Manual: True
|
|
|
|
Flag support_pclmuldq
|
|
Description: Allow compilation with pclmuldq on architecture that supports it
|
|
Default: False
|
|
Manual: True
|
|
|
|
Flag support_blake2_sse
|
|
Description: Use SSE optimized version of BLAKE2.
|
|
Default: False
|
|
Manual: True
|
|
|
|
Flag integer-gmp
|
|
Description: Whether or not to use GMP for some functions
|
|
Default: True
|
|
Manual: True
|
|
|
|
Flag support_deepseq
|
|
Description: add deepseq instances for cryptographic types
|
|
Default: True
|
|
Manual: True
|
|
|
|
Flag old_toolchain_inliner
|
|
Description: use -fgnu89-inline to workaround an old compiler / linker / glibc issue.
|
|
Default: False
|
|
Manual: True
|
|
|
|
Flag check_alignment
|
|
Description: extra check on alignment in C layers, which cause lowlevel assert errors. for debugging only.
|
|
Default: False
|
|
Manual: True
|
|
|
|
Library
|
|
Exposed-modules: Crypto.Cipher.AES
|
|
Crypto.Cipher.Blowfish
|
|
Crypto.Cipher.Camellia
|
|
Crypto.Cipher.ChaCha
|
|
Crypto.Cipher.ChaChaPoly1305
|
|
Crypto.Cipher.DES
|
|
Crypto.Cipher.RC4
|
|
Crypto.Cipher.Salsa
|
|
Crypto.Cipher.TripleDES
|
|
Crypto.Cipher.Types
|
|
Crypto.Cipher.XSalsa
|
|
Crypto.ConstructHash.MiyaguchiPreneel
|
|
Crypto.Data.AFIS
|
|
Crypto.Data.Padding
|
|
Crypto.ECC
|
|
Crypto.Error
|
|
Crypto.MAC.CMAC
|
|
Crypto.MAC.Poly1305
|
|
Crypto.MAC.HMAC
|
|
Crypto.Number.Basic
|
|
Crypto.Number.F2m
|
|
Crypto.Number.Generate
|
|
Crypto.Number.ModArithmetic
|
|
Crypto.Number.Prime
|
|
Crypto.Number.Serialize
|
|
Crypto.Number.Serialize.Internal
|
|
Crypto.KDF.PBKDF2
|
|
Crypto.KDF.Scrypt
|
|
Crypto.KDF.BCrypt
|
|
Crypto.KDF.HKDF
|
|
Crypto.Hash
|
|
Crypto.Hash.IO
|
|
Crypto.Hash.Algorithms
|
|
Crypto.PubKey.Curve25519
|
|
Crypto.PubKey.MaskGenFunction
|
|
Crypto.PubKey.DH
|
|
Crypto.PubKey.DSA
|
|
Crypto.PubKey.ECC.Generate
|
|
Crypto.PubKey.ECC.Prim
|
|
Crypto.PubKey.ECC.DH
|
|
Crypto.PubKey.ECC.ECDSA
|
|
Crypto.PubKey.ECC.P256
|
|
Crypto.PubKey.ECC.Types
|
|
Crypto.PubKey.ECIES
|
|
Crypto.PubKey.Ed25519
|
|
Crypto.PubKey.Ed448
|
|
Crypto.PubKey.RSA
|
|
Crypto.PubKey.RSA.PKCS15
|
|
Crypto.PubKey.RSA.Prim
|
|
Crypto.PubKey.RSA.PSS
|
|
Crypto.PubKey.RSA.OAEP
|
|
Crypto.PubKey.RSA.Types
|
|
Crypto.Random
|
|
Crypto.Random.Types
|
|
Crypto.Random.Entropy
|
|
Crypto.Random.EntropyPool
|
|
Crypto.Random.Entropy.Unsafe
|
|
Crypto.Tutorial
|
|
Other-modules: Crypto.Cipher.AES.Primitive
|
|
Crypto.Cipher.Blowfish.Box
|
|
Crypto.Cipher.Blowfish.Primitive
|
|
Crypto.Cipher.Camellia.Primitive
|
|
Crypto.Cipher.DES.Primitive
|
|
Crypto.Cipher.Types.AEAD
|
|
Crypto.Cipher.Types.Base
|
|
Crypto.Cipher.Types.Block
|
|
Crypto.Cipher.Types.GF
|
|
Crypto.Cipher.Types.Stream
|
|
Crypto.Cipher.Types.Utils
|
|
Crypto.Error.Types
|
|
Crypto.Number.Compat
|
|
Crypto.Hash.Types
|
|
Crypto.Hash.Blake2s
|
|
Crypto.Hash.Blake2sp
|
|
Crypto.Hash.Blake2b
|
|
Crypto.Hash.Blake2bp
|
|
Crypto.Hash.SHA1
|
|
Crypto.Hash.SHA224
|
|
Crypto.Hash.SHA256
|
|
Crypto.Hash.SHA384
|
|
Crypto.Hash.SHA512
|
|
Crypto.Hash.SHA512t
|
|
Crypto.Hash.SHA3
|
|
Crypto.Hash.Keccak
|
|
Crypto.Hash.MD2
|
|
Crypto.Hash.MD4
|
|
Crypto.Hash.MD5
|
|
Crypto.Hash.RIPEMD160
|
|
Crypto.Hash.Skein256
|
|
Crypto.Hash.Skein512
|
|
Crypto.Hash.Tiger
|
|
Crypto.Hash.Whirlpool
|
|
Crypto.Random.Entropy.Source
|
|
Crypto.Random.Entropy.Backend
|
|
Crypto.Random.ChaChaDRG
|
|
Crypto.Random.SystemDRG
|
|
Crypto.Random.Probabilistic
|
|
Crypto.PubKey.Internal
|
|
Crypto.PubKey.ElGamal
|
|
Crypto.ECC.Simple.Types
|
|
Crypto.ECC.Simple.Prim
|
|
Crypto.Internal.Proxy
|
|
Crypto.Internal.ByteArray
|
|
Crypto.Internal.Compat
|
|
Crypto.Internal.CompatPrim
|
|
Crypto.Internal.DeepSeq
|
|
Crypto.Internal.Imports
|
|
Crypto.Internal.Words
|
|
Crypto.Internal.WordArray
|
|
Build-depends: base >= 4.3 && < 5
|
|
, bytestring
|
|
, memory >= 0.8
|
|
, ghc-prim
|
|
ghc-options: -Wall -fwarn-tabs -optc-O3 -fno-warn-unused-imports
|
|
default-language: Haskell2010
|
|
cc-options: -std=gnu99
|
|
if flag(old_toolchain_inliner)
|
|
cc-options: -fgnu89-inline
|
|
C-sources: cbits/cryptonite_chacha.c
|
|
, cbits/cryptonite_salsa.c
|
|
, cbits/cryptonite_xsalsa.c
|
|
, cbits/cryptonite_rc4.c
|
|
, cbits/cryptonite_cpu.c
|
|
, cbits/ed25519/ed25519.c
|
|
, cbits/ed448/x448.c
|
|
, cbits/p256/p256.c
|
|
, cbits/p256/p256_ec.c
|
|
, cbits/cryptonite_blake2s.c
|
|
, cbits/cryptonite_blake2sp.c
|
|
, cbits/cryptonite_blake2b.c
|
|
, cbits/cryptonite_blake2bp.c
|
|
, cbits/cryptonite_poly1305.c
|
|
, cbits/cryptonite_sha1.c
|
|
, cbits/cryptonite_sha256.c
|
|
, cbits/cryptonite_sha512.c
|
|
, cbits/cryptonite_sha3.c
|
|
, cbits/cryptonite_keccak.c
|
|
, cbits/cryptonite_md2.c
|
|
, cbits/cryptonite_md4.c
|
|
, cbits/cryptonite_md5.c
|
|
, cbits/cryptonite_ripemd.c
|
|
, cbits/cryptonite_skein256.c
|
|
, cbits/cryptonite_skein512.c
|
|
, cbits/cryptonite_tiger.c
|
|
, cbits/cryptonite_whirlpool.c
|
|
, cbits/cryptonite_scrypt.c
|
|
include-dirs: cbits cbits/ed25519
|
|
|
|
if arch(x86_64)
|
|
C-sources: cbits/curve25519/curve25519-donna-c64.c
|
|
else
|
|
C-sources: cbits/curve25519/curve25519-donna.c
|
|
|
|
-- FIXME armel or mispel is also little endian.
|
|
-- might be a good idea to also add a runtime autodetect mode.
|
|
-- ARCH_ENDIAN_UNKNOWN
|
|
if (arch(i386) || arch(x86_64))
|
|
CPP-options: -DARCH_IS_LITTLE_ENDIAN
|
|
|
|
if arch(i386)
|
|
CPP-options: -DARCH_X86
|
|
|
|
if arch(x86_64)
|
|
CPP-options: -DARCH_X86_64
|
|
|
|
if flag(support_rdrand) && (arch(i386) || arch(x86_64)) && !os(windows)
|
|
CPP-options: -DSUPPORT_RDRAND
|
|
Other-modules: Crypto.Random.Entropy.RDRand
|
|
c-sources: cbits/cryptonite_rdrand.c
|
|
|
|
if flag(support_aesni) && (os(linux) || os(freebsd) || os(osx)) && (arch(i386) || arch(x86_64))
|
|
CC-options: -mssse3 -maes -DWITH_AESNI
|
|
if flag(support_pclmuldq)
|
|
CC-options: -msse4.1 -mpclmul -DWITH_PCLMUL
|
|
C-sources: cbits/aes/x86ni.c
|
|
, cbits/aes/generic.c
|
|
, cbits/aes/gf.c
|
|
, cbits/cryptonite_aes.c
|
|
else
|
|
C-sources: cbits/aes/generic.c
|
|
, cbits/aes/gf.c
|
|
, cbits/cryptonite_aes.c
|
|
|
|
if arch(x86_64) || flag(support_blake2_sse)
|
|
C-sources: cbits/blake2/sse/blake2s.c
|
|
, cbits/blake2/sse/blake2sp.c
|
|
, cbits/blake2/sse/blake2b.c
|
|
, cbits/blake2/sse/blake2bp.c
|
|
include-dirs: cbits/blake2/sse
|
|
else
|
|
C-sources: cbits/blake2/ref/blake2s-ref.c
|
|
, cbits/blake2/ref/blake2sp-ref.c
|
|
, cbits/blake2/ref/blake2b-ref.c
|
|
, cbits/blake2/ref/blake2bp-ref.c
|
|
include-dirs: cbits/blake2/ref
|
|
|
|
if os(windows)
|
|
cpp-options: -DWINDOWS
|
|
Build-Depends: Win32
|
|
Other-modules: Crypto.Random.Entropy.Windows
|
|
extra-libraries: advapi32
|
|
else
|
|
Other-modules: Crypto.Random.Entropy.Unix
|
|
|
|
if impl(ghc) && flag(integer-gmp)
|
|
Build-depends: integer-gmp
|
|
|
|
if flag(support_deepseq)
|
|
CPP-options: -DWITH_DEEPSEQ_SUPPORT
|
|
Build-depends: deepseq
|
|
if flag(check_alignment)
|
|
cc-options: -DWITH_ASSERT_ALIGNMENT
|
|
|
|
Test-Suite test-cryptonite
|
|
type: exitcode-stdio-1.0
|
|
hs-source-dirs: tests
|
|
Main-is: Tests.hs
|
|
Other-modules: BlockCipher
|
|
ChaCha
|
|
BCrypt
|
|
Hash
|
|
Imports
|
|
KAT_AES.KATCBC
|
|
KAT_AES.KATECB
|
|
KAT_AES.KATGCM
|
|
KAT_AES.KATOCB3
|
|
KAT_AES.KATXTS
|
|
KAT_AES
|
|
KAT_AFIS
|
|
KAT_Blowfish
|
|
KAT_Camellia
|
|
KAT_Curve25519
|
|
KAT_DES
|
|
KAT_Ed448
|
|
KAT_Ed25519
|
|
KAT_CMAC
|
|
KAT_HKDF
|
|
KAT_HMAC
|
|
KAT_MiyaguchiPreneel
|
|
KAT_PBKDF2
|
|
KAT_PubKey.DSA
|
|
KAT_PubKey.ECC
|
|
KAT_PubKey.ECDSA
|
|
KAT_PubKey.OAEP
|
|
KAT_PubKey.PSS
|
|
KAT_PubKey.P256
|
|
KAT_PubKey
|
|
KAT_RC4
|
|
KAT_Scrypt
|
|
KAT_TripleDES
|
|
ChaChaPoly1305
|
|
Number
|
|
Number.F2m
|
|
Padding
|
|
Poly1305
|
|
Salsa
|
|
Utils
|
|
XSalsa
|
|
Build-Depends: base >= 3 && < 5
|
|
, bytestring
|
|
, memory
|
|
, tasty
|
|
, tasty-quickcheck
|
|
, tasty-hunit
|
|
, tasty-kat
|
|
, cryptonite
|
|
ghc-options: -Wall -fno-warn-orphans -fno-warn-missing-signatures -fno-warn-unused-imports -rtsopts
|
|
default-language: Haskell2010
|