Quick run over documentation

This commit is contained in:
Jesper Louis Andersen 2021-06-22 14:03:50 +02:00
parent ec64b0de73
commit 47ff11e956

View File

@ -6,23 +6,19 @@ Frank Denis took the source and made it far more portable in the
libsodium library. The enacl project is somewhat misnamed, as it uses
libsodium as the underlying driver.
## INSTALL/Requirements:
## INSTALL/Requirements
* Erlang/OTP above 17.3. This library *needs* the dirty scheduler
implementation from 17.3 and onwards. The library relies on dirty
scheduler support in order to handle long-running cryptography jobs,
by moving them off the main Erlang scheduler and letting the dirty
schedulers handle the work. This keeps the Erlang VM responsive while
doing large amounts of cryptographic processing.
* Is tested with Erlang 22.3. Erlang version 21 *may* work, but that isn't
the current testing target.
* New-ish Erlang installation. Tested back to version 22.3, but version 21 *may*
work as well.
* *Requires* the libsodium library, and has been tested with version
1.0.18. Lower versions might work, or they might fail to compile,
due to missing functionality.
*Note:* If installing on systems which cuts packages into
subpackages, make sure you also get the "-dev" package containing
the header files necessary in order to compile software linking to
libsodium.
due to missing functionality. In particular, this means your libsodium installation
must be fairly recent as well.
*Note:* If installing on systems which cuts packages into
subpackages, make sure you also get the "-dev" package containing
the header files necessary in order to compile software linking to
libsodium.
To build the software execute:
@ -40,7 +36,7 @@ To build and run eqc-mini version of test execute:
make eqc_mini_run
## Features:
## Features
* Complete NaCl library, implementing all default functionality.
* Implements a large set of additional functionality from libsodium.
@ -62,16 +58,12 @@ In addition, I would like to thank Steve Vinoski, Rickard Green, and
Sverker Eriksson for providing the Dirty Scheduler API in the first
place.
# USING:
## Usage
In general, consult the libsodium documentation at
https://download.libsodium.org/doc/
In general, consult the libsodium documentation at [Libsodium documentation](https://download.libsodium.org/doc/)
The original NaCl documentation is nowadays largely superceded by the
libsodium documentation, but it is still worth a visit
https://nacl.cr.yp.to
libsodium documentation, but it is still worth a visit [NaCl website](https://nacl.cr.yp.to)
but also note that our interface has full Edoc documentation,
generated by executing
@ -134,11 +126,11 @@ However, their correct use is still needed in order to be secure:
a foreign system as an oracle in order to learn the structure of a
string, breaking the cryptograhic system in the process.
# Versions
## Versions
See CHANGELOG.md
# Overview
## Overview
The NaCl cryptographic library provides a number of different
cryptographic primitives. In the following, we split up the different
@ -200,7 +192,7 @@ This implements cryptography where there is a shared secret key between parties.
* *String comparison:* Implements guaranteed constant-time string
comparisons to protect against timing attacks.
# Rationale
## Rationale
Doing crypto right in Erlang is not that easy. For one, the crypto
system has to be rather fast, which rules out Erlang as the main
@ -252,7 +244,7 @@ perhaps being able to switch faster. There are plans to rerun these
tests on OSX and Illumos as well, in order to investigate the numbers
on more platforms.
# Testing
## Testing
Every primitive has been stress-tested through the use of Erlang
QuickCheck with both *positive* and *negative* testing. This has been
@ -279,11 +271,8 @@ sure we have no memory leaks as they will show themselves under the
extensive QuickCheck test cases we run. It has been verified there are
no leaks in the code.
# Notes
## Notes
[0] Other people have worked on bits and pieces of NaCl. These are
just the 3 main authors. Please see the page
http://nacl.cr.yp.to
just the 3 main authors. Please see the page [NaCl](http://nacl.cr.yp.to)
for the full list of authors.