packages feed

Crypto-4.2.5.2: Crypto.cabal

cabal-version:   2.2
name:            Crypto
version:         4.2.5.2
build-type:      Simple

Copyright:       © 2003-2007 Dominic Steinitz et al.
license:         BSD-3-Clause AND GPL-2.0-or-later
license-file:    ReadMe.tex

author:          Dominic Steinitz
maintainer:      hvr@gnu.org

category:        Cryptography, Codec
synopsis:        Common Cryptographic Algorithms in Pure Haskell
description:
  This packages provides many of the commonly used cryptographic algorithms, such as
  .
  * DES
  * Blowfish
  * AES
  * TEA
  * SHA-1
  * SHA-2 (SHA-224, SHA-256, SHA-384, SHA-512)
  * MD5
  * RSA
  * PKCS#5 Padding
  * HMAC
  * Ciper Block Chaining (CBC) mode
  .
  Moreover, this package also provides an implementation of the /Bubble Babble Binary Data Encoding/ <http://web.mit.edu/kenta/www/one/bubblebabble/spec/jrtrjwzi/draft-huima-01.txt specification> and miscellaneous utilties.
  .
  The library in this package is implemented in pure <https://www.haskell.org/onlinereport/haskell2010/ Haskell2010> (plus currently the @FlexibleInstances@ and @TypeSynonymInstances@ extensions) and thus should be fairly portable. However, it shouldn't be expected to be the most performant possible Haskell cryptographic library; for instance, for optimized implementations of Hash algorithms, see the <https://hackage.haskell.org/package/cryptohash-sha512 cryptohash-* family>.

extra-source-files: ChangeLog.md

tested-with: GHC ==7.0.1, GHC ==7.0.4, GHC ==7.2.2, GHC ==7.4.2, GHC ==7.6.3, GHC ==7.8.4, GHC ==7.10.3, GHC ==8.0.2, GHC ==8.2.2, GHC ==8.4.4, GHC ==8.6.5, GHC ==8.8.4, GHC ==8.10.4, GHC ==9.0.2, GHC ==9.2.2, GHC ==9.4.4

------------------
-- main library --
------------------

common defaults
  default-language: Haskell2010
  other-extensions: FlexibleInstances, TypeSynonymInstances

  -- NB: 'pretty' is needed by the "Codec.Text.Raw" API
  build-depends:
    , base    >= 4.3 && < 4.18
    , pretty ^>= 1.0.1 || ^>= 1.1.0

  ghc-options: -fregs-graph

  -- silence deprecation warnings for Haskell2010 compliant 'bitSize' method
  -- as well as all the missing typeclass methods warnings
  ghc-options: -fno-warn-deprecations -fno-warn-missing-methods

library
  import: defaults

  hs-source-dirs: src

  exposed-modules:
      Codec.Binary.BubbleBabble
      Codec.Encryption.RSA
      Codec.Encryption.RSA.EMEOAEP
      Codec.Encryption.RSA.MGF
      Codec.Encryption.RSA.NumberTheory
      Codec.Encryption.DES
      Codec.Encryption.AES
      Codec.Encryption.TEA
      Codec.Encryption.Blowfish
      Codec.Encryption.Modes
      Codec.Encryption.Padding
      Codec.Text.Raw
      Codec.Utils
      Data.Digest.MD5
      Data.Digest.SHA1
      Data.Digest.SHA2
      Data.Digest.SHA224
      Data.Digest.SHA256
      Data.Digest.SHA384
      Data.Digest.SHA512
      Data.LargeWord,
      Data.HMAC

  other-modules:
      Codec.Encryption.BlowfishAux
      Codec.Encryption.DESAux
      Codec.Encryption.AESAux
      Data.Digest.MD5Aux

  -- NB: 'random' is currently /only/ used by the 'getPrime' operation
  build-depends:
    , array ^>= 0.3.0 || ^>= 0.4.0 || ^>= 0.5.0
    , random ^>= 1.0 || ^>= 1.1 || ^>= 1.2

-----------------
-- test suites --
-----------------

common test-defaults
  import: defaults

  hs-source-dirs: src-test

  -- depend on main library
  build-depends: Crypto

  build-depends:
    , QuickCheck ^>= 2.14.2
    , HUnit      ^>= 1.6.2


test-suite      SymmetricTest
  import: test-defaults
  type: exitcode-stdio-1.0

  Main-Is: SymmetricTest.hs

test-suite      SHA1Test
  import: test-defaults
  type: exitcode-stdio-1.0

  Main-Is: SHA1Test.hs

test-suite      SHA2Test
  import: test-defaults
  type: exitcode-stdio-1.0

  Main-Is: SHA2Test.hs

test-suite      RSATest
  import: test-defaults
  type: exitcode-stdio-1.0

  Main-Is: RSATest.hs

test-suite      QuickTest
  import: test-defaults
  type: exitcode-stdio-1.0

  main-is: QuickTest.hs

test-suite      HMACTest
  import: test-defaults
  type: exitcode-stdio-1.0

  Main-Is: HMACTest.hs

test-suite      WordListTest
  import: test-defaults
  type: exitcode-stdio-1.0

  Main-Is: WordListTest.hs