aboutsummaryrefslogtreecommitdiff
path: root/btls.cabal
blob: a7fe7ec26411675f7095bf74a168aef498c66b10 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
-- Copyright 2017 Google LLC
--
-- Licensed under the Apache License, Version 2.0 (the "License"); you may not
-- use this file except in compliance with the License. You may obtain a copy of
-- the License at
--
--     https://www.apache.org/licenses/LICENSE-2.0
--
-- Unless required by applicable law or agreed to in writing, software
-- distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-- WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-- License for the specific language governing permissions and limitations under
-- the License.

cabal-version:       >=1.24
name:                btls
version:             0.0.0.0
synopsis:            BoringSSL-backed TLS and cryptography library
description:
  A TLS and cryptography library backed by BoringSSL, Google's fork of OpenSSL.
copyright:           2018 Google LLC
license:             OtherLicense
license-file:        LICENSE
author:              Benjamin Barenblat
maintainer:          bbaren@google.com
category:            Network
build-type:          Custom
tested-with:         GHC ==8.0.2
extra-source-files:  cbits
                   , third_party

custom-setup
  setup-depends:       base
                     , Cabal >=1.4 && <2.1
                     , directory <1.4
                     , filepath <1.5
                     , gtk2hs-buildtools >=0.13.2.1 && <0.14

library
  hs-source-dirs:      src
  default-language:    Haskell2010
  other-extensions:    ExistentialQuantification
                     , NamedFieldPuns
                     , Rank2Types
                     , ScopedTypeVariables
  build-tools:         c2hs
  include-dirs:        third_party/boringssl/src/include
  ghc-options:         -Weverything
                       -Wno-all-missed-specialisations
                       -Wno-implicit-prelude
                       -Wno-missing-import-lists
                       -Wno-safe -Wno-unsafe
                       -optl-Wl,-z,relro -optl-Wl,-z,now -optl-Wl,-s
  exposed-modules:     Data.Digest
                     , Data.Hmac
  other-modules:       Data.Digest.Internal
                     , Foreign.Ptr.Cast
                     , Foreign.Ptr.ConstantTimeEquals
                     , Internal.Base
                     , Internal.Digest
                     , Internal.Hmac
                     , Result
  c-sources:           cbits/btls.c
  -- Use special names for the BoringSSL libraries to avoid accidentally pulling
  -- in OpenSSL.
  extra-libraries:     btls_crypto
  build-depends:       base >=4.9 && <4.10
                     , base-compat >=0.9.3 && <0.10
                     , bytestring >=0.10 && <0.11

test-suite tests
  type:                exitcode-stdio-1.0
  hs-source-dirs:      tests
  default-language:    Haskell2010
  other-extensions:    OverloadedStrings
  ghc-options:         -Weverything
                       -Wno-all-missed-specialisations
                       -Wno-implicit-prelude
                       -Wno-missing-import-lists
                       -Wno-missing-signatures
                       -Wno-safe -Wno-unsafe
                       -optl-Wl,-z,relro -optl-Wl,-z,now -optl-Wl,-s
  main-is:             Tests.hs
  other-modules:       Data.DigestTests
                     , Data.Digest.HashTests
                     , Data.Digest.Md5Tests
                     , Data.Digest.Sha1Tests
                     , Data.Digest.Sha2Tests
                     , Data.HmacTests
  build-depends:       base >=4.9 && <4.10
                     , btls
                     , bytestring >=0.10 && <0.11
                     , process >=1.4.2 && <1.5
                     , smallcheck >=1.1.1 && <1.2
                     , smallcheck-series >=0.2 && <0.7
                     , tasty >=0.11.0.4 && <0.12
                     , tasty-hunit >=0.9.2 && <0.10
                     , tasty-smallcheck >=0.8.1 && <0.9