Fixed undefined variable bug in fast version of Poly1305. No worries, this bug was never triggered.
Specified CC0 public domain dedication.
Updated development dependencies.
crypto
and buffer
modules from browserify builds.Made nacl-fast
the default version in NPM package. Now require("tweetnacl")
will use fast version; to get the original version, use require("tweetnacl/nacl.js")
.
Cleanup temporary array after generating random bytes.
nacl.scalarMult
, nacl.box
, nacl.sign
and related functions up to 3x faster in nacl-fast
version.nacl-fast
version.nacl.box.keyPair.fromSecretKey
and nacl.sign.keyPair.fromSecretKey
.nacl.sign.seedLength
.nacl-fast
).Implement nacl.sign.keyPair.fromSeed
to enable creation of sign key pairs deterministically from a 32-byte seed. (It behaves like libsodium's crypto_sign_seed_keypair
: the seed becomes a secret part of the secret key.)
Fast version now has an improved hash implementation that is 2x-5x faster.
Fixed benchmarks, which may have produced incorrect measurements.
nacl.lowlevel.crypto_core_hsalsa20
.nacl.sign
and nacl.sign.open
now deal with signed messages, and new nacl.sign.detached
and nacl.sign.detached.verify
are available.Previously, nacl.sign
returned a signature, and nacl.sign.open
accepted a message and “detached” signature. This was unlike NaCl's API, which dealt with signed messages (concatenation of signature and message).
The new API is:
nacl.sign(message, secretKey) -> signedMessage nacl.sign.open(signedMessage, publicKey) -> message | null
Since detached signatures are common, two new API functions were introduced:
nacl.sign.detached(message, secretKey) -> signature nacl.sign.detached.verify(message, signature, publicKey) -> true | false
(Note that it's verify
, not open
, and it returns a boolean value, unlike open
, which returns an “unsigned” message.)
test
directory to keep it small.