You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

186 lines
8.6 KiB

  1. * Version 1.0.1
  2. - DLL_EXPORT was renamed SODIUM_DLL_EXPORT in order to avoid
  3. collisions with similar macros defined by other libraries.
  4. - sodium_bin2hex() is now constant-time.
  5. - crypto_secretbox_detached() now supports overlapping input and output
  6. regions.
  7. - NaCl's donna_c64 implementation of curve25519 was reading an extra byte
  8. past the end of the buffer containing the base point. This has been
  9. fixed.
  10. * Version 1.0.0
  11. - The API and ABI are now stable. New features will be added, but
  12. backward-compatibility is guaranteed through all the 1.x.y releases.
  13. - crypto_sign() properly works with overlapping regions again. Thanks
  14. to @pysiak for reporting this regression introduced in version 0.6.1.
  15. - The test suite has been extended.
  16. * Version 0.7.1 (1.0 RC2)
  17. - This is the second release candidate of Sodium 1.0. Minor
  18. compilation, readability and portability changes have been made and the
  19. test suite was improved, but the API is the same as the previous release
  20. candidate.
  21. * Version 0.7.0 (1.0 RC1)
  22. - Allocating memory to store sensitive data can now be done using
  23. sodium_malloc() and sodium_allocarray(). These functions add guard
  24. pages around the protected data to make it less likely to be
  25. accessible in a heartbleed-like scenario. In addition, the protection
  26. for memory regions allocated that way can be changed using
  27. sodium_mprotect_noaccess(), sodium_mprotect_readonly() and
  28. sodium_mprotect_readwrite().
  29. - ed25519 keys can be converted to curve25519 keys with
  30. crypto_sign_ed25519_pk_to_curve25519() and
  31. crypto_sign_ed25519_sk_to_curve25519(). This allows using the same
  32. keys for signature and encryption.
  33. - The seed and the public key can be extracted from an ed25519 key
  34. using crypto_sign_ed25519_sk_to_seed() and crypto_sign_ed25519_sk_to_pk().
  35. - aes256 was removed. A timing-attack resistant implementation might
  36. be added later, but not before version 1.0 is tagged.
  37. - The crypto_pwhash_scryptxsalsa208sha256_* compatibility layer was
  38. removed. Use crypto_pwhash_scryptsalsa208sha256_*.
  39. - The compatibility layer for implementation-specific functions was
  40. removed.
  41. - Compilation issues with Mingw64 on MSYS (not MSYS2) were fixed.
  42. - crypto_pwhash_scryptsalsa208sha256_STRPREFIX was added: it contains
  43. the prefix produced by crypto_pwhash_scryptsalsa208sha256_str()
  44. * Version 0.6.1
  45. - Important bug fix: when crypto_sign_open() was given a signed
  46. message too short to even contain a signature, it was putting an
  47. unlimited amount of zeros into the target buffer instead of
  48. immediately returning -1. The bug was introduced in version 0.5.0.
  49. - New API: crypto_sign_detached() and crypto_sign_verify_detached()
  50. to produce and verify ed25519 signatures without having to duplicate
  51. the message.
  52. - New ./configure switch: --enable-minimal, to create a smaller
  53. library, with only the functions required for the high-level API.
  54. Mainly useful for the JavaScript target and embedded systems.
  55. - All the symbols are now exported by the Emscripten build script.
  56. - The pkg-config .pc file is now always installed even if the
  57. pkg-config tool is not available during the installation.
  58. * Version 0.6.0
  59. - The ChaCha20 stream cipher has been added, as crypto_stream_chacha20_*
  60. - The ChaCha20Poly1305 AEAD construction has been implemented, as
  61. crypto_aead_chacha20poly1305_*
  62. - The _easy API does not require any heap allocations any more and
  63. does not have any overhead over the NaCl API. With the password
  64. hashing function being an obvious exception, the library doesn't
  65. allocate and will not allocate heap memory ever.
  66. - crypto_box and crypto_secretbox have a new _detached API to store
  67. the authentication tag and the encrypted message separately.
  68. - crypto_pwhash_scryptxsalsa208sha256*() functions have been renamed
  69. crypto_pwhash_scryptsalsa208sha256*().
  70. - The low-level crypto_pwhash_scryptsalsa208sha256_ll() function
  71. allows setting individual parameters of the scrypt function.
  72. - New macros and functions for recommended crypto_pwhash_* parameters
  73. have been added.
  74. - Similarly to crypto_sign_seed_keypair(), crypto_box_seed_keypair()
  75. has been introduced to deterministically generate a key pair from a seed.
  76. - crypto_onetimeauth() now provides a streaming interface.
  77. - crypto_stream_chacha20_xor_ic() and crypto_stream_salsa20_xor_ic()
  78. have been added to use a non-zero initial block counter.
  79. - On Windows, CryptGenRandom() was replaced by RtlGenRandom(), which
  80. doesn't require the Crypt API.
  81. - The high bit in curve25519 is masked instead of processing the key as
  82. a 256-bit value.
  83. - The curve25519 ref implementation was replaced by the latest ref10
  84. implementation from Supercop.
  85. - sodium_mlock() now prevents memory from being included in coredumps
  86. on Linux 3.4+
  87. * Version 0.5.0
  88. - sodium_mlock()/sodium_munlock() have been introduced to lock pages
  89. in memory before storing sensitive data, and to zero them before
  90. unlocking them.
  91. - High-level wrappers for crypto_box and crypto_secretbox
  92. (crypto_box_easy and crypto_secretbox_easy) can be used to avoid
  93. dealing with the specific memory layout regular functions depend on.
  94. - crypto_pwhash_scryptsalsa208sha256* functions have been added
  95. to derive a key from a password, and for password storage.
  96. - Salsa20 and ed25519 implementations now support overlapping
  97. inputs/keys/outputs (changes imported from supercop-20140505).
  98. - New build scripts for Visual Studio, Emscripten, different Android
  99. architectures and msys2 are available.
  100. - The poly1305-53 implementation has been replaced with Floodyberry's
  101. poly1305-donna32 and poly1305-donna64 implementations.
  102. - sodium_hex2bin() has been added to complement sodium_bin2hex().
  103. - On OpenBSD and Bitrig, arc4random() is used instead of reading
  104. /dev/urandom.
  105. - crypto_auth_hmac_sha512() has been implemented.
  106. - sha256 and sha512 now have a streaming interface.
  107. - hmacsha256, hmacsha512 and hmacsha512256 now support keys of
  108. arbitrary length, and have a streaming interface.
  109. - crypto_verify_64() has been implemented.
  110. - first-class Visual Studio build system, thanks to @evoskuil
  111. - CPU features are now detected at runtime.
  112. * Version 0.4.5
  113. - Restore compatibility with OSX <= 10.6
  114. * Version 0.4.4
  115. - Visual Studio is officially supported (VC 2010 & VC 2013)
  116. - mingw64 is now supported
  117. - big-endian architectures are now supported as well
  118. - The donna_c64 implementation of curve25519_donna_c64 now handles
  119. non-canonical points like the ref implementation
  120. - Missing scalarmult_curve25519 and stream_salsa20 constants are now exported
  121. - A crypto_onetimeauth_poly1305_ref() wrapper has been added
  122. * Version 0.4.3
  123. - crypto_sign_seedbytes() and crypto_sign_SEEDBYTES were added.
  124. - crypto_onetimeauth_poly1305_implementation_name() was added.
  125. - poly1305-ref has been replaced by a faster implementation,
  126. Floodyberry's poly1305-donna-unrolled.
  127. - Stackmarkings have been added to assembly code, for Hardened Gentoo.
  128. - pkg-config can now be used in order to retrieve compilations flags for
  129. using libsodium.
  130. - crypto_stream_aes256estream_*() can now deal with unaligned input
  131. on platforms that require word alignment.
  132. - portability improvements.
  133. * Version 0.4.2
  134. - All NaCl constants are now also exposed as functions.
  135. - The Android and iOS cross-compilation script have been improved.
  136. - libsodium can now be cross-compiled to Windows from Linux.
  137. - libsodium can now be compiled with emscripten.
  138. - New convenience function (prototyped in utils.h): sodium_bin2hex().
  139. * Version 0.4.1
  140. - sodium_version_*() functions were not exported in version 0.4. They
  141. are now visible as intended.
  142. - sodium_init() now calls randombytes_stir().
  143. - optimized assembly version of salsa20 is now used on amd64.
  144. - further cleanups and enhanced compatibility with non-C99 compilers.
  145. * Version 0.4
  146. - Most constants and operations are now available as actual functions
  147. instead of macros, making it easier to use from other languages.
  148. - New operation: crypto_generichash, featuring a variable key size, a
  149. variable output size, and a streaming API. Currently implemented using
  150. Blake2b.
  151. - The package can be compiled in a separate directory.
  152. - aes128ctr functions are exported.
  153. - Optimized versions of curve25519 (curve25519_donna_c64), poly1305
  154. (poly1305_53) and ed25519 (ed25519_ref10) are available. Optionally calling
  155. sodium_init() once before using the library makes it pick the fastest
  156. implementation.
  157. - New convenience function: sodium_memzero() in order to securely
  158. wipe a memory area.
  159. - A whole bunch of cleanups and portability enhancements.
  160. - On Windows, a .REF file is generated along with the shared library,
  161. for use with Visual Studio. The installation path for these has become
  162. $prefix/bin as expected by MingW.
  163. * Version 0.3
  164. - The crypto_shorthash operation has been added, implemented using
  165. SipHash-2-4.
  166. * Version 0.2
  167. - crypto_sign_seed_keypair() has been added
  168. * Version 0.1
  169. - Initial release.