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
|