packages feed

crypto-sodium-0.0.5.0: crypto-sodium.cabal

cabal-version: 1.18

-- This file has been generated from package.yaml by hpack version 0.34.4.
--
-- see: https://github.com/sol/hpack

name:           crypto-sodium
version:        0.0.5.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
                <https://libsodium.io/ Sodium>, 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 <https://nacl.cr.yp.to/ NaCl>.
                .
                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
                .
                <https://libsodium.org Sodium> 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
                .
                == Library initialisation
                .
                * "Crypto.Sodium.Init"
                .
                == Secret-key cryptography
                .
                * Authenticated symmetric-key encryption: "Crypto.Sodium.Encrypt.Symmetric"
                * Message authentication codes: "Crypto.Sodium.Mac"
                .
                == Public-key cryptography
                .
                * Authenticated public-key encryption: "Crypto.Sodium.Encrypt.Public"
                * Public-key signatures: "Crypto.Sodium.Sign"
                .
                == Additional primitives
                .
                * Key derivation and generation: "Crypto.Sodium.Key"
                * Cryptographically-secure random: "Crypto.Sodium.Random"
                * Hashing: "Crypto.Sodium.Hash"
category:       Cryptography
homepage:       https://github.com/serokell/haskell-crypto#readme
bug-reports:    https://github.com/serokell/haskell-crypto/issues
author:         Kirill Elagin <kirelagin@serokell.io>
maintainer:     Serokell <libraries@serokell.io>
copyright:      2021 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.Sodium.Encrypt.Public
      Crypto.Sodium.Encrypt.Symmetric
      Crypto.Sodium.Encrypt.Symmetric.Stream
      Crypto.Sodium.Hash
      Crypto.Sodium.Hash.Internal
      Crypto.Sodium.Init
      Crypto.Sodium.Internal.Random
      Crypto.Sodium.Internal.Verify
      Crypto.Sodium.Key
      Crypto.Sodium.Key.Internal
      Crypto.Sodium.Mac
      Crypto.Sodium.Nonce
      Crypto.Sodium.Pwhash.Internal
      Crypto.Sodium.Random
      Crypto.Sodium.Sign
  other-modules:
      Paths_crypto_sodium
  hs-source-dirs:
      lib
  default-extensions:
      DataKinds
      FlexibleContexts
      FlexibleInstances
      GeneralizedNewtypeDeriving
      KindSignatures
      LambdaCase
      MultiParamTypeClasses
      NamedFieldPuns
      NumericUnderscores
      OverloadedStrings
      PolyKinds
      ScopedTypeVariables
      TypeApplications
  ghc-options: -Wall -Wcompat -Wincomplete-record-updates -Wincomplete-uni-patterns -Wredundant-constraints
  build-depends:
      NaCl >=0.0.4.0 && <0.1
    , base >=4.10 && <4.16
    , bytestring >=0.9 && <0.11
    , cereal >=0.1 && <0.6
    , libsodium >=1.0.11 && <2
    , memory >=0.14.15 && <0.17
    , random >=1.0 && <1.3
    , safe-exceptions ==0.1.*
  default-language: Haskell2010

test-suite test
  type: exitcode-stdio-1.0
  main-is: Test.hs
  other-modules:
      Test.Crypto.Sodium.Encrypt.Public
      Test.Crypto.Sodium.Encrypt.Symmetric
      Test.Crypto.Sodium.Gen
      Test.Crypto.Sodium.Hash
      Test.Crypto.Sodium.Key.Derivation
      Test.Crypto.Sodium.Nonce
      Test.Crypto.Sodium.Pwhash
      Test.Crypto.Sodium.Random
      Test.Crypto.Sodium.Sign
      Paths_crypto_sodium
  hs-source-dirs:
      test
  default-extensions:
      DataKinds
      FlexibleContexts
      FlexibleInstances
      GeneralizedNewtypeDeriving
      KindSignatures
      LambdaCase
      MultiParamTypeClasses
      NamedFieldPuns
      NumericUnderscores
      OverloadedStrings
      PolyKinds
      ScopedTypeVariables
      TypeApplications
  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.16
    , base16 >=0.1.1 && <0.4
    , bytestring >=0.9 && <0.11
    , crypto-sodium
    , deepseq
    , hedgehog
    , libsodium >=1.0.11 && <2
    , memory >=0.14.15 && <0.17
    , safe-exceptions ==0.1.*
    , tasty
    , tasty-hedgehog
    , tasty-hunit
  default-language: Haskell2010