summaryrefslogtreecommitdiff
path: root/src/plop.hrl
blob: 9737743edae33f999e67b86454c3def21f138f82 (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
%%% Copyright (c) 2014,2016, NORDUnet A/S.
%%% See LICENSE for licensing information.

%%% Plop data structures. Heavily based on RFC 6962. Some are for
%%% database storage, some for interfacing with consumers and some are
%%% for serialisation.

%% Signed tree head
%% {Treesize, Timestamp, Roothash, Signature}
-type sth() :: {integer(), integer(), binary(), signature()}.

%% RFC 5246 7.4.1.4.1
-type hash_alg_type() :: none | md5 | sha1 | sha224 | sha256 | sha384 |
                         sha512. % uint8
-type signature_alg_type() :: anonymous | rsa | dsa | ecdsa. % uint8
-record(sig_and_hash_alg, {
        hash_alg :: hash_alg_type(),
        signature_alg :: signature_alg_type()
       }).
-type sig_and_hash_alg() :: #sig_and_hash_alg{}.

%% RFC 5246 4.7
-record(signature, {
          algorithm :: sig_and_hash_alg(),
          signature :: binary()
         }).
-type signature() :: #signature{}.