cabal-version: 1.22 -- This file has been generated from package.yaml by hpack version 0.33.0. -- -- see: https://github.com/sol/hpack -- -- hash: 745d63b84deb20c2dc71acc5006fea4028aa386b595bb6e1d9016deba28aeca5 name: crypto-sodium version: 0.0.2.0 synopsis: Easy-and-safe-to-use high-level cryptography based on Sodium description: This is a collection of high-level cryptographic primitives based on , spiced up with extra type-safety of the Haskell type system. . __Note: this package is experimental and WIP.__ . = Why . Cryptography is hard to do right and you should never try to implement it on your own, even if you have access to safe and secure cryptographic primitives. Luckily, D. J. Bernstein created . . NaCl was designed specifically to make it hard to use it incorrectly and thus save you from a disaster. It exposes high-level cryptographic algorithms with underlying implementations chosen for you, so you do not get flexibility, but you get security, which is more important. . = What . is a reimplementation of NaCl with the goal to make it more portable across different platforms. With time, it started providing more than the same interface as NaCl. Nowadays it implements additional primitives and utility functions. . = How . == Secret-key cryptography . * Authenticated encryption: "Crypto.Secretbox" * Encryption: "Crypto.Stream" * Authentication: "Crypto.Auth" . . = Thread-safety #threadSafety# . Some of the Sodium (and NaCl) functions (those that generate random data) are not thread-safe. All these functions are explicitly marked as such in their Haddock documentation. . Calling 'sodiumInit' before they are used makes them thread-safe, see "Crypto.Init". . = Performance . Sodium contains multiple implementations of the primitives it provides. There are generic implementations, that are used by default, and multiple alternatives optimised for various platforms. . 'sodiumInit' will quickly benchmark all available implementations and choose the bests ones for each primitive, see "Crypto.Init". category: Cryptography homepage: https://github.com/serokell/haskell-crypto#readme bug-reports: https://github.com/serokell/haskell-crypto/issues author: Kirill Elagin maintainer: Kirill Elagin copyright: 2020 Serokell license: MPL-2.0 license-file: LICENSES/MPL-2.0.txt build-type: Simple extra-doc-files: CHANGELOG.md README.md source-repository head type: git location: https://github.com/serokell/haskell-crypto library exposed-modules: Crypto.Init Crypto.Random other-modules: Paths_crypto_sodium reexported-modules: NaCl:Crypto.Secretbox hs-source-dirs: lib default-extensions: DataKinds FlexibleContexts FlexibleInstances GeneralizedNewtypeDeriving KindSignatures LambdaCase MultiParamTypeClasses NumericUnderscores OverloadedStrings PolyKinds ScopedTypeVariables ghc-options: -Wall -Wcompat -Wincomplete-record-updates -Wincomplete-uni-patterns -Wredundant-constraints build-depends: NaCl >=0.0.1.0 && <0.1 , base >=4.10 && <4.15 , bytestring >=0.9 && <0.11 , gdp >=0.0.0.1 && <0.1 , libsodium >=1.0.11 && <2 , memory >=0.1 && <0.16 , safe-exceptions >=0.1 && <0.2 default-language: Haskell2010 test-suite test type: exitcode-stdio-1.0 main-is: Test.hs other-modules: Test.Crypto.Random Paths_crypto_sodium hs-source-dirs: test default-extensions: DataKinds FlexibleContexts FlexibleInstances GeneralizedNewtypeDeriving KindSignatures LambdaCase MultiParamTypeClasses NumericUnderscores OverloadedStrings PolyKinds ScopedTypeVariables ghc-options: -Wall -Wcompat -Wincomplete-record-updates -Wincomplete-uni-patterns -Wredundant-constraints build-tool-depends: tasty-discover:tasty-discover build-depends: HUnit , base >=4.10 && <4.15 , bytestring >=0.9 && <0.11 , crypto-sodium , libsodium , memory , tasty , tasty-hunit default-language: Haskell2010