Cabal links to all C-sources defined unconditionally, then conditionally append blocks that defined C-Sources; This lead to bug when the order of .c files are important, like for cabal repl. Workaround this bug, by defining everything aes related in the conditional part.
323 lines
12 KiB
Plaintext
323 lines
12 KiB
Plaintext
Name: cryptonite
|
|
Version: 0.10
|
|
Synopsis: Cryptography Primitives sink
|
|
Description:
|
|
A repository of cryptographic primitives.
|
|
.
|
|
* Symmetric ciphers: AES, DES, 3DES, Blowfish, Camellia, RC4, Salsa, ChaCha.
|
|
.
|
|
* Hash: SHA1, SHA2, SHA3, MD2, MD4, MD5, Keccak, Skein, Ripemd, Tiger, Whirlpool, Blake2
|
|
.
|
|
* MAC: HMAC, Poly1305
|
|
.
|
|
* Assymmetric crypto: DSA, RSA, DH, ECDH, ECDSA, ECC, Curve25519, Ed25519
|
|
.
|
|
* 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.
|
|
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/p256/*.h
|
|
cbits/blake2/ref/*.h
|
|
cbits/blake2/ref/*.c
|
|
cbits/blake2/sse/*.h
|
|
cbits/blake2/sse/*.c
|
|
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 AESNI 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
|
|
|
|
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.Data.AFIS
|
|
Crypto.Data.Padding
|
|
Crypto.Error
|
|
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.Ed25519
|
|
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
|
|
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.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
|
|
C-sources: cbits/cryptonite_chacha.c
|
|
, cbits/cryptonite_salsa.c
|
|
, cbits/cryptonite_rc4.c
|
|
, cbits/cryptonite_cpu.c
|
|
, cbits/curve25519/curve25519-donna.c
|
|
, cbits/ed25519/ed25519.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
|
|
, cbits/cryptonite_sysrand.c
|
|
include-dirs: cbits cbits/ed25519
|
|
|
|
-- 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 flag(support_rdrand) && arch(x86_64)
|
|
CPP-options: -DARCH_X86_64
|
|
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
|
|
|
|
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_Ed25519
|
|
KAT_HMAC
|
|
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
|
|
Poly1305
|
|
Salsa
|
|
Utils
|
|
Build-Depends: base >= 3 && < 5
|
|
, bytestring
|
|
, memory
|
|
, byteable
|
|
, 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
|