From 3379f3c6b7cf958146d0da255ebf377270b75b00 Mon Sep 17 00:00:00 2001 From: Linus Nordberg Date: Thu, 5 Jun 2014 15:47:08 +0200 Subject: Add explanatory header. --- src/ht.erl | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/ht.erl b/src/ht.erl index 9e99d16..0ef95fe 100644 --- a/src/ht.erl +++ b/src/ht.erl @@ -1,3 +1,25 @@ +%%% +%%% Implementation of a history tree similar to what is described in +%%% Efficient Data Structures for Tamper-Evident Logging [0]. This +%%% implementation follows RFC 6962 and differs from [0] only in how +%%% non-full trees are handled. +%%% +%%% Useful terminology: +%%% C -- Commitment. +%%% X -- Event, stored in leaf nodes. +%%% I(i,r) -- Interior node with index i, on layer r. +%%% A(v)(i,r) -- Hash of I(i,r) in tree of version v. +%%% d -- Depth of tree. +%%% +%%% Nodes are identified by their index i and layer r. +%%% I(i,r) has left child I(i,r-1) and right child I(i+2^(r-1),r-1). +%%% +%%% A version-n tree stores n+1 events. +%%% In a version-n tree, I(i,r) is frozen when n >= i + 2^r - 1. +%%% +%%% [0] https://www.usenix.org/event/sec09/tech/full_papers/crosby.pdf +%%% + -module('ht'). -include_lib("eunit/include/eunit.hrl"). -- cgit v1.1 From b756d6af862e97c1279d6006ed7684e28564aa97 Mon Sep 17 00:00:00 2001 From: Linus Nordberg Date: Mon, 9 Jun 2014 10:33:00 +0200 Subject: Add licensing information. --- LICENSE | 31 +++++++++++++++++++++++++++++++ ebin/plop.app | 3 +++ include/plop.hrl | 5 ++++- src/db.erl | 3 +++ src/db.hrl | 3 +++ src/hex.erl | 3 +++ src/ht.erl | 2 ++ src/plop.erl | 3 +++ src/plop_app.erl | 3 +++ src/plop_sup.erl | 3 +++ 10 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..047ac00 --- /dev/null +++ b/LICENSE @@ -0,0 +1,31 @@ +Plop is distributed under this license: + +Copyright (c) 2014, NORDUnet A/S + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +* Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with distribution. + +* Neither the name of the copyright holders nor the names of the + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR +TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE +USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. diff --git a/ebin/plop.app b/ebin/plop.app index 5aa9f97..c4da4f1 100644 --- a/ebin/plop.app +++ b/ebin/plop.app @@ -1,3 +1,6 @@ +%%% Copyright (c) 2014, NORDUnet A/S. +%%% See LICENSE for licensing information. + %%% Application resource file for plop (in -*- erlang -*- mode). {application, plop, [{description, "The plop store"}, diff --git a/include/plop.hrl b/include/plop.hrl index cbdadc8..8985e79 100644 --- a/include/plop.hrl +++ b/include/plop.hrl @@ -1,4 +1,7 @@ -%%% plop data structures. Heavily based on RFC 6962. Some are for +%%% Copyright (c) 2014, 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. diff --git a/src/db.erl b/src/db.erl index f0819cf..f683d48 100644 --- a/src/db.erl +++ b/src/db.erl @@ -1,3 +1,6 @@ +%%% Copyright (c) 2014, NORDUnet A/S. +%%% See LICENSE for licensing information. + -module(db). -behaviour(gen_server). diff --git a/src/db.hrl b/src/db.hrl index 0a6583c..3914a8c 100644 --- a/src/db.hrl +++ b/src/db.hrl @@ -1,3 +1,6 @@ +%%% Copyright (c) 2014, NORDUnet A/S. +%%% See LICENSE for licensing information. + %% @doc What's stored in the database. %% 'index' is the primary key, 'hash' is also indexed. -record(plop, { diff --git a/src/hex.erl b/src/hex.erl index dcb9349..e3c8441 100644 --- a/src/hex.erl +++ b/src/hex.erl @@ -1,3 +1,6 @@ +%%% Copyright (c) 2014, NORDUnet A/S. +%%% See LICENSE for licensing information. + -module(hex). -export([bin_to_hexstr/1,hexstr_to_bin/1]). diff --git a/src/ht.erl b/src/ht.erl index 0ef95fe..b24d04d 100644 --- a/src/ht.erl +++ b/src/ht.erl @@ -1,3 +1,5 @@ +%%% Copyright (c) 2014, NORDUnet A/S. +%%% See LICENSE for licensing information. %%% %%% Implementation of a history tree similar to what is described in %%% Efficient Data Structures for Tamper-Evident Logging [0]. This diff --git a/src/plop.erl b/src/plop.erl index 5d29c24..f681898 100644 --- a/src/plop.erl +++ b/src/plop.erl @@ -1,3 +1,6 @@ +%%% Copyright (c) 2014, NORDUnet A/S. +%%% See LICENSE for licensing information. +%%% %%% @doc Server holding log entries in a database and hashes in a %%% Merkle tree. A backend for things like Certificate Transparency %%% (RFC 6962). diff --git a/src/plop_app.erl b/src/plop_app.erl index 0a972cc..f90792d 100644 --- a/src/plop_app.erl +++ b/src/plop_app.erl @@ -1,3 +1,6 @@ +%%% Copyright (c) 2014, NORDUnet A/S. +%%% See LICENSE for licensing information. + -module(plop_app). -behaviour(application). -export([start/2, stop/1]). diff --git a/src/plop_sup.erl b/src/plop_sup.erl index 1c6602c..089a812 100644 --- a/src/plop_sup.erl +++ b/src/plop_sup.erl @@ -1,3 +1,6 @@ +%%% Copyright (c) 2014, NORDUnet A/S. +%%% See LICENSE for licensing information. + -module(plop_sup). -behaviour(supervisor). -- cgit v1.1