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