packages feed

botan-bindings-0.2.0.0: botan-bindings.cabal

cabal-version: 3.0
name: botan-bindings
version: 0.2.0.0
synopsis: Raw Botan bindings
description:
  Welcome to botan-bindings

  Raw bindings to the [Botan](https://botan.randombit.net/) cryptography library.

  > Botan's goal is to be the best option for cryptography in C++ by offering the
  > tools necessary to implement a range of practical systems, such as TLS protocol,
  > X.509 certificates, modern AEAD ciphers, PKCS#11 and TPM hardware support,
  > password hashing, and post quantum crypto schemes.

  For more information, see the [README on Github](https://github.com/haskell-cryptography/botan)

author: Leo D.
maintainer: joris@well-typed.com, leo@apotheca.io
license: BSD-3-Clause
license-file: LICENSE
copyright:
  Copyright (c) 2023-2024, Apotheca Labs
  Copyright (c) 2024-2025, Haskell Foundation

build-type: Simple
category: Cryptography
extra-doc-files:
  CHANGELOG.md
  README.md

tested-with: ghc ==9.2 || ==9.4 || ==9.6 || ==9.8 || ==9.10 || ==9.12

source-repository head
  type: git
  location: https://github.com/haskell-cryptography/botan
  subdir: botan-bindings

source-repository this
  type: git
  location: https://github.com/haskell-cryptography/botan
  subdir: botan-bindings
  tag: botan-bindings-0.2.0.0

flag pkg-config
  default: True
  manual: False
  description: Use @pkg-config(1)@ to locate foreign @botan-3@ library.

common warnings
  ghc-options:
    -Wall
    -Wcompat
    -Wincomplete-uni-patterns
    -Wincomplete-record-updates
    -Wpartial-fields
    -Widentities
    -Wredundant-constraints
    -Wmissing-export-lists
    -Wno-unticked-promoted-constructors
    -Wunused-packages
    -Wmissing-deriving-strategies

common language
  default-language: GHC2021
  default-extensions:
    DerivingStrategies
    DuplicateRecordFields
    NoFieldSelectors
    OverloadedRecordDot
    PatternSynonyms
    RoleAnnotations

library
  import: warnings, language
  hs-source-dirs: src
  exposed-modules:
    Botan.Bindings.Bcrypt
    Botan.Bindings.BlockCipher
    Botan.Bindings.Cipher
    Botan.Bindings.ConstPtr
    Botan.Bindings.Error
    Botan.Bindings.FPE
    Botan.Bindings.HOTP
    Botan.Bindings.Hash
    Botan.Bindings.KDF
    Botan.Bindings.KeyWrap
    Botan.Bindings.MAC
    Botan.Bindings.MPI
    Botan.Bindings.PubKey
    Botan.Bindings.PubKey.DH
    Botan.Bindings.PubKey.DSA
    Botan.Bindings.PubKey.Decrypt
    Botan.Bindings.PubKey.ECDH
    Botan.Bindings.PubKey.ECDSA
    Botan.Bindings.PubKey.Ed25519
    Botan.Bindings.PubKey.ElGamal
    Botan.Bindings.PubKey.Encrypt
    Botan.Bindings.PubKey.KeyAgreement
    Botan.Bindings.PubKey.KeyEncapsulation
    Botan.Bindings.PubKey.RSA
    Botan.Bindings.PubKey.SM2
    Botan.Bindings.PubKey.Sign
    Botan.Bindings.PubKey.Verify
    Botan.Bindings.PubKey.X25519
    Botan.Bindings.PwdHash
    Botan.Bindings.RNG
    Botan.Bindings.SRP6
    Botan.Bindings.TOTP
    Botan.Bindings.Utility
    Botan.Bindings.Version
    Botan.Bindings.View
    Botan.Bindings.X509
    Botan.Bindings.ZFEC

  build-depends: base >=4.16 && <4.22
  includes: botan/ffi.h

  if flag(pkg-config)
    -- NB: pkg-config is available on windows as well when using msys2
    pkgconfig-depends: botan-3 >=3.0.0 && <4
  else
    extra-libraries: botan-3