packages feed

hsblst-0.0.3: hsblst.cabal

cabal-version: 3.0

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

name:           hsblst
version:        0.0.3
synopsis:       Haskell bindings to BLST
description:    HsBLST is low-level Haskell bindings and a high-level interface to [BLST](https://github.com/supranational/blst) -- a multilingual BLS12-381 signature library.
category:       Cryptography
homepage:       https://github.com/serokell/hsblst#readme
bug-reports:    https://github.com/serokell/hsblst/issues
author:         Serokell <hi@serokell.io>
maintainer:     Serokell <hi@serokell.io>
copyright:      2022 Serokell <https://serokell.io>
license:        MPL-2.0
license-file:   LICENSE
build-type:     Simple
tested-with:
    GHC == 9.4.8
  , GHC == 9.6.3
  , GHC == 9.8.1
extra-source-files:
    c-source/build/coff/add_mod_256-x86_64.s
    c-source/build/coff/add_mod_384-x86_64.s
    c-source/build/coff/add_mod_384x384-x86_64.s
    c-source/build/coff/ct_inverse_mod_256-x86_64.s
    c-source/build/coff/ct_is_square_mod_384-x86_64.s
    c-source/build/coff/ctq_inverse_mod_384-x86_64.s
    c-source/build/coff/ctx_inverse_mod_384-x86_64.s
    c-source/build/coff/div3w-x86_64.s
    c-source/build/coff/mulq_mont_256-x86_64.s
    c-source/build/coff/mulq_mont_384-x86_64.s
    c-source/build/coff/mulx_mont_256-x86_64.s
    c-source/build/coff/mulx_mont_384-x86_64.s
    c-source/build/coff/sha256-portable-x86_64.s
    c-source/build/coff/sha256-x86_64.s
    c-source/build/elf/add_mod_256-x86_64.s
    c-source/build/elf/add_mod_384-x86_64.s
    c-source/build/elf/add_mod_384x384-x86_64.s
    c-source/build/elf/ct_inverse_mod_256-x86_64.s
    c-source/build/elf/ct_is_square_mod_384-x86_64.s
    c-source/build/elf/ctq_inverse_mod_384-x86_64.s
    c-source/build/elf/ctx_inverse_mod_384-x86_64.s
    c-source/build/elf/div3w-x86_64.s
    c-source/build/elf/mulq_mont_256-x86_64.s
    c-source/build/elf/mulq_mont_384-x86_64.s
    c-source/build/elf/mulx_mont_256-x86_64.s
    c-source/build/elf/mulx_mont_384-x86_64.s
    c-source/build/elf/sha256-portable-x86_64.s
    c-source/build/elf/sha256-x86_64.s
    c-source/build/mach-o/add_mod_256-x86_64.s
    c-source/build/mach-o/add_mod_384-x86_64.s
    c-source/build/mach-o/add_mod_384x384-x86_64.s
    c-source/build/mach-o/ct_inverse_mod_256-x86_64.s
    c-source/build/mach-o/ct_is_square_mod_384-x86_64.s
    c-source/build/mach-o/ctq_inverse_mod_384-x86_64.s
    c-source/build/mach-o/ctx_inverse_mod_384-x86_64.s
    c-source/build/mach-o/div3w-x86_64.s
    c-source/build/mach-o/mulq_mont_256-x86_64.s
    c-source/build/mach-o/mulq_mont_384-x86_64.s
    c-source/build/mach-o/mulx_mont_256-x86_64.s
    c-source/build/mach-o/mulx_mont_384-x86_64.s
    c-source/build/mach-o/sha256-portable-x86_64.s
    c-source/build/mach-o/sha256-x86_64.s
    c-source/build/assembly.S
    c-source/build/coff/add_mod_256-armv8.S
    c-source/build/coff/add_mod_384-armv8.S
    c-source/build/coff/ct_inverse_mod_256-armv8.S
    c-source/build/coff/ct_inverse_mod_384-armv8.S
    c-source/build/coff/ct_is_square_mod_384-armv8.S
    c-source/build/coff/div3w-armv8.S
    c-source/build/coff/mul_mont_256-armv8.S
    c-source/build/coff/mul_mont_384-armv8.S
    c-source/build/coff/sha256-armv8.S
    c-source/build/elf/add_mod_256-armv8.S
    c-source/build/elf/add_mod_384-armv8.S
    c-source/build/elf/ct_inverse_mod_256-armv8.S
    c-source/build/elf/ct_inverse_mod_384-armv8.S
    c-source/build/elf/ct_is_square_mod_384-armv8.S
    c-source/build/elf/div3w-armv8.S
    c-source/build/elf/mul_mont_256-armv8.S
    c-source/build/elf/mul_mont_384-armv8.S
    c-source/build/elf/sha256-armv8.S
    c-source/build/mach-o/add_mod_256-armv8.S
    c-source/build/mach-o/add_mod_384-armv8.S
    c-source/build/mach-o/ct_inverse_mod_256-armv8.S
    c-source/build/mach-o/ct_inverse_mod_384-armv8.S
    c-source/build/mach-o/ct_is_square_mod_384-armv8.S
    c-source/build/mach-o/div3w-armv8.S
    c-source/build/mach-o/mul_mont_256-armv8.S
    c-source/build/mach-o/mul_mont_384-armv8.S
    c-source/build/mach-o/sha256-armv8.S
    c-source/src/aggregate.c
    c-source/src/bulk_addition.c
    c-source/src/client_min_pk.c
    c-source/src/client_min_sig.c
    c-source/src/consts.c
    c-source/src/cpuid.c
    c-source/src/e1.c
    c-source/src/e2.c
    c-source/src/exp.c
    c-source/src/exports.c
    c-source/src/fp12_tower.c
    c-source/src/hash_to_field.c
    c-source/src/keygen.c
    c-source/src/map_to_g1.c
    c-source/src/map_to_g2.c
    c-source/src/multi_scalar.c
    c-source/src/pairing.c
    c-source/src/pentaroot.c
    c-source/src/rb_tree.c
    c-source/src/recip.c
    c-source/src/server.c
    c-source/src/sqrt.c
    c-source/src/vect.c
    c-source/src/bytes.h
    c-source/src/consts.h
    c-source/src/ec_mult.h
    c-source/src/ec_ops.h
    c-source/src/errors.h
    c-source/src/fields.h
    c-source/src/no_asm.h
    c-source/src/pentaroot-addchain.h
    c-source/src/point.h
    c-source/src/recip-addchain.h
    c-source/src/sha256.h
    c-source/src/sqrt-addchain.h
    c-source/src/vect.h
    c-source/bindings/blst.h
    c-source/bindings/blst_aux.h
extra-doc-files:
    README.md
    CHANGELOG.md
    c-source/LICENSE
    c-source/README.md

source-repository head
  type: git
  location: https://github.com/serokell/hsblst

library
  exposed-modules:
      Crypto.BLST
      Crypto.BLST.Internal.Bindings
      Crypto.BLST.Internal.Bindings.Types
      Crypto.BLST.Internal.Classy
      Crypto.BLST.Internal.Demote
      Crypto.BLST.Internal.Types
  other-modules:
      Paths_hsblst
  autogen-modules:
      Paths_hsblst
  hs-source-dirs:
      src
  default-extensions:
      AllowAmbiguousTypes
      BangPatterns
      BlockArguments
      ConstraintKinds
      DataKinds
      DefaultSignatures
      DeriveAnyClass
      DeriveDataTypeable
      DeriveFoldable
      DeriveFunctor
      DeriveGeneric
      DeriveTraversable
      DerivingStrategies
      DerivingVia
      EmptyCase
      FlexibleContexts
      FlexibleInstances
      GADTs
      GeneralizedNewtypeDeriving
      ImportQualifiedPost
      LambdaCase
      MultiParamTypeClasses
      MultiWayIf
      NamedFieldPuns
      NegativeLiterals
      NoStarIsType
      NumDecimals
      OverloadedLabels
      OverloadedStrings
      PatternSynonyms
      PolyKinds
      QuasiQuotes
      RankNTypes
      RecordWildCards
      RecursiveDo
      ScopedTypeVariables
      StandaloneDeriving
      StandaloneKindSignatures
      StrictData
      TemplateHaskell
      TupleSections
      TypeApplications
      TypeFamilies
      TypeOperators
      UndecidableInstances
      UndecidableSuperClasses
      ViewPatterns
  ghc-options: -Weverything -Wno-missing-exported-signatures -Wno-missing-import-lists -Wno-missed-specialisations -Wno-all-missed-specialisations -Wno-unsafe -Wno-safe -Wno-missing-local-signatures -Wno-monomorphism-restriction -Wno-implicit-prelude -Wno-prepositive-qualified-module -Wno-inferred-safe-imports -Wno-missing-safe-haskell-mode
  include-dirs:
      c-source/bindings
  c-sources:
      c-source/src/server.c
  build-depends:
      base >=4.17 && <4.20
    , deepseq >=1.4.5.0 && <1.5.1
    , memory >=0.16.0 && <0.19
  if impl(ghc >= 9.2)
    ghc-options: -Wno-missing-kind-signatures
  default-language: Haskell2010
  asm-sources: c-source/build/assembly.S
  build-tool-depends: c2hs:c2hs

test-suite hsblst-test
  type: exitcode-stdio-1.0
  main-is: Main.hs
  other-modules:
      Test.BLST
      Test.BLST.Bindings
      Test.BLST.Fixtures
      Test.BLST.Tezos
      Test.BLST.Util
      Paths_hsblst
  autogen-modules:
      Paths_hsblst
  hs-source-dirs:
      test
  default-extensions:
      AllowAmbiguousTypes
      BangPatterns
      BlockArguments
      ConstraintKinds
      DataKinds
      DefaultSignatures
      DeriveAnyClass
      DeriveDataTypeable
      DeriveFoldable
      DeriveFunctor
      DeriveGeneric
      DeriveTraversable
      DerivingStrategies
      DerivingVia
      EmptyCase
      FlexibleContexts
      FlexibleInstances
      GADTs
      GeneralizedNewtypeDeriving
      ImportQualifiedPost
      LambdaCase
      MultiParamTypeClasses
      MultiWayIf
      NamedFieldPuns
      NegativeLiterals
      NoStarIsType
      NumDecimals
      OverloadedLabels
      OverloadedStrings
      PatternSynonyms
      PolyKinds
      QuasiQuotes
      RankNTypes
      RecordWildCards
      RecursiveDo
      ScopedTypeVariables
      StandaloneDeriving
      StandaloneKindSignatures
      StrictData
      TemplateHaskell
      TupleSections
      TypeApplications
      TypeFamilies
      TypeOperators
      UndecidableInstances
      UndecidableSuperClasses
      ViewPatterns
  ghc-options: -Weverything -Wno-missing-exported-signatures -Wno-missing-import-lists -Wno-missed-specialisations -Wno-all-missed-specialisations -Wno-unsafe -Wno-safe -Wno-missing-local-signatures -Wno-monomorphism-restriction -Wno-implicit-prelude -Wno-prepositive-qualified-module -Wno-inferred-safe-imports -Wno-missing-safe-haskell-mode -Wno-incomplete-patterns -threaded "-with-rtsopts=-N -A64m -AL256m"
  build-tool-depends:
      tasty-discover:tasty-discover
  build-depends:
      base >=4.17 && <4.20
    , base16-bytestring ==1.0.*
    , bytestring >=0.10.12.1 && <0.13
    , hsblst
    , memory >=0.16.0 && <0.19
    , tasty >=1.4.2.1 && <1.6
    , tasty-hunit >=0.10.0.3 && <0.11
    , text >=1.2.5.0 && <1.3 || >=2.0.1 && <2.1 || >=2.1 && <2.2
  if impl(ghc >= 9.2)
    ghc-options: -Wno-missing-kind-signatures
  if impl(ghc < 9.4)
    ghc-options: -eventlog
  default-language: Haskell2010