summaryrefslogtreecommitdiff
path: root/README.md
blob: 88c664f5e86dc0f3bd8bb8f75f4edebafec46989 (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
# 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.
Recent versions of hackney appear to be broken, version 1.0.6 is tested 
but some newer versions may work as well.

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 packages are
needed: curl, unzip.

# 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