aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: 9c0a525a420509bb4213c4771b3dc3c8469aaada (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
# btls

btls is a TLS and cryptography library for Haskell. It’s built on top of
[BoringSSL](https://boringssl.googlesource.com/boringssl), Google’s audited fork
of OpenSSL.

Although BoringSSL does not have a stable API or ABI, we expect that btls will
converge to a stable API before we release btls version 1. In the meantime, the
API remains unstable, we do not follow the [Package Versioning
Policy](https://pvp.haskell.org), and we will not post btls on Hackage.

**btls is not production ready yet.** It is feature-incomplete and has not
undergone review or auditing.

## Building

btls includes a copy of BoringSSL as a Git submodule. Ensure you’ve checked out
that submodule before building. If you’ve just cloned btls, `git submodule
update --init` should do it. You’ll also need all of BoringSSL’s build
dependencies. On Debian, run

    apt install cmake gcc g++ golang ninja-build perl

to install them. You do not need to build BoringSSL itself; btls’s Setup.hs will
take care of that for you.

btls needs GHC, c2hs and a few Haskell libraries to build. On Debian,

    apt install c2hs ghc libghc-gtk2hs-buildtools-dev

should get you everything you need; you can also run

    apt install libghc-{base16-bytestring,monad-loops,smallcheck,tasty,tasty-hunit,tasty-smallcheck}-dev

if you want to install everything you can through APT instead of Cabal. Once
you’ve done so, you can build and run the test suite.

    cabal new-build tests
    dist-newstyle/build/btls-*/build/tests/tests

---

This product includes cryptographic software written by [Eric
Young](mailto:eay@cryptsoft.com).

This product includes software written by [Tim
Hudson](mailto:tjh@cryptsoft.com).

This product includes software developed by the OpenSSL Project for use in the
[OpenSSL Toolkit](https://www.openssl.org).