summaryrefslogtreecommitdiff
path: root/README.md
blob: b703ccee30292a8d5767cea9e726da925db52b85 (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
# catlfish

catlfish is a Certificate Transparency log server (RFC 6962).

# Requirements

In order to compile catlfish, the following software packages are
needed:

- A compiled https://git.nordu.net/plop.git application in ../plop

- A compiled https://github.com/basho/lager (for logging) in ../lager

- A compiled https://github.com/mochi/mochiweb (for web server
  functionality) in ../mochiweb

- A compiled https://github.com/benoitc/hackney.git (http client) in
  ../hackney

Note: hackney is dependent on rebar, but doesn't include one. You can
use the rebar from lager by adding "REBAR=../lager/rebar" to the make
command line, or install rebar yourself.

In order to perform merge operations, the following software packages
are needed: python-ecdsa, python-yaml.

In order to use the tools for submitting certificates, the following
software package is needed: python-pyasn1.

In order to run the tests, the following software packagess are
needed: curl.

# Compile

    $ make
    $ make release

# Start

This will set up and start a small test system with an empty log:

    $ make tests-prepare tests-start

To create an empty tree, do a first merge:

    $ (cd catlfish; ../tools/merge.py --config ../test/catlfish-test.cfg --localconfig ../test/catlfish-test-local-merge.cfg)

To submit a test cert and verify the resulting SCT:

    $ (cd catlfish; ../tools/submitcert.py --parallel=1 --store ../tools/testcerts/pre2.txt --check-sct --sct-file=submittedcerts https://localhost:8080/ --publickey=tests/keys/logkey.pem)

# Unit tests

    $ make check

# Logs and traces

Logs can be found in catlfish/log/.

The amount of log sent to the console can be adjusted at runtime using

    lager:set_loglevel(lager_console_backend, NewLevel).

where ''NewLevel'' is one of

    debug, info, notice, warning, error, critical, alert, emergency