aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--TODO2
-rw-r--r--doc/info/libkeccak.texinfo50
2 files changed, 50 insertions, 2 deletions
diff --git a/TODO b/TODO
index 06dd743..d2f56d0 100644
--- a/TODO
+++ b/TODO
@@ -8,5 +8,5 @@ Just for fun:
Test parallelisation and acceleration.
-Manuals are needed.
+Measure cycles per byte.
diff --git a/doc/info/libkeccak.texinfo b/doc/info/libkeccak.texinfo
index b335ca1..6b22908 100644
--- a/doc/info/libkeccak.texinfo
+++ b/doc/info/libkeccak.texinfo
@@ -83,7 +83,55 @@ with support for bit-oriented data.
@node Overview
@chapter Overview
-Lorem ipsum
+libkeccak is a free software bit-oriented implementation
+of the cryptographic hash function Keccak and its subsets
+SHA-3 (Secure Hash Algorithm@tie{}3), RawSHAKE and SHAKE.
+
+Being bit-oriented means that it supports messages of length
+consisting of a non-whole number of bytes.
+
+Keccak is a generic and tunable cryptographic hash function
+that can be used for all customary tasks that required a
+cryptographic hash function:
+@itemize @bullet{}
+@item
+Password verification@footnote{Using additional squeezes, but not using iterated hashing.}
+@item
+Proof-of-work
+@item
+File and data identification
+@item
+Data integrity
+@item
+Pseudorandom generation@footnote{Although not too random, since entropi is not utilised.}
+@item
+Key derivation
+@end itemize
+
+libkeccak support secure erasure of sensitive data,
+marshalling of hashing state, and indefinite output length.
+It also has builting functions for hashing files and
+wrapping the hash functions with HMAC@footnote{Although
+doing so is unnecessary because the key can securely be
+prepended to the message when using Keccak to produce
+a message authentication code.}. This library implements
+the Keccak algorithm using a lanewise implementation.
+libkeccak must compelling feature however is that it is
+licensed under the strongest free software license:
+GNU Affero General Public License version@tie{}3
+(see @ref{GNU Affero General Public License},) which
+gives the user the four essential freedoms:
+@itemize @bullet{}
+@item
+The freedom to run the program as you wish, for any purpose (freedom 0).
+@item
+The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition for this.
+@item
+The freedom to redistribute copies so you can help your neighbor (freedom 2).
+@item
+The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.
+@end itemize
+