botan-bindings-0.0.1.0: botan-bindings.cabal
cabal-version: 3.0
name: botan-bindings
version: 0.0.1.0
license: BSD-3-Clause
author: Leo D.
maintainer: leo@apotheca.io
build-type: Simple
category: Cryptography
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/apotheca/botan)
extra-doc-files:
README.md
CHANGELOG.md
tested-with:
-- GHC == 9.0.2,
GHC == 9.2.8,
GHC == 9.4.7,
GHC == 9.6.3,
GHC == 9.8.1
source-repository head
type: git
location: https://github.com/apotheca/botan.git
flag pkg-config
default: True
manual: False
description: Use @pkg-config(1)@ to locate foreign @botan-3@ library.
-- TODO: Probably need a custom Setup.hs for building Botan's C++ / Makefile
-- Would be good to tie this into the extended botan.
-- SEE: https://discourse.haskell.org/t/botan-bindings-devlog/6855/129
-- flag bundled-c-botan
-- default: False
-- manual: True
-- description: Use the bundled botan-3 C/C++ sources.
-- For GHCJS and WASM this is the default.
flag XFFI
description: Enable experimental / upstream ffi support
manual: True
default: False
library
hs-source-dirs: src
default-language: Haskell2010
default-extensions:
DeriveDataTypeable
DerivingStrategies
GeneralizedNewtypeDeriving
NoImplicitPrelude
OverloadedStrings
PatternSynonyms
RoleAnnotations
ScopedTypeVariables
StandaloneKindSignatures
exposed-modules:
Botan.Bindings.Bcrypt
Botan.Bindings.BlockCipher
Botan.Bindings.Cipher
Botan.Bindings.Error
Botan.Bindings.FPE
Botan.Bindings.Hash
Botan.Bindings.HOTP
Botan.Bindings.KDF
Botan.Bindings.KeyWrap
Botan.Bindings.MAC
Botan.Bindings.MPI
Botan.Bindings.Prelude
Botan.Bindings.PubKey
Botan.Bindings.PubKey.Decrypt
Botan.Bindings.PubKey.DH
Botan.Bindings.PubKey.DSA
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.Sign
Botan.Bindings.PubKey.SM2
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
other-modules:
Paths_botan_bindings
autogen-modules:
Paths_botan_bindings
build-depends:
base >= 4 && < 5,
bytestring >= 0.11 && < 0.13,
includes:
botan/ffi.h
-- TODO Pt2: Bundle a complete copy of the Botan C/C++ source.
-- if flag(bundled-c-botan) || impl(ghcjs) || os(ghcjs) || arch(wasm32)
-- c-sources: ...
-- cxx-sources: ...
-- include-dirs: ...
-- else
-- TODO: Indent after bundling Botan C/C++ source.
if flag(pkg-config)
-- NB: pkg-config is available on windows as well when using msys2
pkgconfig-depends: botan-3 >= 3.0.0
else
extra-libraries: botan-3
-- END TODO: Indent
-- cc-options: -Wall
ghc-options: -Wall -Wno-name-shadowing
if flag(XFFI)
exposed-modules:
Botan.Bindings.X509.CA
Botan.Bindings.X509.CSR
Botan.Bindings.X509.CRL
Botan.Bindings.X509.DN
Botan.Bindings.X509.Extensions
-- Botan.Bindings.X509.OCSP
Botan.Bindings.X509.Options
Botan.Bindings.X509.Path
Botan.Bindings.X509.Store
cpp-options: -DXFFI