1Name:                tls
2Version:             1.5.4
3Description:
4   Native Haskell TLS and SSL protocol implementation for server and client.
5   .
6   This provides a high-level implementation of a sensitive security protocol,
7   eliminating a common set of security issues through the use of the advanced
8   type system, high level constructions and common Haskell features.
9   .
10   Currently implement the SSL3.0, TLS1.0, TLS1.1, TLS1.2 and TLS 1.3 protocol,
11   and support RSA and Ephemeral (Elliptic curve and regular) Diffie Hellman key exchanges,
12   and many extensions.
13   .
14   Some debug tools linked with tls, are available through the
15   <http://hackage.haskell.org/package/tls-debug/>.
16License:             BSD3
17License-file:        LICENSE
18Copyright:           Vincent Hanquez <vincent@snarc.org>
19Author:              Vincent Hanquez <vincent@snarc.org>
20Maintainer:          Vincent Hanquez <vincent@snarc.org>
21Synopsis:            TLS/SSL protocol native implementation (Server and Client)
22Build-Type:          Simple
23Category:            Network
24stability:           experimental
25Cabal-Version:       >=1.8
26Homepage:            http://github.com/vincenthz/hs-tls
27extra-source-files:  Tests/*.hs
28                     CHANGELOG.md
29
30Flag compat
31  Description:       Accept SSLv2 client hello for beginning SSLv3 / TLS handshake
32  Default:           True
33
34Flag network
35  Description:       Use the base network library
36  Default:           True
37
38Flag hans
39  Description:       Use the Haskell Network Stack (HaNS)
40  Default:           False
41
42Library
43  Build-Depends:     base >= 4.9 && < 5
44                   , mtl >= 2
45                   , transformers
46                   , cereal >= 0.5.3
47                   , bytestring
48                   , data-default-class
49                   -- crypto related
50                   , memory >= 0.14.6
51                   , cryptonite >= 0.25
52                   -- certificate related
53                   , asn1-types >= 0.2.0
54                   , asn1-encoding
55                   , x509 >= 1.7.5
56                   , x509-store >= 1.6
57                   , x509-validation >= 1.6.5
58                   , async >= 2.0
59                   , hourglass
60  if flag(network)
61    Build-Depends:   network >= 2.4.0.0
62    cpp-options:     -DINCLUDE_NETWORK
63  if flag(hans)
64    Build-Depends:   hans
65    cpp-options:     -DINCLUDE_HANS
66  Exposed-modules:   Network.TLS
67                     Network.TLS.Cipher
68                     Network.TLS.Compression
69                     Network.TLS.Internal
70                     Network.TLS.Extra
71                     Network.TLS.Extra.Cipher
72                     Network.TLS.Extra.FFDHE
73  other-modules:     Network.TLS.Cap
74                     Network.TLS.Struct
75                     Network.TLS.Struct13
76                     Network.TLS.Core
77                     Network.TLS.Context
78                     Network.TLS.Context.Internal
79                     Network.TLS.Credentials
80                     Network.TLS.Backend
81                     Network.TLS.Crypto
82                     Network.TLS.Crypto.DH
83                     Network.TLS.Crypto.IES
84                     Network.TLS.Crypto.Types
85                     Network.TLS.ErrT
86                     Network.TLS.Extension
87                     Network.TLS.Handshake
88                     Network.TLS.Handshake.Common
89                     Network.TLS.Handshake.Common13
90                     Network.TLS.Handshake.Certificate
91                     Network.TLS.Handshake.Key
92                     Network.TLS.Handshake.Client
93                     Network.TLS.Handshake.Server
94                     Network.TLS.Handshake.Process
95                     Network.TLS.Handshake.Random
96                     Network.TLS.Handshake.Signature
97                     Network.TLS.Handshake.State
98                     Network.TLS.Handshake.State13
99                     Network.TLS.Hooks
100                     Network.TLS.IO
101                     Network.TLS.Imports
102                     Network.TLS.KeySchedule
103                     Network.TLS.MAC
104                     Network.TLS.Measurement
105                     Network.TLS.Packet
106                     Network.TLS.Packet13
107                     Network.TLS.Parameters
108                     Network.TLS.PostHandshake
109                     Network.TLS.Record
110                     Network.TLS.Record.Types
111                     Network.TLS.Record.Engage
112                     Network.TLS.Record.Disengage
113                     Network.TLS.Record.State
114                     Network.TLS.RNG
115                     Network.TLS.State
116                     Network.TLS.Session
117                     Network.TLS.Sending
118                     Network.TLS.Sending13
119                     Network.TLS.Receiving
120                     Network.TLS.Receiving13
121                     Network.TLS.Util
122                     Network.TLS.Util.ASN1
123                     Network.TLS.Util.Serialization
124                     Network.TLS.Types
125                     Network.TLS.Wire
126                     Network.TLS.X509
127  ghc-options:       -Wall
128  if flag(compat)
129    cpp-options:     -DSSLV2_COMPATIBLE
130
131Test-Suite test-tls
132  type:              exitcode-stdio-1.0
133  hs-source-dirs:    Tests
134  Main-is:           Tests.hs
135  other-modules:     Certificate
136                     Ciphers
137                     Connection
138                     Marshalling
139                     PipeChan
140                     PubKey
141  Build-Depends:     base >= 3 && < 5
142                   , async >= 2.0
143                   , data-default-class
144                   , tasty
145                   , tasty-quickcheck
146                   , tls
147                   , QuickCheck
148                   , cryptonite
149                   , bytestring
150                   , asn1-types
151                   , x509
152                   , x509-validation
153                   , hourglass
154  ghc-options:       -Wall -fno-warn-unused-imports
155
156Benchmark bench-tls
157  hs-source-dirs:    Benchmarks Tests
158  Main-Is:           Benchmarks.hs
159  type:              exitcode-stdio-1.0
160  other-modules:     Certificate
161                     Connection
162                     PipeChan
163                     PubKey
164  Build-depends:     base >= 4 && < 5
165                   , tls
166                   , x509
167                   , x509-validation
168                   , data-default-class
169                   , cryptonite
170                   , gauge
171                   , bytestring
172                   , asn1-types
173                   , async >= 2.0
174                   , hourglass
175                   , QuickCheck >= 2
176                   , tasty-quickcheck
177                   , tls
178  ghc-options:       -Wall -fno-warn-unused-imports
179
180source-repository head
181  type: git
182  location: https://github.com/vincenthz/hs-tls
183  subdir: core
184