Jesper Louis Andersen d3471348e2 Introduce negative testing.
Negative testing means we inject faulty data into the test now and then. When this happens, we make sure the SUT will
return some kind of badarg error for bad arguments. This means we should make sure things actually work out as they should.

As a side-effect, this can also be used to test for memory leaks. If run for a while, it makes sure there are no leaks in the code base,
and it probably also makes sure there are no ways to crash the server by any means of use of these NIFs. As such, it looks like the
NIFs are fairly stable.
2014-11-22 23:26:45 +01:00
2014-11-22 23:26:45 +01:00
2014-11-22 23:26:45 +01:00
2014-11-22 23:26:45 +01:00
2014-11-18 23:16:49 +01:00
2014-11-18 23:22:41 +01:00
2014-11-18 23:16:49 +01:00

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.

Description
No description provided
Readme 603 KiB
Languages
Erlang 52.3%
C 46.8%
DTrace 0.4%
Makefile 0.3%
Shell 0.1%