packages feed

crypto-classical-0.2.1: crypto-classical.cabal

cabal-version:      2.2
name:               crypto-classical
version:            0.2.1
synopsis:
  An educational tool for studying classical cryptography schemes.

description:
  An educational tool for studying classical cryptography
  schemes. Do not encrypt anything of worth with this
  library.
  .
  /Included Ciphers:/
  .
  * Caesar
  .
  * Affine (Linear)
  .
  * Substitution
  .
  * Stream
  .
  * Vigenere
  .
  * Enigma (Wehrmacht Enigma I)
  .
  Thanks to polymorphism, we can generate keys and encrypt
  ByteStrings without worrying much about types:
  .
  > > import Crypto.Classical
  > > import Lens.Micro
  > > :set -XOverloadedStrings
  > > (\k -> encrypt k "What a great day for an attack!" ^. enigma) . key <$> prng
  > "PXQS D KXSGB CFC AYK XJ DEGMON!"
  > > (\k -> encrypt k "What a great day for an attack!" ^. caesar) . key <$> prng
  > "RCVO V BMZVO YVT AJM VI VOOVXF!"

homepage:           https://github.com/fosskers/crypto-classical
license:            BSD-3-Clause
license-file:       LICENSE
author:             Colin Woodbury
maintainer:         colin@fosskers.ca
category:           Cryptography
build-type:         Simple
extra-source-files:
  README.md
  CHANGELOG.md

common commons
  default-language: Haskell2010
  ghc-options:
    -Wall -Wpartial-fields -Wincomplete-record-updates
    -Wincomplete-uni-patterns -Widentities

  build-depends:
    , base        >=4.7     && <4.14
    , bytestring
    , microlens   >=0.2.0.0

library
  import:          commons
  hs-source-dirs:  lib
  exposed-modules:
    Crypto.Classical
    Crypto.Classical.Cipher
    Crypto.Classical.Cipher.Affine
    Crypto.Classical.Cipher.Caesar
    Crypto.Classical.Cipher.Enigma
    Crypto.Classical.Cipher.Stream
    Crypto.Classical.Cipher.Substitution
    Crypto.Classical.Cipher.Vigenere
    Crypto.Classical.Letter
    Crypto.Classical.Shuffle
    Crypto.Classical.Types
    Crypto.Classical.Util

  build-depends:
    , base                >=4.7     && <4.14
    , containers          >=0.5.5.1
    , crypto-numbers      >=0.2.7
    , crypto-random
    , microlens-th        >=0.2.1.1
    , modular-arithmetic  >=1.2.0.0
    , text                >=1.2.0.4
    , transformers        >=0.4.2.0

test-suite crypto-classical-test
  import:         commons
  type:           exitcode-stdio-1.0
  main-is:        Test.hs
  hs-source-dirs: test
  ghc-options:    -threaded -with-rtsopts=-N
  build-depends:
    , crypto-classical
    , QuickCheck        >=2.8.1