Blame SOURCES/libsodium-1.0.18/ChangeLog

rdobuilder 775784
rdobuilder 775784
* Version 1.0.18
rdobuilder 775784
 - The Enterprise versions of Visual Studio are now supported.
rdobuilder 775784
 - Visual Studio 2019 is now supported.
rdobuilder 775784
 - 32-bit binaries for Visual Studio 2010 are now provided.
rdobuilder 775784
 - A test that didn't work properly on Linux systems with overcommit
rdobuilder 775784
memory turned on has been removed. This fixes Ansible builds.
rdobuilder 775784
 - Emscripten: `print` and `printErr` functions are overridden to send
rdobuilder 775784
errors to the console, if there is one.
rdobuilder 775784
 - Emscripten: `UTF8ToString()` is now exported since `Pointer_stringify()`
rdobuilder 775784
has been deprecated.
rdobuilder 775784
 - Libsodium version detection has been fixed in the CMake recipe.
rdobuilder 775784
 - Generic hashing got a 10% speedup on AVX2.
rdobuilder 775784
 - New target: WebAssembly/WASI (compile with `dist-builds/wasm32-wasi.sh`).
rdobuilder 775784
 - New functions to map a hash to an edwards25519 point or get a random point:
rdobuilder 775784
`core_ed25519_from_hash()` and `core_ed25519_random()`.
rdobuilder 775784
 - `crypto_core_ed25519_scalar_mul()` has been implemented for `scalar*scalar`
rdobuilder 775784
`(mod L)` multiplication.
rdobuilder 775784
 - Support for the Ristretto group has been implemented, for compatibility
rdobuilder 775784
with wasm-crypto.
rdobuilder 775784
 - Improvements have been made to the test suite.
rdobuilder 775784
 - Portability improvements has been made.
rdobuilder 775784
 - `getentropy()` is now used on systems providing this system call.
rdobuilder 775784
 - `randombytes_salsa20 has been renamed to `randombytes_internal`.
rdobuilder 775784
 - Support for (p)nacl has been removed.
rdobuilder 775784
 - Most `((nonnull))` attributes have been relaxed to allow 0-length inputs
rdobuilder 775784
to be `NULL`.
rdobuilder 775784
 - The `-ftree-vectorize` and `-ftree-slp-vectorize` compiler switches are
rdobuilder 775784
now used, if available, for optimized builds.
rdobuilder 775784
rdobuilder 775784
* Version 1.0.17
rdobuilder 775784
 - Bug fix: `sodium_pad()` didn't properly support block sizes >= 256 bytes.
rdobuilder 775784
 - JS/WebAssembly: some old iOS versions can't instantiate the WebAssembly
rdobuilder 775784
module; fall back to Javascript on these.
rdobuilder 775784
 - JS/WebAssembly: compatibility with newer Emscripten versions.
rdobuilder 775784
 - Bug fix: `crypto_pwhash_scryptsalsa208sha256_str_verify()` and
rdobuilder 775784
`crypto_pwhash_scryptsalsa208sha256_str_needs_rehash()` didn't return
rdobuilder 775784
`EINVAL` on input strings with a short length, unlike their high-level
rdobuilder 775784
counterpart.
rdobuilder 775784
 - Added a workaround for Visual Studio 2010 bug causing CPU features
rdobuilder 775784
not to be detected.
rdobuilder 775784
 - Portability improvements.
rdobuilder 775784
 - Test vectors from Project Wycheproof have been added.
rdobuilder 775784
 - New low-level APIs for arithmetic mod the order of the prime order group:
rdobuilder 775784
`crypto_core_ed25519_scalar_random()`, `crypto_core_ed25519_scalar_reduce()`,
rdobuilder 775784
`crypto_core_ed25519_scalar_invert()`, `crypto_core_ed25519_scalar_negate()`,
rdobuilder 775784
`crypto_core_ed25519_scalar_complement()`, `crypto_core_ed25519_scalar_add()`
rdobuilder 775784
and `crypto_core_ed25519_scalar_sub()`.
rdobuilder 775784
 - New low-level APIs for scalar multiplication without clamping:
rdobuilder 775784
`crypto_scalarmult_ed25519_base_noclamp()` and
rdobuilder 775784
`crypto_scalarmult_ed25519_noclamp()`. These new APIs are especially useful
rdobuilder 775784
for blinding.
rdobuilder 775784
 - `sodium_sub()` has been implemented.
rdobuilder 775784
 - Support for WatchOS has been added.
rdobuilder 775784
 - getrandom(2) is now used on FreeBSD 12+.
rdobuilder 775784
 - The `nonnull` attribute has been added to all relevant prototypes.
rdobuilder 775784
 - More reliable AVX512 detection.
rdobuilder 775784
 - Javascript/Webassembly builds now use dynamic memory growth.
rdobuilder 775784
rdobuilder 775784
* Version 1.0.16
rdobuilder 775784
 - Signatures computations and verifications are now way faster on
rdobuilder 775784
64-bit platforms with compilers supporting 128-bit arithmetic (gcc,
rdobuilder 775784
clang, icc). This includes the WebAssembly target.
rdobuilder 775784
 - New low-level APIs for computations over edwards25519:
rdobuilder 775784
`crypto_scalarmult_ed25519()`, `crypto_scalarmult_ed25519_base()`,
rdobuilder 775784
`crypto_core_ed25519_is_valid_point()`, `crypto_core_ed25519_add()`,
rdobuilder 775784
`crypto_core_ed25519_sub()` and `crypto_core_ed25519_from_uniform()`
rdobuilder 775784
(elligator representative to point).
rdobuilder 775784
 - `crypto_sign_open()`, `crypto_sign_verify_detached() and
rdobuilder 775784
`crypto_sign_edwards25519sha512batch_open` now reject public keys in
rdobuilder 775784
non-canonical form in addition to low-order points.
rdobuilder 775784
 - The library can be built with `ED25519_NONDETERMINISTIC` defined in
rdobuilder 775784
order to use synthetic nonces for EdDSA. This is disabled by default.
rdobuilder 775784
 - Webassembly: `crypto_pwhash_*()` functions are now included in
rdobuilder 775784
non-sumo builds.
rdobuilder 775784
 - `sodium_stackzero()` was added to wipe content off the stack.
rdobuilder 775784
 - Android: support new SDKs where unified headers have become the
rdobuilder 775784
default.
rdobuilder 775784
 - The Salsa20-based PRNG example is now thread-safe on platforms with
rdobuilder 775784
support for thread-local storage, optionally mixes bits from RDRAND.
rdobuilder 775784
 - CMAKE: static library detection on Unix systems has been improved
rdobuilder 775784
(thanks to @BurningEnlightenment, @nibua-r, @mellery451)
rdobuilder 775784
 - Argon2 and scrypt are slightly faster on Linux.
rdobuilder 775784
rdobuilder 775784
* Version 1.0.15
rdobuilder 775784
 - The default password hashing algorithm is now Argon2id. The
rdobuilder 775784
`pwhash_str_verify()` function can still verify Argon2i hashes
rdobuilder 775784
without any changes, and `pwhash()` can still compute Argon2i hashes
rdobuilder 775784
as well.
rdobuilder 775784
 - The aes128ctr primitive was removed. It was slow, non-standard, not
rdobuilder 775784
authenticated, and didn't seem to be used by any opensource project.
rdobuilder 775784
 - Argon2id required at least 3 passes like Argon2i, despite a minimum
rdobuilder 775784
of `1` as defined by the `OPSLIMIT_MIN` constant. This has been fixed.
rdobuilder 775784
 - The secretstream construction was slightly changed to be consistent
rdobuilder 775784
with forthcoming variants.
rdobuilder 775784
 - The Javascript and Webassembly versions have been merged, and the
rdobuilder 775784
module now returns a `.ready` promise that will resolve after the
rdobuilder 775784
Webassembly code is loaded and compiled.
rdobuilder 775784
 - Note that due to these incompatible changes, the library version
rdobuilder 775784
major was bumped up.
rdobuilder 775784
rdobuilder 775784
* Version 1.0.14
rdobuilder 775784
 - iOS binaries should now be compatible with WatchOS and TVOS.
rdobuilder 775784
 - WebAssembly is now officially supported. Special thanks to
rdobuilder 775784
@facekapow and @pepyakin who helped to make it happen.
rdobuilder 775784
 - Internal consistency checks failing and primitives used with
rdobuilder 775784
dangerous/out-of-bounds/invalid parameters used to call abort(3).
rdobuilder 775784
Now, a custom handler *that doesn't return* can be set with the
rdobuilder 775784
`set_sodium_misuse()` function. It still aborts by default or if the
rdobuilder 775784
handler ever returns. This is not a replacement for non-fatal,
rdobuilder 775784
expected runtime errors. This handler will be only called in
rdobuilder 775784
unexpected situations due to potential bugs in the library or in
rdobuilder 775784
language bindings.
rdobuilder 775784
 - `*_MESSAGEBYTES_MAX` macros (and the corresponding
rdobuilder 775784
`_messagebytes_max()` symbols) have been added to represent the
rdobuilder 775784
maximum message size that can be safely handled by a primitive.
rdobuilder 775784
Language bindings are encouraged to check user inputs against these
rdobuilder 775784
maximum lengths.
rdobuilder 775784
 - The test suite has been extended to cover more edge cases.
rdobuilder 775784
 - crypto_sign_ed25519_pk_to_curve25519() now rejects points that are
rdobuilder 775784
not on the curve, or not in the main subgroup.
rdobuilder 775784
 - Further changes have been made to ensure that smart compilers will
rdobuilder 775784
not optimize out code that we don't want to be optimized.
rdobuilder 775784
 - Visual Studio solutions are now included in distribution tarballs.
rdobuilder 775784
 - The `sodium_runtime_has_*` symbols for CPU features detection are
rdobuilder 775784
now defined as weak symbols, i.e. they can be replaced with an
rdobuilder 775784
application-defined implementation. This can be useful to disable
rdobuilder 775784
AVX* when temperature/power consumption is a concern.
rdobuilder 775784
 - `crypto_kx_*()` now aborts if called with no non-NULL pointers to
rdobuilder 775784
store keys to.
rdobuilder 775784
 - SSE2 implementations of `crypto_verify_*()` have been added.
rdobuilder 775784
 - Passwords can be hashed using a specific algorithm with the new
rdobuilder 775784
`crypto_pwhash_str_alg()` function.
rdobuilder 775784
 - Due to popular demand, base64 encoding (`sodium_bin2base64()`) and
rdobuilder 775784
decoding (`sodium_base642bin()`) have been implemented.
rdobuilder 775784
 - A new `crypto_secretstream_*()` API was added to safely encrypt files
rdobuilder 775784
and multi-part messages.
rdobuilder 775784
 - The `sodium_pad()` and `sodium_unpad()` helper functions have been
rdobuilder 775784
added in order to add & remove padding.
rdobuilder 775784
 - An AVX512 optimized implementation of Argon2 has been added (written
rdobuilder 775784
by Ondrej Mosnáček, thanks!)
rdobuilder 775784
 - The `crypto_pwhash_str_needs_rehash()` function was added to check if
rdobuilder 775784
a password hash string matches the given parameters, or if it needs an
rdobuilder 775784
update.
rdobuilder 775784
 - The library can now be compiled with recent versions of
rdobuilder 775784
emscripten/binaryen that don't allow multiple variables declarations
rdobuilder 775784
using a single `var` statement.
rdobuilder 775784
rdobuilder 775784
* Version 1.0.13
rdobuilder 775784
 - Javascript: the sumo builds now include all symbols. They were
rdobuilder 775784
previously limited to symbols defined in minimal builds.
rdobuilder 775784
 - The public `crypto_pwhash_argon2i_MEMLIMIT_MAX` constant was
rdobuilder 775784
incorrectly defined on 32-bit platforms. This has been fixed.
rdobuilder 775784
 - Version 1.0.12 didn't compile on OpenBSD/i386 using the base gcc
rdobuilder 775784
compiler. This has been fixed.
rdobuilder 775784
 - The Android compilation scripts have been updated for NDK r14b.
rdobuilder 775784
 - armv7s-optimized code was re-added to iOS builds.
rdobuilder 775784
 - An AVX2 optimized implementation of the Argon2 round function was
rdobuilder 775784
added.
rdobuilder 775784
 - The Argon2id variant of Argon2 has been implemented. The
rdobuilder 775784
high-level `crypto_pwhash_str_verify()` function automatically detects
rdobuilder 775784
the algorithm and can verify both Argon2i and Argon2id hashed passwords.
rdobuilder 775784
The default algorithm for newly hashed passwords remains Argon2i in
rdobuilder 775784
this version to avoid breaking compatibility with verifiers running
rdobuilder 775784
libsodium <= 1.0.12.
rdobuilder 775784
 - A `crypto_box_curve25519xchacha20poly1305_seal*()` function set was
rdobuilder 775784
implemented.
rdobuilder 775784
 - scrypt was removed from minimal builds.
rdobuilder 775784
 - libsodium is now available on NuGet.
rdobuilder 775784
rdobuilder 775784
* Version 1.0.12
rdobuilder 775784
 - Ed25519ph was implemented, adding a multi-part signature API
rdobuilder 775784
(`crypto_sign_init()`, `crypto_sign_update()`, `crypto_sign_final_*()`).
rdobuilder 775784
 - New constants and related accessors have been added for Scrypt and
rdobuilder 775784
Argon2.
rdobuilder 775784
 - XChaCha20 has been implemented. Like XSalsa20, this construction
rdobuilder 775784
extends the ChaCha20 cipher to accept a 192-bit nonce. This makes it safe
rdobuilder 775784
to use ChaCha20 with random nonces.
rdobuilder 775784
 - `crypto_secretbox`, `crypto_box` and `crypto_aead` now offer
rdobuilder 775784
variants leveraging XChaCha20.
rdobuilder 775784
 - SHA-2 is about 20% faster, which also gives a speed boost to
rdobuilder 775784
signature and signature verification.
rdobuilder 775784
 - AVX2 implementations of Salsa20 and ChaCha20 have been added. They
rdobuilder 775784
are twice as fast as the SSE2 implementations. The speed gain is
rdobuilder 775784
even more significant on Windows, that previously didn't use
rdobuilder 775784
vectorized implementations.
rdobuilder 775784
 - New high-level API: `crypto_kdf`, to easily derive one or more
rdobuilder 775784
subkeys from a master key.
rdobuilder 775784
 - Siphash with a 128-bit output has been implemented, and is
rdobuilder 775784
available as `crypto_shorthash_siphashx_*`.
rdobuilder 775784
 - New `*_keygen()` helpers functions have been added to create secret
rdobuilder 775784
keys for all constructions. This improves code clarity and can prevent keys
rdobuilder 775784
from being partially initialized.
rdobuilder 775784
 - A new `randombytes_buf_deterministic()` function was added to
rdobuilder 775784
deterministically fill a memory region with pseudorandom data. This
rdobuilder 775784
function can especially be useful to write reproducible tests.
rdobuilder 775784
 - A preliminary `crypto_kx_*()` API was added to compute shared session
rdobuilder 775784
keys.
rdobuilder 775784
 - AVX2 detection is more reliable.
rdobuilder 775784
 - The pthreads library is not required any more when using MingW.
rdobuilder 775784
 - `contrib/Findsodium.cmake` was added as an example to include
rdobuilder 775784
libsodium in a project using cmake.
rdobuilder 775784
 - Compatibility with gcc 2.x has been restored.
rdobuilder 775784
 - Minimal builds can be checked using `sodium_library_minimal()`.
rdobuilder 775784
 - The `--enable-opt` compilation switch has become compatible with more
rdobuilder 775784
platforms.
rdobuilder 775784
 - Android builds are now using clang on platforms where it is
rdobuilder 775784
available.
rdobuilder 775784
rdobuilder 775784
* Version 1.0.11
rdobuilder 775784
 - `sodium_init()` is now thread-safe, and can be safely called multiple
rdobuilder 775784
times.
rdobuilder 775784
 - Android binaries now properly support 64-bit Android, targeting
rdobuilder 775784
platform 24, but without breaking compatibility with platforms 16 and
rdobuilder 775784
21.
rdobuilder 775784
 - Better support for old gcc versions.
rdobuilder 775784
 - On FreeBSD, core dumps are disabled on regions allocated with
rdobuilder 775784
sodium allocation functions.
rdobuilder 775784
 - AVX2 detection was fixed, resulting in faster Blake2b hashing on
rdobuilder 775784
platforms where it was not properly detected.
rdobuilder 775784
 - The Sandy2x Curve25519 implementation was not as fast as expected
rdobuilder 775784
on some platforms. This has been fixed.
rdobuilder 775784
 - The NativeClient target was improved. Most notably, it now supports
rdobuilder 775784
optimized implementations, and uses pepper_49 by default.
rdobuilder 775784
 - The library can be compiled with recent Emscripten versions.
rdobuilder 775784
Changes have been made to produce smaller code, and the default heap
rdobuilder 775784
size was reduced in the standard version.
rdobuilder 775784
 - The code can now be compiled on SLES11 service pack 4.
rdobuilder 775784
 - Decryption functions can now accept a NULL pointer for the output.
rdobuilder 775784
This checks the MAC without writing the decrypted message.
rdobuilder 775784
 - crypto_generichash_final() now returns -1 if called twice.
rdobuilder 775784
 - Support for Visual Studio 2008 was improved.
rdobuilder 775784
rdobuilder 775784
* Version 1.0.10
rdobuilder 775784
 - This release only fixes a compilation issue reported with some older
rdobuilder 775784
gcc versions. There are no functional changes over the previous release.
rdobuilder 775784
rdobuilder 775784
* Version 1.0.9
rdobuilder 775784
 - The Javascript target now includes a `--sumo` option to include all
rdobuilder 775784
the symbols of the original C library.
rdobuilder 775784
 - A detached API was added to the ChaCha20-Poly1305 and AES256-GCM
rdobuilder 775784
implementations.
rdobuilder 775784
 - The Argon2i password hashing function was added, and is accessible
rdobuilder 775784
directly and through a new, high-level `crypto_pwhash` API. The scrypt
rdobuilder 775784
function remains available as well.
rdobuilder 775784
 - A speed-record AVX2 implementation of BLAKE2b was added (thanks to
rdobuilder 775784
Samuel Neves).
rdobuilder 775784
 - The library can now be compiled using C++Builder (thanks to @jcolli44)
rdobuilder 775784
 - Countermeasures for Ed25519 signatures malleability have been added
rdobuilder 775784
to match the irtf-cfrg-eddsa draft (note that malleability is irrelevant to
rdobuilder 775784
the standard definition of signature security). Signatures with a small-order
rdobuilder 775784
`R` point are now also rejected.
rdobuilder 775784
 - Some implementations are now slightly faster when using the Clang
rdobuilder 775784
compiler.
rdobuilder 775784
 - The HChaCha20 core function was implemented (`crypto_core_hchacha20()`).
rdobuilder 775784
 - No-op stubs were added for all AES256-GCM public functions even when
rdobuilder 775784
compiled on non-Intel platforms.
rdobuilder 775784
 - `crypt_generichash_blake2b_statebytes()` was added.
rdobuilder 775784
 - New macros were added for the IETF variant of the ChaCha20-Poly1305
rdobuilder 775784
construction.
rdobuilder 775784
 - The library can now be compiled on Minix.
rdobuilder 775784
 - HEASLR is now enabled on MinGW builds.
rdobuilder 775784
rdobuilder 775784
* Version 1.0.8
rdobuilder 775784
 - Handle the case where the CPU supports AVX, but we are running
rdobuilder 775784
on an hypervisor with AVX disabled/not supported.
rdobuilder 775784
 - Faster (2x) scalarmult_base() when using the ref10 implementation.
rdobuilder 775784
rdobuilder 775784
* Version 1.0.7
rdobuilder 775784
 - More functions whose return value should be checked have been
rdobuilder 775784
tagged with `__attribute__ ((warn_unused_result))`: `crypto_box_easy()`,
rdobuilder 775784
`crypto_box_detached()`, `crypto_box_beforenm()`, `crypto_box()`, and
rdobuilder 775784
`crypto_scalarmult()`.
rdobuilder 775784
 - Sandy2x, the fastest Curve25519 implementation ever, has been
rdobuilder 775784
merged in, and is automatically used on CPUs supporting the AVX
rdobuilder 775784
instructions set.
rdobuilder 775784
 - An SSE2 optimized implementation of Poly1305 was added, and is
rdobuilder 775784
twice as fast as the portable one.
rdobuilder 775784
 - An SSSE3 optimized implementation of ChaCha20 was added, and is
rdobuilder 775784
twice as fast as the portable one.
rdobuilder 775784
 - Faster `sodium_increment()` for common nonce sizes.
rdobuilder 775784
 - New helper functions have been added: `sodium_is_zero()` and
rdobuilder 775784
 `sodium_add()`.
rdobuilder 775784
 - `sodium_runtime_has_aesni()` now properly detects the CPU flag when
rdobuilder 775784
 compiled using Visual Studio.
rdobuilder 775784
rdobuilder 775784
* Version 1.0.6
rdobuilder 775784
 - Optimized implementations of Blake2 have been added for modern
rdobuilder 775784
Intel platforms. `crypto_generichash()` is now faster than MD5 and SHA1
rdobuilder 775784
implementations while being far more secure.
rdobuilder 775784
 - Functions for which the return value should be checked have been
rdobuilder 775784
tagged with `__attribute__ ((warn_unused_result))`. This will
rdobuilder 775784
intentionally break code compiled with `-Werror` that didn't bother
rdobuilder 775784
checking critical return values.
rdobuilder 775784
 - The `crypto_sign_edwards25519sha512batch_*()` functions have been
rdobuilder 775784
tagged as deprecated.
rdobuilder 775784
 - Undocumented symbols that were exported, but were only useful for
rdobuilder 775784
internal purposes have been removed or made private:
rdobuilder 775784
`sodium_runtime_get_cpu_features()`, the implementation-specific
rdobuilder 775784
`crypto_onetimeauth_poly1305_donna()` symbols,
rdobuilder 775784
`crypto_onetimeauth_poly1305_set_implementation()`,
rdobuilder 775784
`crypto_onetimeauth_poly1305_implementation_name()` and
rdobuilder 775784
`crypto_onetimeauth_pick_best_implementation()`.
rdobuilder 775784
 - `sodium_compare()` now works as documented, and compares numbers
rdobuilder 775784
in little-endian format instead of behaving like `memcmp()`.
rdobuilder 775784
 - The previous changes should not break actual applications, but to be
rdobuilder 775784
safe, the library version major was incremented.
rdobuilder 775784
 - `sodium_runtime_has_ssse3()` and `sodium_runtime_has_sse41()` have
rdobuilder 775784
been added.
rdobuilder 775784
 - The library can now be compiled with the CompCert compiler.
rdobuilder 775784
rdobuilder 775784
* Version 1.0.5
rdobuilder 775784
 - Compilation issues on some platforms were fixed: missing alignment
rdobuilder 775784
directives were added (required at least on RHEL-6/i386), a workaround
rdobuilder 775784
for a VRP bug on gcc/armv7 was added, and the library can now be compiled
rdobuilder 775784
with the SunPro compiler.
rdobuilder 775784
 - Javascript target: io.js is not supported any more. Use nodejs.
rdobuilder 775784
rdobuilder 775784
* Version 1.0.4
rdobuilder 775784
 - Support for AES256-GCM has been added. This requires
rdobuilder 775784
a CPU with the aesni and pclmul extensions, and is accessible via the
rdobuilder 775784
crypto_aead_aes256gcm_*() functions.
rdobuilder 775784
 - The Javascript target doesn't use eval() any more, so that the
rdobuilder 775784
library can be used in Chrome packaged applications.
rdobuilder 775784
 - QNX and CloudABI are now supported.
rdobuilder 775784
 - Support for NaCl has finally been added.
rdobuilder 775784
 - ChaCha20 with an extended (96 bit) nonce and a 32-bit counter has
rdobuilder 775784
been implemented as crypto_stream_chacha20_ietf(),
rdobuilder 775784
crypto_stream_chacha20_ietf_xor() and crypto_stream_chacha20_ietf_xor_ic().
rdobuilder 775784
An IETF-compatible version of ChaCha20Poly1305 is available as
rdobuilder 775784
crypto_aead_chacha20poly1305_ietf_npubbytes(),
rdobuilder 775784
crypto_aead_chacha20poly1305_ietf_encrypt() and
rdobuilder 775784
crypto_aead_chacha20poly1305_ietf_decrypt().
rdobuilder 775784
 - The sodium_increment() helper function has been added, to increment
rdobuilder 775784
an arbitrary large number (such as a nonce).
rdobuilder 775784
 - The sodium_compare() helper function has been added, to compare
rdobuilder 775784
arbitrary large numbers (such as nonces, in order to prevent replay
rdobuilder 775784
attacks).
rdobuilder 775784
rdobuilder 775784
* Version 1.0.3
rdobuilder 775784
 - In addition to sodium_bin2hex(), sodium_hex2bin() is now a
rdobuilder 775784
constant-time function.
rdobuilder 775784
 - crypto_stream_xsalsa20_ic() has been added.
rdobuilder 775784
 - crypto_generichash_statebytes(), crypto_auth_*_statebytes() and
rdobuilder 775784
crypto_hash_*_statebytes() have been added in order to retrieve the
rdobuilder 775784
size of structures keeping states from foreign languages.
rdobuilder 775784
 - The JavaScript target doesn't require /dev/urandom or an external
rdobuilder 775784
randombytes() implementation any more. Other minor Emscripten-related
rdobuilder 775784
improvements have been made in order to support libsodium.js
rdobuilder 775784
 - Custom randombytes implementations do not need to provide their own
rdobuilder 775784
implementation of randombytes_uniform() any more. randombytes_stir()
rdobuilder 775784
and randombytes_close() can also be NULL pointers if they are not
rdobuilder 775784
required.
rdobuilder 775784
 - On Linux, getrandom(2) is being used instead of directly accessing
rdobuilder 775784
/dev/urandom, if the kernel supports this system call.
rdobuilder 775784
 - crypto_box_seal() and crypto_box_seal_open() have been added.
rdobuilder 775784
 - Visual Studio 2015 is now supported.
rdobuilder 775784
rdobuilder 775784
* Version 1.0.2
rdobuilder 775784
 - The _easy and _detached APIs now support precalculated keys;
rdobuilder 775784
crypto_box_easy_afternm(), crypto_box_open_easy_afternm(),
rdobuilder 775784
crypto_box_detached_afternm() and crypto_box_open_detached_afternm()
rdobuilder 775784
have been added as an alternative to the NaCl interface.
rdobuilder 775784
 - Memory allocation functions can now be used on operating systems with
rdobuilder 775784
no memory protection.
rdobuilder 775784
 - crypto_sign_open() and crypto_sign_edwards25519sha512batch_open()
rdobuilder 775784
now accept a NULL pointer instead of a pointer to the message size, if
rdobuilder 775784
storing this information is not required.
rdobuilder 775784
 - The close-on-exec flag is now set on the descriptor returned when
rdobuilder 775784
opening /dev/urandom.
rdobuilder 775784
 - A libsodium-uninstalled.pc file to use pkg-config even when
rdobuilder 775784
libsodium is not installed, has been added.
rdobuilder 775784
 - The iOS target now includes armv7s and arm64 optimized code, as well
rdobuilder 775784
as i386 and x86_64 code for the iOS simulator.
rdobuilder 775784
 - sodium_free() can now be called on regions with PROT_NONE protection.
rdobuilder 775784
 - The Javascript tests can run on Ubuntu, where the node binary was
rdobuilder 775784
renamed nodejs. io.js can also be used instead of node.
rdobuilder 775784
rdobuilder 775784
* Version 1.0.1
rdobuilder 775784
 - DLL_EXPORT was renamed SODIUM_DLL_EXPORT in order to avoid
rdobuilder 775784
collisions with similar macros defined by other libraries.
rdobuilder 775784
 - sodium_bin2hex() is now constant-time.
rdobuilder 775784
 - crypto_secretbox_detached() now supports overlapping input and output
rdobuilder 775784
regions.
rdobuilder 775784
 - NaCl's donna_c64 implementation of curve25519 was reading an extra byte
rdobuilder 775784
past the end of the buffer containing the base point. This has been
rdobuilder 775784
fixed.
rdobuilder 775784
rdobuilder 775784
* Version 1.0.0
rdobuilder 775784
 - The API and ABI are now stable. New features will be added, but
rdobuilder 775784
backward-compatibility is guaranteed through all the 1.x.y releases.
rdobuilder 775784
 - crypto_sign() properly works with overlapping regions again. Thanks
rdobuilder 775784
to @pysiak for reporting this regression introduced in version 0.6.1.
rdobuilder 775784
 - The test suite has been extended.
rdobuilder 775784
rdobuilder 775784
* Version 0.7.1 (1.0 RC2)
rdobuilder 775784
 - This is the second release candidate of Sodium 1.0. Minor
rdobuilder 775784
compilation, readability and portability changes have been made and the
rdobuilder 775784
test suite was improved, but the API is the same as the previous release
rdobuilder 775784
candidate.
rdobuilder 775784
rdobuilder 775784
* Version 0.7.0 (1.0 RC1)
rdobuilder 775784
 - Allocating memory to store sensitive data can now be done using
rdobuilder 775784
sodium_malloc() and sodium_allocarray(). These functions add guard
rdobuilder 775784
pages around the protected data to make it less likely to be
rdobuilder 775784
accessible in a heartbleed-like scenario. In addition, the protection
rdobuilder 775784
for memory regions allocated that way can be changed using
rdobuilder 775784
sodium_mprotect_noaccess(), sodium_mprotect_readonly() and
rdobuilder 775784
sodium_mprotect_readwrite().
rdobuilder 775784
 - ed25519 keys can be converted to curve25519 keys with
rdobuilder 775784
crypto_sign_ed25519_pk_to_curve25519() and
rdobuilder 775784
crypto_sign_ed25519_sk_to_curve25519(). This allows using the same
rdobuilder 775784
keys for signature and encryption.
rdobuilder 775784
 - The seed and the public key can be extracted from an ed25519 key
rdobuilder 775784
using crypto_sign_ed25519_sk_to_seed() and crypto_sign_ed25519_sk_to_pk().
rdobuilder 775784
 - aes256 was removed. A timing-attack resistant implementation might
rdobuilder 775784
be added later, but not before version 1.0 is tagged.
rdobuilder 775784
 - The crypto_pwhash_scryptxsalsa208sha256_* compatibility layer was
rdobuilder 775784
removed. Use crypto_pwhash_scryptsalsa208sha256_*.
rdobuilder 775784
 - The compatibility layer for implementation-specific functions was
rdobuilder 775784
removed.
rdobuilder 775784
 - Compilation issues with Mingw64 on MSYS (not MSYS2) were fixed.
rdobuilder 775784
 - crypto_pwhash_scryptsalsa208sha256_STRPREFIX was added: it contains
rdobuilder 775784
the prefix produced by crypto_pwhash_scryptsalsa208sha256_str()
rdobuilder 775784
rdobuilder 775784
* Version 0.6.1
rdobuilder 775784
 - Important bug fix: when crypto_sign_open() was given a signed
rdobuilder 775784
message too short to even contain a signature, it was putting an
rdobuilder 775784
unlimited amount of zeros into the target buffer instead of
rdobuilder 775784
immediately returning -1. The bug was introduced in version 0.5.0.
rdobuilder 775784
 - New API: crypto_sign_detached() and crypto_sign_verify_detached()
rdobuilder 775784
to produce and verify ed25519 signatures without having to duplicate
rdobuilder 775784
the message.
rdobuilder 775784
 - New ./configure switch: --enable-minimal, to create a smaller
rdobuilder 775784
library, with only the functions required for the high-level API.
rdobuilder 775784
Mainly useful for the JavaScript target and embedded systems.
rdobuilder 775784
 - All the symbols are now exported by the Emscripten build script.
rdobuilder 775784
 - The pkg-config .pc file is now always installed even if the
rdobuilder 775784
pkg-config tool is not available during the installation.
rdobuilder 775784
rdobuilder 775784
* Version 0.6.0
rdobuilder 775784
 - The ChaCha20 stream cipher has been added, as crypto_stream_chacha20_*
rdobuilder 775784
 - The ChaCha20Poly1305 AEAD construction has been implemented, as
rdobuilder 775784
crypto_aead_chacha20poly1305_*
rdobuilder 775784
 - The _easy API does not require any heap allocations any more and
rdobuilder 775784
does not have any overhead over the NaCl API. With the password
rdobuilder 775784
hashing function being an obvious exception, the library doesn't
rdobuilder 775784
allocate and will not allocate heap memory ever.
rdobuilder 775784
 - crypto_box and crypto_secretbox have a new _detached API to store
rdobuilder 775784
the authentication tag and the encrypted message separately.
rdobuilder 775784
 - crypto_pwhash_scryptxsalsa208sha256*() functions have been renamed
rdobuilder 775784
crypto_pwhash_scryptsalsa208sha256*().
rdobuilder 775784
 - The low-level crypto_pwhash_scryptsalsa208sha256_ll() function
rdobuilder 775784
allows setting individual parameters of the scrypt function.
rdobuilder 775784
 - New macros and functions for recommended crypto_pwhash_* parameters
rdobuilder 775784
have been added.
rdobuilder 775784
 - Similarly to crypto_sign_seed_keypair(), crypto_box_seed_keypair()
rdobuilder 775784
has been introduced to deterministically generate a key pair from a seed.
rdobuilder 775784
 - crypto_onetimeauth() now provides a streaming interface.
rdobuilder 775784
 - crypto_stream_chacha20_xor_ic() and crypto_stream_salsa20_xor_ic()
rdobuilder 775784
have been added to use a non-zero initial block counter.
rdobuilder 775784
 - On Windows, CryptGenRandom() was replaced by RtlGenRandom(), which
rdobuilder 775784
doesn't require the Crypt API.
rdobuilder 775784
 - The high bit in curve25519 is masked instead of processing the key as
rdobuilder 775784
a 256-bit value.
rdobuilder 775784
 - The curve25519 ref implementation was replaced by the latest ref10
rdobuilder 775784
implementation from Supercop.
rdobuilder 775784
 - sodium_mlock() now prevents memory from being included in coredumps
rdobuilder 775784
on Linux 3.4+
rdobuilder 775784
rdobuilder 775784
* Version 0.5.0
rdobuilder 775784
 - sodium_mlock()/sodium_munlock() have been introduced to lock pages
rdobuilder 775784
in memory before storing sensitive data, and to zero them before
rdobuilder 775784
unlocking them.
rdobuilder 775784
 - High-level wrappers for crypto_box and crypto_secretbox
rdobuilder 775784
(crypto_box_easy and crypto_secretbox_easy) can be used to avoid
rdobuilder 775784
dealing with the specific memory layout regular functions depend on.
rdobuilder 775784
 - crypto_pwhash_scryptsalsa208sha256* functions have been added
rdobuilder 775784
to derive a key from a password, and for password storage.
rdobuilder 775784
 - Salsa20 and ed25519 implementations now support overlapping
rdobuilder 775784
inputs/keys/outputs (changes imported from supercop-20140505).
rdobuilder 775784
 - New build scripts for Visual Studio, Emscripten, different Android
rdobuilder 775784
architectures and msys2 are available.
rdobuilder 775784
 - The poly1305-53 implementation has been replaced with Floodyberry's
rdobuilder 775784
poly1305-donna32 and poly1305-donna64 implementations.
rdobuilder 775784
 - sodium_hex2bin() has been added to complement sodium_bin2hex().
rdobuilder 775784
 - On OpenBSD and Bitrig, arc4random() is used instead of reading
rdobuilder 775784
/dev/urandom.
rdobuilder 775784
 - crypto_auth_hmac_sha512() has been implemented.
rdobuilder 775784
 - sha256 and sha512 now have a streaming interface.
rdobuilder 775784
 - hmacsha256, hmacsha512 and hmacsha512256 now support keys of
rdobuilder 775784
arbitrary length, and have a streaming interface.
rdobuilder 775784
 - crypto_verify_64() has been implemented.
rdobuilder 775784
 - first-class Visual Studio build system, thanks to @evoskuil
rdobuilder 775784
 - CPU features are now detected at runtime.
rdobuilder 775784
rdobuilder 775784
* Version 0.4.5
rdobuilder 775784
 - Restore compatibility with OSX <= 10.6
rdobuilder 775784
rdobuilder 775784
* Version 0.4.4
rdobuilder 775784
 - Visual Studio is officially supported (VC 2010 & VC 2013)
rdobuilder 775784
 - mingw64 is now supported
rdobuilder 775784
 - big-endian architectures are now supported as well
rdobuilder 775784
 - The donna_c64 implementation of curve25519_donna_c64 now handles
rdobuilder 775784
non-canonical points like the ref implementation
rdobuilder 775784
 - Missing scalarmult_curve25519 and stream_salsa20 constants are now exported
rdobuilder 775784
 - A crypto_onetimeauth_poly1305_ref() wrapper has been added
rdobuilder 775784
rdobuilder 775784
* Version 0.4.3
rdobuilder 775784
 - crypto_sign_seedbytes() and crypto_sign_SEEDBYTES were added.
rdobuilder 775784
 - crypto_onetimeauth_poly1305_implementation_name() was added.
rdobuilder 775784
 - poly1305-ref has been replaced by a faster implementation,
rdobuilder 775784
Floodyberry's poly1305-donna-unrolled.
rdobuilder 775784
 - Stackmarkings have been added to assembly code, for Hardened Gentoo.
rdobuilder 775784
 - pkg-config can now be used in order to retrieve compilations flags for
rdobuilder 775784
using libsodium.
rdobuilder 775784
 - crypto_stream_aes256estream_*() can now deal with unaligned input
rdobuilder 775784
on platforms that require word alignment.
rdobuilder 775784
 - portability improvements.
rdobuilder 775784
rdobuilder 775784
* Version 0.4.2
rdobuilder 775784
 - All NaCl constants are now also exposed as functions.
rdobuilder 775784
 - The Android and iOS cross-compilation script have been improved.
rdobuilder 775784
 - libsodium can now be cross-compiled to Windows from Linux.
rdobuilder 775784
 - libsodium can now be compiled with emscripten.
rdobuilder 775784
 - New convenience function (prototyped in utils.h): sodium_bin2hex().
rdobuilder 775784
rdobuilder 775784
* Version 0.4.1
rdobuilder 775784
 - sodium_version_*() functions were not exported in version 0.4. They
rdobuilder 775784
are now visible as intended.
rdobuilder 775784
 - sodium_init() now calls randombytes_stir().
rdobuilder 775784
 - optimized assembly version of salsa20 is now used on amd64.
rdobuilder 775784
 - further cleanups and enhanced compatibility with non-C99 compilers.
rdobuilder 775784
rdobuilder 775784
* Version 0.4
rdobuilder 775784
 - Most constants and operations are now available as actual functions
rdobuilder 775784
instead of macros, making it easier to use from other languages.
rdobuilder 775784
 - New operation: crypto_generichash, featuring a variable key size, a
rdobuilder 775784
variable output size, and a streaming API. Currently implemented using
rdobuilder 775784
Blake2b.
rdobuilder 775784
 - The package can be compiled in a separate directory.
rdobuilder 775784
 - aes128ctr functions are exported.
rdobuilder 775784
 - Optimized versions of curve25519 (curve25519_donna_c64), poly1305
rdobuilder 775784
(poly1305_53) and ed25519 (ed25519_ref10) are available. Optionally calling
rdobuilder 775784
sodium_init() once before using the library makes it pick the fastest
rdobuilder 775784
implementation.
rdobuilder 775784
 - New convenience function: sodium_memzero() in order to securely
rdobuilder 775784
wipe a memory area.
rdobuilder 775784
 - A whole bunch of cleanups and portability enhancements.
rdobuilder 775784
 - On Windows, a .REF file is generated along with the shared library,
rdobuilder 775784
for use with Visual Studio. The installation path for these has become
rdobuilder 775784
$prefix/bin as expected by MingW.
rdobuilder 775784
rdobuilder 775784
* Version 0.3
rdobuilder 775784
 - The crypto_shorthash operation has been added, implemented using
rdobuilder 775784
SipHash-2-4.
rdobuilder 775784
rdobuilder 775784
* Version 0.2
rdobuilder 775784
 - crypto_sign_seed_keypair() has been added
rdobuilder 775784
rdobuilder 775784
* Version 0.1
rdobuilder 775784
 - Initial release.
rdobuilder 775784