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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
# Changes in catlfish 0.9.0 - 2016-12-04
## Features
- Configuration for selecting database backend added.
- Tool for parsing benchmarking output and generating HTML added.
## Improvements
- A new algorithm for merge backup and merge dist has been implemented.
- Merge-backup is now sending in chunks, improving performance.
- Backup quorum is now configurable.
- Configuration format now supports combined frontend and storage
nodes.
- Support for Erlang R17 and R18 added.
- Large tests added.
# Changes in version 0.8.0 - 2015-09-21
## Incompatible changes
- The file format for persistent storage of log entries has
changed. catlfish-0.8.0 is unable to read a database created by all
previous versions. Previous versions are unable to read a database
created by 0.8.0.
## Features
- Library call for verification of entries added, used by plop.
- New config parameter 'mmd' (maximum merge delay in seconds)
added. Used to determine if an STH is fresh. Default, if not
configured, is 86400, equals 24 hours (closes CATLFISH-51).
- New config group 'ratelimits' added (closes CATLFISH-52).
- Verification of leaf data when read from disk (closes CATLFISH-50).
- A new program, tools/storagegc.py, updates the lastverifiednewentry
file for storage nodes to use in fetchnewentries (closes
CATLFISH-54).
- Test suite is now verifying correct precert handling too.
## Bug fixes
- A bug with merging root certs, i.e. lacking ExtraData has been fixed
(closes CATLFISH-45).
- Merge now fsyncs the logorder file (closes CATLFISH-46).
- A chain returned from the log (get-entries) now always contains a
known root cert (closes CATLFISH-55).
- Extra data for precerts returned from the log is now conformant with
RFC6962 (closes CATLFISH-56).
## Code cleanup
- Dialyzer clean.
# Changes in version 0.7.0 - 2015-04-25
## Features
- Support for secondary merge nodes added.
- HSM support verified to work with SoftHSMv2 and one real HSM.
# Changes in version 0.6.0 - 2015-04-13
## Features
- Pre-cert handling and get-entry-and-proof implemented. Now fully
RFC6962 protocol compliant.
- Submitted X.509 certificates and their chains are now validated.
- Application split into frontend, storage, signing and merge nodes.
Docker packaging added for running them.
- Tools for merging, submitting certs and verifying SCT's added. This
is a separate code base from catlfish and plop.
- A config compiler was added making it possible to generate Erlang
syntax configuration for a complex system from simpler yaml files.
- SCT caching added, not enabled by default.
## Internal bigger changes
- Add Erlang release management and a more controlled start process.
- Use mochiweb for serving httpd (replacing inets) and json encoding
and decoding (replacing jiffy).
- Add system and unit tests.
- catlfish/plop interface clean up.
- Use lager for logging and hackney for http client.
# Changes in version 0.1.1 - 2014-09-20
catlfish version 0.1.1 fixes a major bug in add-chain decoding and
implements get-entry-and-proof.
# catlfish version 0.1.0 "PoC" - 2014-09-15
catlfish version 0.1.0 is the proof of concept release.
## Known bugs and shortcomings
- Knows nothing about x509. Accepts any data. v1/get-roots always
returns the empty list.
- v1/add-pre-chain is not implemented.
- v1/get-entry-and-proof is not implemented.
- HTTP status codes are 200 for errors. They should be 400.
|