\hypertarget{md_sfcode_node_modules_tweetnacl_CHANGELOG_autotoc_md30995}{}\doxysection{v0.\+14.\+5}\label{md_sfcode_node_modules_tweetnacl_CHANGELOG_autotoc_md30995}

\begin{DoxyItemize}
\item Fixed incomplete return types in Type\+Script typings.
\item 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 \char`\"{}\+Unlicense\char`\"{}. 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.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_tweetnacl_CHANGELOG_autotoc_md30996}{}\doxysection{v0.\+14.\+4}\label{md_sfcode_node_modules_tweetnacl_CHANGELOG_autotoc_md30996}

\begin{DoxyItemize}
\item Added Type\+Script type definitions (contributed by @\+And\+SDev).
\item Improved benchmarking code.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_tweetnacl_CHANGELOG_autotoc_md30997}{}\doxysection{v0.\+14.\+3}\label{md_sfcode_node_modules_tweetnacl_CHANGELOG_autotoc_md30997}
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\+:

\begin{quote}
"{}The issue was not properly detecting if st-\/$>$h was $>$= 2$^\wedge$130 -\/ 5, coupled with \mbox{[}testing mistake\mbox{]} not catching the failure. The chance of the bug affecting anything in the real world is essentially zero luckily, but it\textquotesingle{}s good to have it fixed."{} \end{quote}
\href{https://github.com/floodyberry/poly1305-donna/issues/2\#issuecomment-202698577}{\texttt{ https\+://github.\+com/floodyberry/poly1305-\/donna/issues/2\#issuecomment-\/202698577}}\hypertarget{md_sfcode_node_modules_tweetnacl_CHANGELOG_autotoc_md30998}{}\doxysection{v0.\+14.\+2}\label{md_sfcode_node_modules_tweetnacl_CHANGELOG_autotoc_md30998}
Switched Poly1305 fast version back to original (slow) version due to a bug.\hypertarget{md_sfcode_node_modules_tweetnacl_CHANGELOG_autotoc_md30999}{}\doxysection{v0.\+14.\+1}\label{md_sfcode_node_modules_tweetnacl_CHANGELOG_autotoc_md30999}
No code changes, just tweaked packaging and added COPYING.\+txt.\hypertarget{md_sfcode_node_modules_tweetnacl_CHANGELOG_autotoc_md31000}{}\doxysection{v0.\+14.\+0}\label{md_sfcode_node_modules_tweetnacl_CHANGELOG_autotoc_md31000}

\begin{DoxyItemize}
\item {\bfseries{Breaking change!}} All functions from {\ttfamily nacl.\+util} have been removed. These functions are no longer available\+: \begin{DoxyVerb}nacl.util.decodeUTF8
nacl.util.encodeUTF8
nacl.util.decodeBase64
nacl.util.encodeBase64
\end{DoxyVerb}
 If want to continue using them, you can include \href{https://github.com/dchest/tweetnacl-util-js}{\texttt{ https\+://github.\+com/dchest/tweetnacl-\/util-\/js}} package\+: \begin{DoxyVerb}<script src="nacl.min.js"></script>
<script src="nacl-util.min.js"></script>
\end{DoxyVerb}
 or \begin{DoxyVerb}var nacl = require('tweetnacl');
nacl.util = require('tweetnacl-util');
\end{DoxyVerb}
 However it is recommended to use better packages that have wider compatibility and better performance. Functions from {\ttfamily nacl.\+util} were 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 {\ttfamily tweetnacl-\/util-\/js} (in the next version this error message will be removed).
\item Improved detection of available random number generators, making it possible to use {\ttfamily nacl.\+random\+Bytes} and related functions in Web Workers without changes.
\item Changes to testing (see README).
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_tweetnacl_CHANGELOG_autotoc_md31001}{}\doxysection{v0.\+13.\+3}\label{md_sfcode_node_modules_tweetnacl_CHANGELOG_autotoc_md31001}
No code changes.


\begin{DoxyItemize}
\item Reverted license field in package.\+json to \char`\"{}\+Public domain\char`\"{}.
\item Fixed typo in README.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_tweetnacl_CHANGELOG_autotoc_md31002}{}\doxysection{v0.\+13.\+2}\label{md_sfcode_node_modules_tweetnacl_CHANGELOG_autotoc_md31002}

\begin{DoxyItemize}
\item Fixed undefined variable bug in fast version of Poly1305. No worries, this bug was {\itshape never} triggered.
\item Specified CC0 public domain dedication.
\item Updated development dependencies.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_tweetnacl_CHANGELOG_autotoc_md31003}{}\doxysection{v0.\+13.\+1}\label{md_sfcode_node_modules_tweetnacl_CHANGELOG_autotoc_md31003}

\begin{DoxyItemize}
\item Exclude {\ttfamily crypto} and {\ttfamily buffer} modules from browserify builds.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_tweetnacl_CHANGELOG_autotoc_md31004}{}\doxysection{v0.\+13.\+0}\label{md_sfcode_node_modules_tweetnacl_CHANGELOG_autotoc_md31004}

\begin{DoxyItemize}
\item Made {\ttfamily nacl-\/fast} the default version in NPM package. Now {\ttfamily require(\char`\"{}tweetnacl\char`\"{})} will use fast version; to get the original version, use {\ttfamily require(\char`\"{}tweetnacl/nacl.\+js\char`\"{})}.
\item Cleanup temporary array after generating random bytes.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_tweetnacl_CHANGELOG_autotoc_md31005}{}\doxysection{v0.\+12.\+2}\label{md_sfcode_node_modules_tweetnacl_CHANGELOG_autotoc_md31005}

\begin{DoxyItemize}
\item Improved performance of curve operations, making {\ttfamily nacl.\+scalar\+Mult}, {\ttfamily nacl.\+box}, {\ttfamily nacl.\+sign} and related functions up to 3x faster in {\ttfamily nacl-\/fast} version.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_tweetnacl_CHANGELOG_autotoc_md31006}{}\doxysection{v0.\+12.\+1}\label{md_sfcode_node_modules_tweetnacl_CHANGELOG_autotoc_md31006}

\begin{DoxyItemize}
\item Significantly improved performance of Salsa20 ($\sim$1.5x faster) and Poly1305 ($\sim$3.5x faster) in {\ttfamily nacl-\/fast} version.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_tweetnacl_CHANGELOG_autotoc_md31007}{}\doxysection{v0.\+12.\+0}\label{md_sfcode_node_modules_tweetnacl_CHANGELOG_autotoc_md31007}

\begin{DoxyItemize}
\item Instead of using the given secret key directly, Tweet\+Na\+Cl.\+js now copies it to a new array in {\ttfamily nacl.\+box.\+key\+Pair.\+from\+Secret\+Key} and {\ttfamily nacl.\+sign.\+key\+Pair.\+from\+Secret\+Key}.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_tweetnacl_CHANGELOG_autotoc_md31008}{}\doxysection{v0.\+11.\+2}\label{md_sfcode_node_modules_tweetnacl_CHANGELOG_autotoc_md31008}

\begin{DoxyItemize}
\item Added new constant\+: {\ttfamily nacl.\+sign.\+seed\+Length}.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_tweetnacl_CHANGELOG_autotoc_md31009}{}\doxysection{v0.\+11.\+1}\label{md_sfcode_node_modules_tweetnacl_CHANGELOG_autotoc_md31009}

\begin{DoxyItemize}
\item Even faster hash for both short and long inputs (in {\ttfamily nacl-\/fast}).
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_tweetnacl_CHANGELOG_autotoc_md31010}{}\doxysection{v0.\+11.\+0}\label{md_sfcode_node_modules_tweetnacl_CHANGELOG_autotoc_md31010}

\begin{DoxyItemize}
\item Implement {\ttfamily nacl.\+sign.\+key\+Pair.\+from\+Seed} to enable creation of sign key pairs deterministically from a 32-\/byte seed. (It behaves like \href{http://doc.libsodium.org/public-key_cryptography/public-key_signatures.html}{\texttt{ libsodium\textquotesingle{}s}} {\ttfamily crypto\+\_\+sign\+\_\+seed\+\_\+keypair}\+: the seed becomes a secret part of the secret key.)
\item Fast version now has an improved hash implementation that is 2x-\/5x faster.
\item Fixed benchmarks, which may have produced incorrect measurements.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_tweetnacl_CHANGELOG_autotoc_md31011}{}\doxysection{v0.\+10.\+1}\label{md_sfcode_node_modules_tweetnacl_CHANGELOG_autotoc_md31011}

\begin{DoxyItemize}
\item Exported undocumented {\ttfamily nacl.\+lowlevel.\+crypto\+\_\+core\+\_\+hsalsa20}.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_tweetnacl_CHANGELOG_autotoc_md31012}{}\doxysection{v0.\+10.\+0}\label{md_sfcode_node_modules_tweetnacl_CHANGELOG_autotoc_md31012}

\begin{DoxyItemize}
\item {\bfseries{Signature API breaking change!}} {\ttfamily nacl.\+sign} and {\ttfamily nacl.\+sign.\+open} now deal with signed messages, and new {\ttfamily nacl.\+sign.\+detached} and {\ttfamily nacl.\+sign.\+detached.\+verify} are available.

Previously, {\ttfamily nacl.\+sign} returned a signature, and {\ttfamily nacl.\+sign.\+open} accepted a message and \char`\"{}detached\char`\"{} signature. This was unlike Na\+Cl\textquotesingle{}s API, which dealt with signed messages (concatenation of signature and message).

The new API is\+: \begin{DoxyVerb} nacl.sign(message, secretKey) -> signedMessage
 nacl.sign.open(signedMessage, publicKey) -> message | null
\end{DoxyVerb}
 Since detached signatures are common, two new API functions were introduced\+: \begin{DoxyVerb} nacl.sign.detached(message, secretKey) -> signature
 nacl.sign.detached.verify(message, signature, publicKey) -> true | false
\end{DoxyVerb}
 (Note that it\textquotesingle{}s {\ttfamily verify}, not {\ttfamily open}, and it returns a boolean value, unlike {\ttfamily open}, which returns an \char`\"{}unsigned\char`\"{} message.)
\item NPM package now comes without {\ttfamily test} directory to keep it small.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_tweetnacl_CHANGELOG_autotoc_md31013}{}\doxysection{v0.\+9.\+2}\label{md_sfcode_node_modules_tweetnacl_CHANGELOG_autotoc_md31013}

\begin{DoxyItemize}
\item Improved documentation.
\item Fast version\+: increased theoretical message size limit from 2$^\wedge$32-\/1 to 2$^\wedge$52 bytes in Poly1305 (and thus, secretbox and box). However this has no impact in practice since Java\+Script arrays or Array\+Buffers are limited to 32-\/bit indexes, and most implementations won\textquotesingle{}t allocate more than a gigabyte or so. (Obviously, there are no tests for the correctness of implementation.) Also, it\textquotesingle{}s not recommended to use messages that large without splitting them into smaller packets anyway.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_tweetnacl_CHANGELOG_autotoc_md31014}{}\doxysection{v0.\+9.\+1}\label{md_sfcode_node_modules_tweetnacl_CHANGELOG_autotoc_md31014}

\begin{DoxyItemize}
\item Initial release 
\end{DoxyItemize}