- Fixed incomplete return types in TypeScript typings.
- Replaced COPYING.txt with LICENSE file, which now has public domain dedication text from The Unlicense. License fields in package.json and bower.json have been set to “Unlicense”. The project was and will be in the public domain – this change just makes it easier for automated tools to know about this fact by using the widely recognized and SPDX-compatible template for public domain dedication.
- Added TypeScript type definitions (contributed by @AndSDev).
- Improved benchmarking code.
Fixed a bug in the fast version of Poly1305 and brought it back.
Thanks to @floodyberry for promptly responding and fixing the original C code:
“The issue was not properly detecting if st->h was >= 2^130 - 5, coupled with [testing mistake] not catching the failure. The chance of the bug affecting anything in the real world is essentially zero luckily, but it’s good to have it fixed.”
Switched Poly1305 fast version back to original (slow) version due to a bug.
No code changes, just tweaked packaging and added COPYING.txt.
Breaking change! All functions from
nacl.utilhave been removed. These functions are no longer available:
nacl.util.decodeUTF8 nacl.util.encodeUTF8 nacl.util.decodeBase64 nacl.util.encodeBase64
If want to continue using them, you can include https://github.com/dchest/tweetnacl-util-js package:
<script src="nacl.min.js"></script> <script src="nacl-util.min.js"></script>
var nacl = require('tweetnacl'); nacl.util = require('tweetnacl-util');
However it is recommended to use better packages that have wider compatibility and better performance. Functions from
nacl.utilwere never intended to be robust solution for string conversion and were included for convenience: cryptography library is not the right place for them.
Currently calling these functions will throw error pointing to
tweetnacl-util-js(in the next version this error message will be removed).
Improved detection of available random number generators, making it possible to use
nacl.randomBytesand related functions in Web Workers without changes.
Changes to testing (see README).
No code changes.
Reverted license field in package.json to “Public domain”.
Fixed typo in README.
Fixed undefined variable bug in fast version of Poly1305. No worries, this bug was never triggered.
Specified CC0 public domain dedication.
Updated development dependencies.
buffermodules from browserify builds.
nacl-fastthe default version in NPM package. Now
require("tweetnacl")will use fast version; to get the original version, use
Cleanup temporary array after generating random bytes.
- Improved performance of curve operations, making
nacl.signand related functions up to 3x faster in
- Significantly improved performance of Salsa20 (~1.5x faster) and
Poly1305 (~3.5x faster) in
- Instead of using the given secret key directly, TweetNaCl.js now copies it to
a new array in
- Added new constant:
- Even faster hash for both short and long inputs (in
nacl.sign.keyPair.fromSeedto 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.
- Exported undocumented
- Signature API breaking change!
nacl.sign.opennow deal with signed messages, and new
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
open, and it returns a boolean value, unlike
open, which returns an “unsigned” message.)
- NPM package now comes without
testdirectory to keep it small.
- Improved documentation.
- Initial release