packages feed

tahoe-ssk-0.2.1.0: tahoe-ssk.cabal

cabal-version:      2.4

-- The cabal-version field refers to the version of the .cabal specification,
-- and can be different from the cabal-install (the tool) version and the
-- Cabal (the library) version you are using. As such, the Cabal (the library)
-- version used must be equal or greater than the version stated in this field.
-- Starting from the specification version 2.2, the cabal-version field must be
-- the first thing in the cabal file.

-- Initial package description 'tahoe-ssk' generated by
-- 'cabal init'. For further documentation, see:
--   http://haskell.org/cabal/users-guide/
--
-- The name of the package.
name:               tahoe-ssk

-- The package version.
-- See the Haskell package versioning policy (PVP) for standards
-- guiding when and how versions should be incremented.
-- https://pvp.haskell.org
-- PVP summary:     +-+------- breaking API changes
--                  | | +----- non-breaking API additions
--                  | | | +--- code changes with no API change
version:            0.2.1.0

-- A short (one-line) description of the package.
synopsis:
  An implementation of the Tahoe-LAFS SSK cryptographic protocols

-- A longer description of the package.
description:
  This currently includes a partial implementation of SDMF.  A future version
  may include an implementation of MDMF.

-- URL for the project homepage or repository.
homepage:           https://whetstone.private.storage/PrivateStorage/tahoe-ssk

-- The license under which the package is released.
license:            BSD-3-Clause

-- The file containing the license text.
license-file:       LICENSE

-- The package author(s).
author:             Jean-Paul Calderone

-- An email address to which users can send suggestions, bug reports, and patches.
maintainer:         exarkun@twistedmatrix.com

-- A copyright notice.
-- copyright:
category:           Cryptography,Library,Parsers,Security
build-type:         Simple

-- Extra doc files to be distributed with the package, such as a CHANGELOG or a README.
extra-doc-files:
  CHANGELOG.md
  README.md

-- Extra source files to be distributed with the package, such as examples, or
-- a tutorial module.
extra-source-files:
  test/data/3of10.0
  test/data/3of10.1
  test/data/3of10.2
  test/data/3of10.3
  test/data/3of10.4
  test/data/3of10.5
  test/data/3of10.6
  test/data/3of10.7
  test/data/3of10.8
  test/data/3of10.9
  test/data/rsa-privkey-0.der
  test/data/rsa-privkey-1.der
  test/data/rsa-privkey-2.der
  test/data/rsa-privkey-3.der
  test/data/rsa-privkey-4.der
  test/data/tahoe-lafs-generated-rsa-privkey.der

source-repository head
  type:     git
  location:
    gitlab@whetstone.private.storage:privatestorage/tahoe-ssk.git

common warnings
  ghc-options: -Wall -Werror=missing-fields

common language
  default-extensions:
    DerivingStrategies
    GeneralizedNewtypeDeriving
    NamedFieldPuns
    OverloadedStrings
    PackageImports
    RecordWildCards
    TypeApplications

  -- Base language which the package is written in.
  default-language:   Haskell2010

library
  import:
    warnings
    , language

  hs-source-dirs:  src
  exposed-modules:
    Tahoe.SDMF
    Tahoe.SDMF.Internal.Capability
    Tahoe.SDMF.Internal.Converting
    Tahoe.SDMF.Internal.Encoding
    Tahoe.SDMF.Internal.Encrypting
    Tahoe.SDMF.Internal.Keys
    Tahoe.SDMF.Internal.Share
    Tahoe.SDMF.Keys

  build-depends:
    , asn1-encoding       >=0.9.6    && <0.10
    , asn1-types          >=0.3.4    && <0.4
    , base                >=4.7      && <5
    , base32              >=0.2.1    && <0.3
    , binary              >=0.8.6    && <0.9
    , bytestring          >=0.10.8.2 && <0.11
    , cereal              >=0.5.8.1  && <0.6
    , containers          >=0.6.0.1  && <0.7
    , cryptonite          >=0.27     && <0.30
    , megaparsec          >=8.0      && <9.3
    , memory              >=0.15     && <0.17
    , tahoe-capabilities  >=0.1      && <0.2
    , text                >=1.2.3.1  && <1.3
    , x509                >=1.7.5    && <1.8

  -- This dependency isn't ideal.  Move common bits out to
  -- another library.
  build-depends:   tahoe-chk >=0.1 && <0.2

test-suite tahoe-ssk-test
  import:
    warnings
    , language

  -- LANGUAGE extensions used by modules in this package.
  -- other-extensions:

  -- The interface type and version of the test suite.
  type:           exitcode-stdio-1.0

  -- Directories containing source files.
  hs-source-dirs: test

  -- The entrypoint to the test suite.
  main-is:        Main.hs
  other-modules:
    Generators
    Spec

  -- Test dependencies.
  build-depends:
    , asn1-encoding       >=0.9.6    && <0.10
    , asn1-types          >=0.3.4    && <0.4
    , base                >=4.7      && <5
    , base32              >=0.2.1    && <0.3
    , binary              >=0.8.6    && <0.9
    , bytestring          >=0.10.8.2 && <0.11
    , cryptonite          >=0.27     && <0.30
    , hedgehog            >=1.0.3    && <1.1
    , megaparsec          >=8.0      && <9.3
    , memory              >=0.15     && <0.17
    , tahoe-capabilities  >=0.1      && <0.2
    , tahoe-chk           >=0.1      && <0.2
    , tahoe-ssk
    , tasty               >=1.2.3    && <1.5
    , tasty-hedgehog      >=1.0.0.2  && <1.2
    , tasty-hunit         >=0.10.0.2 && <0.11
    , text                >=1.2.3.1  && <1.3
    , x509                >=1.7.5    && <1.8

-- A helper for generating RSA key pairs for use by the test suite.
executable make-keypairs
  import:
    warnings
    , language

  main-is:        Main.hs
  hs-source-dirs: make-keypairs
  build-depends:
    , asn1-encoding  >=0.9.6    && <0.10
    , asn1-types     >=0.3.4    && <0.4
    , base           >=4.7      && <5
    , bytestring     >=0.10.8.2 && <0.11
    , cryptonite     >=0.27     && <0.30
    , tahoe-ssk
    , x509           >=1.7.5    && <1.8

executable encode-ssk
  import:
    warnings
    , language

  main-is:        Main.hs
  hs-source-dirs: encode-ssk
  build-depends:
    , base                >=4.7      && <5
    , base32              >=0.2.1    && <0.3
    , binary              >=0.8.6    && <0.9
    , bytestring          >=0.10.8.2 && <0.11
    , cryptonite          >=0.27     && <0.30
    , tahoe-capabilities  >=0.1      && <0.2
    , tahoe-ssk
    , text                >=1.2.3.1  && <1.3