summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Nordberg <linus@nordu.net>2014-06-15 13:35:43 +0200
committerLinus Nordberg <linus@nordu.net>2014-06-15 13:35:43 +0200
commit558a56adfe02a0803bbbbf4ddaef0271e586930b (patch)
treed339c2eb08652f16bbc1e2e15b988187a2774281
parent5b57e05b6fcf9739f50ffe552053b2a254a08b3f (diff)
parentb756d6af862e97c1279d6006ed7684e28564aa97 (diff)
Merge branch 'master' of /home/linus/repo/plop
# Please enter a commit message to explain why this merge is necessary, # especially if it merges an updated upstream into a topic branch. # # Lines starting with '#' will be ignored, and an empty message aborts # the commit.
-rw-r--r--LICENSE31
-rw-r--r--ebin/plop.app3
-rw-r--r--include/plop.hrl5
-rw-r--r--src/db.erl3
-rw-r--r--src/db.hrl3
-rw-r--r--src/hex.erl3
-rw-r--r--src/ht.erl24
-rw-r--r--src/plop.erl3
-rw-r--r--src/plop_app.erl3
-rw-r--r--src/plop_sup.erl3
10 files changed, 80 insertions, 1 deletions
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 9e99d16..b24d04d 100644
--- a/src/ht.erl
+++ b/src/ht.erl
@@ -1,3 +1,27 @@
+%%% 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
+%%% 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").
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).