Name: cryptonite version: 0.27 x-revision: 1 Synopsis: Cryptography Primitives sink Description: A repository of cryptographic primitives. . * Symmetric ciphers: AES, DES, 3DES, CAST5, Blowfish, Twofish, Camellia, RC4, Salsa, XSalsa, ChaCha. . * Hash: SHA1, SHA2, SHA3, SHAKE, MD2, MD4, MD5, Keccak, Skein, Ripemd, Tiger, Whirlpool, Blake2 . * MAC: HMAC, KMAC, Poly1305 . * Asymmetric crypto: DSA, RSA, DH, ECDH, ECDSA, ECC, Curve25519, Curve448, Ed25519, Ed448 . * Key Derivation Function: PBKDF2, Scrypt, HKDF, Argon2, BCrypt, BCryptPBKDF . * 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 strives 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 Author: Vincent Hanquez 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.18 tested-with: GHC==8.8.2, GHC==8.6.5, GHC==8.4.4, GHC==8.2.2, GHC==8.0.2 extra-doc-files: README.md CHANGELOG.md extra-source-files: cbits/*.h cbits/aes/*.h cbits/ed25519/*.h cbits/decaf/include/*.h cbits/decaf/include/decaf/*.h cbits/decaf/include/arch_32/*.h cbits/decaf/include/arch_ref64/*.h cbits/decaf/p448/arch_32/*.h cbits/decaf/p448/arch_ref64/*.h cbits/decaf/p448/*.h cbits/decaf/ed448goldilocks/decaf_tables.c cbits/decaf/ed448goldilocks/decaf.c cbits/include32/p256/*.h cbits/include64/p256/*.h cbits/blake2/ref/*.h cbits/blake2/sse/*.h cbits/argon2/*.h cbits/argon2/*.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 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_sse Description: Use SSE optimized version of (BLAKE2, ARGON2) 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 Flag use_target_attributes Description: use GCC / clang function attributes instead of global target options. Default: True Manual: True Library Exposed-modules: Crypto.Cipher.AES Crypto.Cipher.AESGCMSIV Crypto.Cipher.Blowfish Crypto.Cipher.CAST5 Crypto.Cipher.Camellia Crypto.Cipher.ChaCha Crypto.Cipher.ChaChaPoly1305 Crypto.Cipher.DES Crypto.Cipher.RC4 Crypto.Cipher.Salsa Crypto.Cipher.TripleDES Crypto.Cipher.Twofish Crypto.Cipher.Types Crypto.Cipher.Utils Crypto.Cipher.XSalsa Crypto.ConstructHash.MiyaguchiPreneel Crypto.Data.AFIS Crypto.Data.Padding Crypto.ECC Crypto.ECC.Edwards25519 Crypto.Error Crypto.MAC.CMAC Crypto.MAC.Poly1305 Crypto.MAC.HMAC Crypto.MAC.KMAC Crypto.Number.Basic Crypto.Number.F2m Crypto.Number.Generate Crypto.Number.ModArithmetic Crypto.Number.Nat Crypto.Number.Prime Crypto.Number.Serialize Crypto.Number.Serialize.LE Crypto.Number.Serialize.Internal Crypto.Number.Serialize.Internal.LE Crypto.KDF.Argon2 Crypto.KDF.PBKDF2 Crypto.KDF.Scrypt Crypto.KDF.BCrypt Crypto.KDF.BCryptPBKDF Crypto.KDF.HKDF Crypto.Hash Crypto.Hash.IO Crypto.Hash.Algorithms Crypto.OTP Crypto.PubKey.Curve25519 Crypto.PubKey.Curve448 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.ECDSA 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.PubKey.Rabin.OAEP Crypto.PubKey.Rabin.Basic Crypto.PubKey.Rabin.Modified Crypto.PubKey.Rabin.RW Crypto.PubKey.Rabin.Types Crypto.Random Crypto.Random.Types Crypto.Random.Entropy Crypto.Random.EntropyPool Crypto.Random.Entropy.Unsafe Crypto.System.CPU Crypto.Tutorial Other-modules: Crypto.Cipher.AES.Primitive Crypto.Cipher.Blowfish.Box Crypto.Cipher.Blowfish.Primitive Crypto.Cipher.CAST5.Primitive Crypto.Cipher.Camellia.Primitive Crypto.Cipher.DES.Primitive Crypto.Cipher.Twofish.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.Blake2 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.SHAKE 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.ByteArray Crypto.Internal.Compat Crypto.Internal.CompatPrim Crypto.Internal.DeepSeq Crypto.Internal.Imports Crypto.Internal.Nat Crypto.Internal.Words Crypto.Internal.WordArray if impl(ghc < 8.0) Buildable: False else Build-depends: base Build-depends: bytestring , memory >= 0.14.18 , basement >= 0.0.6 , ghc-prim ghc-options: -Wall -fwarn-tabs -optc-O3 if os(linux) extra-libraries: pthread 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/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_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_pbkdf2.c , cbits/ed25519/ed25519.c include-dirs: cbits , cbits/ed25519 , cbits/decaf/include , cbits/decaf/p448 if arch(x86_64) || arch(aarch64) include-dirs: cbits/include64 else include-dirs: cbits/include32 if arch(x86_64) || arch(aarch64) C-sources: cbits/decaf/p448/arch_ref64/f_impl.c , cbits/decaf/p448/f_generic.c , cbits/decaf/p448/f_arithmetic.c , cbits/decaf/utils.c , cbits/decaf/ed448goldilocks/scalar.c , cbits/decaf/ed448goldilocks/decaf_all.c , cbits/decaf/ed448goldilocks/eddsa.c include-dirs: cbits/decaf/include/arch_ref64 , cbits/decaf/p448/arch_ref64 else C-sources: cbits/decaf/p448/arch_32/f_impl.c , cbits/decaf/p448/f_generic.c , cbits/decaf/p448/f_arithmetic.c , cbits/decaf/utils.c , cbits/decaf/ed448goldilocks/scalar.c , cbits/decaf/ed448goldilocks/decaf_all.c , cbits/decaf/ed448goldilocks/eddsa.c include-dirs: cbits/decaf/include/arch_32 , cbits/decaf/p448/arch_32 if arch(x86_64) || arch(aarch64) 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: -DWITH_AESNI if !flag(use_target_attributes) CC-options: -mssse3 -maes if flag(support_pclmuldq) CC-options: -DWITH_PCLMUL if !flag(use_target_attributes) CC-options: -msse4.1 -mpclmul 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_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 arch(x86_64) || flag(support_sse) CPP-options: -DSUPPORT_SSE if arch(i386) CC-options: -msse2 C-sources: cbits/argon2/argon2.c include-dirs: cbits/argon2 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 < 1.1 if flag(support_deepseq) CPP-options: -DWITH_DEEPSEQ_SUPPORT Build-depends: deepseq if flag(check_alignment) cc-options: -DWITH_ASSERT_ALIGNMENT if flag(use_target_attributes) cc-options: -DWITH_TARGET_ATTRIBUTES Test-Suite test-cryptonite type: exitcode-stdio-1.0 hs-source-dirs: tests Main-is: Tests.hs Other-modules: BlockCipher ChaCha BCrypt BCryptPBKDF ECC ECC.Edwards25519 ECDSA Hash Imports KAT_AES.KATCBC KAT_AES.KATECB KAT_AES.KATGCM KAT_AES.KATCCM KAT_AES.KATOCB3 KAT_AES.KATXTS KAT_AES KAT_AESGCMSIV KAT_AFIS KAT_Argon2 KAT_Blowfish KAT_CAST5 KAT_Camellia KAT_Curve25519 KAT_Curve448 KAT_DES KAT_Ed25519 KAT_Ed448 KAT_CMAC KAT_HKDF KAT_HMAC KAT_KMAC KAT_MiyaguchiPreneel KAT_PBKDF2 KAT_OTP KAT_PubKey.DSA KAT_PubKey.ECC KAT_PubKey.ECDSA KAT_PubKey.OAEP KAT_PubKey.PSS KAT_PubKey.P256 KAT_PubKey.RSA KAT_PubKey.Rabin KAT_PubKey KAT_RC4 KAT_Scrypt KAT_TripleDES KAT_Twofish ChaChaPoly1305 Number Number.F2m Padding Poly1305 Salsa Utils XSalsa Build-Depends: base >= 0 && < 10 , bytestring , memory , tasty , tasty-quickcheck , tasty-hunit , tasty-kat , cryptonite ghc-options: -Wall -fno-warn-orphans -fno-warn-missing-signatures -rtsopts default-language: Haskell2010 Benchmark bench-cryptonite type: exitcode-stdio-1.0 hs-source-dirs: benchs Main-is: Bench.hs Other-modules: Number.F2m Build-Depends: base , bytestring , deepseq , memory , gauge , random , cryptonite ghc-options: -Wall -fno-warn-missing-signatures default-language: Haskell2010