16 lines
1.2 KiB
Markdown
16 lines
1.2 KiB
Markdown
# Erlang bindings for NaCl
|
|
|
|
This library provides bindings for the NaCl cryptographic library for Erlang. Several such libraries exist, but this one is a re-write with a number of different requirements, and foci:
|
|
|
|
* Erlang/OTP 17.3. This library *needs* the newest dirty scheduler implementation.
|
|
* Uses the libsodium sources. This is a deliberate choice, since it is easy to implement.
|
|
* Does not provide anything but the original NaCl code base. This is also a deliberate choice so we are not in a situation where we can't jump to a newer version of the library later at some point.
|
|
* Tests created by aggressive use of Erlang QuickCheck.
|
|
|
|
This package draws heavy inspiration from "erlang-nacl" by Tony Garnock-Jones.
|
|
|
|
# Rationale
|
|
|
|
Doing crypto right in Erlang is not that easy. The obvious way to handle this is by the use of NIF implementations, but most C code will run to its conclusion once set off for processing. This is a major problem for a system which needs to keep its latency safe. The solution taken by this library is to use the new Dirty Scheduler API of Erlang in order to provide a safe way to handle the long-running cryptographic processing. It keeps the cryptographic primitives on the dirty schedulers and thus it avoids the major problem.
|
|
|