42 Commits

Author SHA1 Message Date
Alexander Færøy
d34e3bfef1
Remove dot after @end. 2015-04-02 18:15:48 +02:00
Jesper Louis Andersen
2979503a7f Fix the missing priv directory. 2015-03-11 13:41:53 +01:00
Jesper Louis Andersen
7ba5f9888f v0.12.0 - Add new Curve25519 extensions to the API
* Introduce Curve25519 handling.
* Update and bump README.md
* Add contributor file
2015-02-22 15:05:40 +01:00
Alexander Færøy
e408278d50
Move the high-level API to enacl_ext 2015-02-22 14:29:44 +01:00
Alexander Færøy
ef36bb85c1
Add curve25519_public_key/1. 2015-02-21 23:08:07 +01:00
Alexander Færøy
4e66fc3b94
Add curve25519_keypair/0 and curve25519_shared/2. 2015-02-21 22:49:44 +01:00
Jesper Louis Andersen
50b0058335 Improve the documentation of the project.
Go over the README file, and improve its contents. Add a Usage/hints section
with some helpful hints on how to use the library in turn. Also while here, make
sure that `rebar doc` works as expected and fix every documentation bug in
the EDoc sections, so it compiles and works. Verify the documentation output
is nice-looking while at it.
2014-12-18 09:28:00 +01:00
Jesper Louis Andersen
159e8f6750 Introduce precomputed keys API.
This patch implements beforenm/afternm calls from NaCl for `box` style
crypto. It's main advantage is way faster computations, since it avoids
recomputing in the elliptic curve for every message.

While here, bump the version to v0.11.0 as new functionality was added.
2014-12-17 17:12:29 +01:00
Jesper Louis Andersen
fc0f535882 Introduce timing for precomputed values. 2014-12-17 16:17:12 +01:00
Jesper Louis Andersen
e456f4ea9b Introduce blocking variants. 2014-12-17 15:50:02 +01:00
Jesper Louis Andersen
e594146f67 Implement the beforenm/afternm calls at the NIF layer. 2014-12-17 12:46:54 +01:00
Jesper Louis Andersen
797daa653b Fix a type specification.
When calling `stream_xor/3` it is possible to supply `iodata()` directly
and you don't have to convert to a binary first. Reflect this in the type
of the specification.
2014-12-17 08:35:50 +01:00
Jesper Louis Andersen
ea4558738a Fix typo in spec, unbreak compilation. 2014-12-16 16:59:30 +01:00
Jesper Louis Andersen
cf08e5446f Fix a type -spec. 2014-12-16 16:55:45 +01:00
Jesper Louis Andersen
45cc6a3fa4 Hello v0.10.2 2014-12-16 15:24:15 +01:00
Jesper Louis Andersen
574f731505 Fix an error in the timing code.
Luckily this has had no effect on timing in practice save for a small unmeasurable constant factor.

Thanks to the dialyzer for finding the problem.
2014-12-16 15:16:43 +01:00
Jesper Louis Andersen
541db5b5ee Use erlang:nif_error/1 to teach the dialyzer to ignore the errors.
Thanks to Anthony Ramine
2014-12-16 15:13:21 +01:00
Jesper Louis Andersen
23e535fcc2 Use better specifications. 2014-12-13 02:23:04 +01:00
Jesper Louis Andersen
943371d21a Hello v0.10.1 2014-12-13 02:09:48 +01:00
Jesper Louis Andersen
5fec48c091 EQC Test improvements
* Generalize binary generation because it is used again and again.
* Use generalized binary generation in the hash functions since they are much faster as generators.
2014-12-13 02:00:52 +01:00
Jesper Louis Andersen
b109ff7834 Provide a type specification of enacl:randombytes/1 2014-12-12 02:45:12 +01:00
Jesper Louis Andersen
fd9f421621 Introduce enacl:randombytes/1. 2014-12-09 00:33:55 +01:00
Jesper Louis Andersen
33a47e4fd4 Do not accept iolist data when binary data is what is forced by the input code. 2014-11-29 17:14:53 +01:00
Jesper Louis Andersen
90509026ce reduction handling, iodata() conversion. 2014-11-29 16:45:58 +01:00
Jesper Louis Andersen
2724873f2f Add timing for all missing operations. 2014-11-29 15:49:13 +01:00
Jesper Louis Andersen
d46ae1da16 Use on-scheduler variants of calls when message sizes are small. 2014-11-28 17:09:48 +01:00
Jesper Louis Andersen
281c3e8fbf Provide (scheduler) blocking variants of all the expensive calls. 2014-11-28 14:53:18 +01:00
Jesper Louis Andersen
addd22b31a More documentation and testing functions. 2014-11-28 14:41:06 +01:00
Jesper Louis Andersen
9cd38c7651 Introduce test cases for signing and partially for sign-opening. 2014-11-26 22:10:09 +01:00
Jesper Louis Andersen
57bb93683b Introduce tests for authentication verification and provide basis for signatures. 2014-11-26 20:05:59 +01:00
Jesper Louis Andersen
ec0cc1afaa Handle the Auth tests. 2014-11-26 15:08:14 +01:00
Jesper Louis Andersen
6a707aef57 Write test cases for the streaming API. 2014-11-26 14:24:14 +01:00
Jesper Louis Andersen
6354ea4f69 Improve the return values for keypairs.
To avoid the common mistake of re-arranging keypairs, provide them in a map which
forces the programmer to unpack the map in order to obtain the keys. This in turn makes
it harder to swap the PK/SK pair around and mistakenly giving out the secret key to the world.
2014-11-25 15:52:58 +01:00
Jesper Louis Andersen
f205398958 Provide edoc documentation for the primitives. 2014-11-25 15:42:54 +01:00
Jesper Louis Andersen
d37bce7eeb Documentation, documentation, documentation. 2014-11-25 15:08:31 +01:00
Jesper Louis Andersen
3cbff94709 Clean up: remove the application module which we don't need for a library.
This is not like the `crypto` subsystem, where a runner is needed to keep the
crypto system up and running. Rather, we can run without an application runner.
2014-11-25 14:12:54 +01:00
Jesper Louis Andersen
f64e62d16e Provide correctness test cases for the verification codes. 2014-11-25 14:10:24 +01:00
Jesper Louis Andersen
dc78d268e6 Move C level NIFs into the Erlang interface for these.
This enables the ability to call the C NIFs from Erlang.
2014-11-25 13:57:34 +01:00
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
Jesper Louis Andersen
c08f83a755 Implement cryptography for secret boxes. 2014-11-21 17:42:32 +01:00
Jesper Louis Andersen
ff5196b99f Implement crypto boxing/unboxing for public key cryptographic systems. 2014-11-21 13:40:47 +01:00
Jesper Louis Andersen
9a7f4c8d4e Initial checkin. 2014-11-18 23:16:49 +01:00