Name:            Crypto
Version:         4.2.5
License:         OtherLicense
License-File:    ReadMe.tex
Author:          Dominic Steinitz
Maintainer:      Caylee Hogg <caylee.hogg@gmail.com>
Copyright:       Dominic Steinitz 2003 - 2007

Stability:       Alpha
Category:        Cryptography, Codec
Synopsis:        Collects together existing Haskell cryptographic functions into a package
Description:     DES, Blowfish, AES, TEA, SHA1, MD5, RSA, BubbleBabble,
                 Hexdump, Support for Word128, Word192 and Word256 and Beyond, PKCS5
                 Padding, Various Encryption Modes e.g. Cipher Block Chaining all in one package,
                 with HUnit and QuickCheck tests, and examples.
Data-Files:      CryptoHomePage.html

Build-Type:      Simple
Cabal-Version:   >= 1.2
Tested-With:     GHC==6.8.2 GHC==6.10.1

flag small_base
        description: choose the new smaller, split-up base package.

Library
        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
        Build-Depends:  QuickCheck >= 2.4.0.1, HUnit
        if flag(small_base)
            Build-Depends: base >= 3, base < 5, array, random, pretty
        else
            Build-Depends: base < 3
        Ghc-options:     -fregs-graph
        Extensions: FlexibleInstances, TypeSynonymInstances 
        Other-modules:
                 Codec.Encryption.BlowfishAux,
                 Codec.Encryption.DESAux,
                 Codec.Encryption.AESAux,
                 Data.Digest.MD5Aux

Executable      SymmetricTest
  Main-Is:         SymmetricTest.hs
  Ghc-options:     -fregs-graph
  Other-modules:   Codec.Utils
                   Codec.Encryption.Blowfish
                   Codec.Encryption.Modes
                   Codec.Encryption.Padding
                   Codec.Encryption.DES
                   Codec.Encryption.AES
                   Data.LargeWord

Executable      SHA1Test
  Main-Is:         SHA1Test.hs
  Ghc-options:     -fregs-graph
  Other-modules:   Codec.Text.Raw
                   Data.Digest.SHA1

Executable      RSATest
  Main-Is:         RSATest.hs
  Ghc-options:     -fregs-graph
  Other-modules:   Codec.Utils
                   Data.Digest.SHA1
                   Codec.Encryption.RSA.MGF
                   Codec.Encryption.RSA.EMEOAEP
                   Codec.Encryption.RSA

Executable      QuickTest
  Main-Is:         QuickTest.hs
  Ghc-options:     -fregs-graph
  Extensions: TypeSynonymInstances
  Other-modules:   Codec.Utils
                   Codec.Encryption.Blowfish
                   Codec.Encryption.AES
                   Codec.Encryption.Modes
                   Codec.Encryption.Padding
                   Data.LargeWord

Executable      HMACTest
  Main-Is:         HMACTest.hs
  Other-modules:   Codec.Utils
                   Data.HMAC

Executable      WordListTest
  Main-Is:         WordListTest.hs
  Other-modules:   Data.LargeWord
