# 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