mpi: Fix gcry_mpi_neg.
[libgcrypt.git] / NEWS
diff --git a/NEWS b/NEWS
index 8699939..c232a99 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,9 +1,246 @@
-Noteworthy changes in version 1.4.2 (unreleased)
+Noteworthy changes in version 1.6.0 (unreleased)
 ------------------------------------------------
 
 ------------------------------------------------
 
- * The library may now be switched into a FIPS mode.
+ * Removed the long deprecated gcry_ac interface.  Thus Libgcrypt is
+   not anymore ABI compatible to previous versions if they used the ac
+   interface.
+
+ * Removed the module register subsystem.
+
+ * The deprecated message digest debug macros have been removed.  Use
+   gcry_md_debug instead.
+
+ * Added support for the IDEA cipher algorithm.
+
+ * Added support for the Salsa20 and reduced Salsa20/12 stream ciphers.
+
+ * Added limited support for the GOST 28147-89 cipher algorithm.
+
+ * Added support for the GOST R 34.11-94 and R 34.11-2012 (Stribog)
+   hash algorithms.
+
+ * Added a random number generator to directly use the system's RNG.
+   Also added an interface to prefer the use of a specified RNG.
+
+ * Added support for the SCRYPT algorithm.
+
+ * Mitigate the Yarom/Falkner flush+reload side-channel attack on RSA
+   secret keys.  See <http://eprint.iacr.org/2013/448> [CVE-2013-4242].
+
+ * Support Deterministic DSA as per RFC-6969.
+
+ * Added a scatter gather hash convenience function.
+
+ * Added several MPI helper functions.
+
+ * Added support for negative numbers to gcry_mpi_print,
+   gcry_mpi_aprint and gcry_mpi_scan.
+
+ * The algorithm ids GCRY_PK_ECDSA and GCRY_PK_ECDH are now
+   deprecated.  Use GCRY_PK_ECC instead.
+
+ * Interface changes relative to the 1.5.0 release:
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ gcry_ac_*              REMOVED.
+ GCRY_AC_*              REMOVED.
+ gcry_module_t          REMOVED.
+ gcry_cipher_register   REMOVED.
+ gcry_cipher_unregister REMOVED.
+ gcry_cipher_list       REMOVED.
+ gcry_pk_register       REMOVED.
+ gcry_pk_unregister     REMOVED.
+ gcry_pk_list           REMOVED.
+ gcry_md_register       REMOVED.
+ gcry_md_unregister     REMOVED.
+ gcry_md_list           REMOVED.
+ gcry_md_start_debug    REMOVED (macro).
+ gcry_md_stop_debug     REMOVED (macro).
+ gcry_md_hash_buffers            NEW.
+ gcry_buffer_t                   NEW.
+ GCRYCTL_SET_ENFORCED_FIPS_FLAG  NEW.
+ GCRYCTL_SET_PREFERRED_RNG_TYPE  NEW.
+ GCRYCTL_GET_CURRENT_RNG_TYPE    NEW.
+ GCRY_RNG_TYPE_STANDARD          NEW.
+ GCRY_RNG_TYPE_FIPS              NEW.
+ GCRY_RNG_TYPE_SYSTEM            NEW.
+ gcry_mpi_is_neg                 NEW.
+ gcry_mpi_neg                    NEW.
+ gcry_mpi_abs                    NEW.
+ gcry_mpi_snatch                 NEW.
+ gcry_mpi_point_t                NEW.
+ gcry_mpi_point_new              NEW.
+ gcry_mpi_point_release          NEW.
+ gcry_mpi_point_get              NEW.
+ gcry_mpi_point_snatch_get       NEW.
+ gcry_mpi_point_set              NEW.
+ gcry_mpi_point_snatch_set       NEW.
+ gcry_ctx_t                      NEW.
+ gcry_ctx_release                NEW.
+ gcry_mpi_ec_new                 NEW.
+ gcry_mpi_ec_get_mpi             NEW.
+ gcry_mpi_ec_get_point           NEW.
+ gcry_mpi_ec_set_mpi             NEW.
+ gcry_mpi_ec_set_point           NEW.
+ gcry_mpi_ec_get_affine          NEW.
+ gcry_mpi_ec_dup                 NEW.
+ gcry_mpi_ec_add                 NEW.
+ gcry_mpi_ec_mul                 NEW.
+ gcry_mpi_ec_curve_point         NEW.
+ GCRYMPI_FLAG_IMMUTABLE          NEW.
+ GCRYMPI_FLAG_CONST              NEW.
+ GCRYMPI_CONST_ONE               NEW.
+ GCRYMPI_CONST_TWO               NEW.
+ GCRYMPI_CONST_THREE             NEW.
+ GCRYMPI_CONST_FOUR              NEW.
+ GCRYMPI_CONST_EIGHT             NEW.
+ GCRYPT_VERSION_NUMBER           NEW.
+ GCRY_KDF_SCRYPT                 NEW.
+ gcry_pubkey_get_sexp            NEW.
+ GCRYCTL_DISABLE_LOCKED_SECMEM   NEW.
+ GCRYCTL_DISABLE_PRIV_DROP       NEW.
+ GCRY_CIPHER_SALSA20             NEW.
+ gcry_sexp_nth_buffer            NEW.
+ GCRY_CIPHER_SALSA20R12          NEW.
+ GCRY_CIPHER_GOST28147           NEW.
+ GCRY_MD_GOSTR3411_94            NEW.
+ GCRY_MD_STRIBOG256              NEW.
+ GCRY_MD_STRIBOG512              NEW.
+ GCRYCTL_DISABLE_ALGO            CHANGED: Not anymore thread-safe.
+ GCRY_PK_ECC                     NEW.
+ gcry_log_debug                  NEW.
+ gcry_log_debughex               NEW.
+ gcry_log_debugmpi               NEW.
+ gcry_log_debugpnt               NEW.
+
+
+Noteworthy changes in version 1.5.0 (2011-06-29)
+------------------------------------------------
+
+ * New function gcry_kdf_derive implementing OpenPGP S2K algorithms
+   and PBKDF2.
+
+ * Support for WindowsCE.
+
+ * Support for ECDH.
+
+ * Support for OAEP and PSS methods as described by RFC-3447.
+
+ * Fixed PKCS v1.5 code to always return the leading zero.
+
+ * New format specifiers "%M" and "%u" for gcry_sexp_build.
+
+ * Support opaque MPIs with "%m" and "%M" in gcry_sexp_build.
+
+ * New functions gcry_pk_get_curve and gcry_pk_get_param to map ECC
+   parameters to a curve name and to retrieve parameter values.
+
+ * gcry_mpi_cmp applied to opaque values has a defined semantic now.
+
+ * Uses the Intel AES-NI instructions if available.
+
+ * The use of the deprecated Alternative Public Key Interface
+   (gcry_ac_*) will now print compile time warnings.
+
+ * The module register subsystem has been deprecated.  This subsystem
+   is not flexible enough and would always require ABI changes to
+   extend the internal interfaces.  It will eventually be removed.
+   Please contact us on the gcrypt-devel mailing list to discuss
+   whether you really need this feature or how it can be replaced by
+   an internal plugin mechanism.
+
+ * CTR mode may now be used with data chunks of arbitrary length.
+
+ * Changes also done in 1.4.6 (2010-07-13):
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ * New variants of the TIGER algorithm.
+
+ * New cipher algorithm mode for AES-WRAP.
+
+ * Changes also done in 1.4.5 (2009-12-11):
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ * Fixed minor memory leak in DSA key generation.
+
+ * No more switching to FIPS mode if /proc/version is not readable.
 
 
- * More runtime selftests.
+ * Fixed sigill during Padlock detection on old CPUs.
+
+ * Fixed a hang on some W2000 machines.
+
+ * Boosted SHA-512 performance by 30% on ia32 boxes and gcc 4.3;
+   SHA-256 went up by 25%.
+
+ * Interface changes relative to the 1.4.6 release:
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ GCRY_PK_ECDH               NEW.
+ gcry_pk_get_curve          NEW.
+ gcry_pk_get_param          NEW.
+ GCRYCTL_DISABLE_HWF        NEW.
+ gcry_kdf_derive            NEW.
+ gcry_pk_encrypt            EXTENDED: Support OAEP.
+ gcry_pk_decrypt            EXTENDED: Support OAEP.
+ gcry_pk_sign               EXTENDED: Support PSS.
+ gcry_pk_verify             EXTENDED: Support PSS.
+ gcry_sexp_build            EXTENDED: Add format specifiers M and u.
+
+ * Interface changes relative to the 1.4.2 release:
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ GCRY_CIPHER_MODE_AESWRAP   NEW.
+ GCRY_MD_TIGER1             NEW.
+ GCRY_MD_TIGER2             NEW.
+
+
+Noteworthy changes in version 1.4.4 (2009-01-22)
+------------------------------------------------
+
+ * Publish GCRY_MODULE_ID_USER and GCRY_MODULE_ID_USER_LAST constants.
+   This functionality has been in Libgcrypt since 1.3.0.
+
+ * MD5 may now be used in non-enforced fips mode.
+
+ * Fixed HMAC for SHA-384 and SHA-512 with keys longer than 64 bytes.
+
+ * In fips mode, RSA keys are now generated using the X9.31 algorithm
+   and DSA keys using the FIPS 186-2 algorithm.
+
+ * The transient-key flag is now also supported for DSA key
+   generation.  DSA domain parameters may be given as well.
+
+
+Noteworthy changes in version 1.4.3 (2008-09-18)
+------------------------------------------------
+
+ * Try to auto-initialize Libgcrypt to minimize the effect of
+   applications not doing that correctly.  This is not a perfect
+   solution but given that many applicationion would totally fail
+   without such a hack, we try to help at least with the most common
+   cases.  Folks, please read the manual to learn how to properly
+   initialize Libgcrypt!
+
+ * Auto-initialize the secure memory to 32k instead of aborting the
+   process.
+
+ * Log fatal errors via syslog.
+
+ * Changed the name and the semantics of the fips mode config file.
+
+ * Add convenience macro gcry_fips_mode_active.
+
+ * More self-tests.
+
+ * Documentation cleanups.
+
+
+Noteworthy changes in version 1.4.2 (2008-09-08)
+------------------------------------------------
+
+ * The long missing gcry_mpi_lshift function has been added.
+
+ * RSA key generation now supports a "transient-key" flag.
+
+ * The keygrip computation for ECDSA has been implemented thus ECDSA
+   is now fully supported.
 
  * A few macros have been replaced by functions for better type
    checking.
 
  * A few macros have been replaced by functions for better type
    checking.
@@ -11,9 +248,9 @@ Noteworthy changes in version 1.4.2 (unreleased)
  * The thread initialization structure now carries version
    information.
 
  * The thread initialization structure now carries version
    information.
 
- * The long missing gcry_mpi_lshift function has been added.
+ * The manual describes more clearly how to initialize Libgcrypt.
 
 
- * RSA key generation now supports a "transient-key" flag.
+ * The library may now be switched into a FIPS mode.
 
  * Interface changes relative to the 1.3.0 release:
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
  * Interface changes relative to the 1.3.0 release:
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -140,7 +377,7 @@ Noteworthy changes in version 1.3.0 (2007-05-04)
  GCRY_CIPHER_CAMELLIA128 NEW
  GCRY_CIPHER_CAMELLIA192 NEW
  GCRY_CIPHER_CAMELLIA256 NEW
  GCRY_CIPHER_CAMELLIA128 NEW
  GCRY_CIPHER_CAMELLIA192 NEW
  GCRY_CIPHER_CAMELLIA256 NEW
- GCRYCTL_FAKED_RANDOM_P  NEW 
+ GCRYCTL_FAKED_RANDOM_P  NEW
  GCRYCTL_PRINT_CONFIG    NEW
  GCRYCTL_SET_RNDEGD_SOCKET  NEW.
  gcry_mpi_scan           CHANGED: Argument BUFFER is now void*.
  GCRYCTL_PRINT_CONFIG    NEW
  GCRYCTL_SET_RNDEGD_SOCKET  NEW.
  gcry_mpi_scan           CHANGED: Argument BUFFER is now void*.
@@ -234,7 +471,7 @@ Noteworthy changes in version 1.1.90 (2003-11-14)
  * gcry_sexp_build now supports a "%b" format to include a memory buffer.
 
  * Minor configuration fixes.
  * gcry_sexp_build now supports a "%b" format to include a memory buffer.
 
  * Minor configuration fixes.
+
  * Interface changes relative to the 1.1.44 release:
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 gcry_create_nonce               NEW
  * Interface changes relative to the 1.1.44 release:
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 gcry_create_nonce               NEW
@@ -277,7 +514,7 @@ Noteworthy changes in version 1.1.42 (2003-07-31)
    However, this is only for ease of transition.  NO DEPRECATED
    FUNCTION OR DATA TYPE IS CONSIDERED A PART OF THE API OR ABI AND
    WILL BE DROPPED IN THE FUTURE WITHOUT CHANGING THE SONAME OF THE
    However, this is only for ease of transition.  NO DEPRECATED
    FUNCTION OR DATA TYPE IS CONSIDERED A PART OF THE API OR ABI AND
    WILL BE DROPPED IN THE FUTURE WITHOUT CHANGING THE SONAME OF THE
-   LIBRARY. 
+   LIBRARY.
 
  * If gcrypt.h is included in sources compiled by GCC 3.1 or later,
    deprecated attributes will warn about use of obsolete functions and
 
  * If gcrypt.h is included in sources compiled by GCC 3.1 or later,
    deprecated attributes will warn about use of obsolete functions and
@@ -301,7 +538,7 @@ Noteworthy changes in version 1.1.42 (2003-07-31)
    gcry_err_make_from_errno, gcry_err_code_from_errno,
    gcry_err_code_to_errno, gcry_strsource.
 
    gcry_err_make_from_errno, gcry_err_code_from_errno,
    gcry_err_code_to_errno, gcry_strsource.
 
- * New function gcry_mpi_dump to help in debugging. 
+ * New function gcry_mpi_dump to help in debugging.
 
  * Added alternative interface for asymmetric cryptography.
 
 
  * Added alternative interface for asymmetric cryptography.
 
@@ -320,7 +557,7 @@ Noteworthy changes in version 1.1.42 (2003-07-31)
 
  * CTR mode for block ciphers is now supported.
 
 
  * CTR mode for block ciphers is now supported.
 
- * The public RSA exponent can now be specified in key generation. 
+ * The public RSA exponent can now be specified in key generation.
 
  * RSA blinding is now supported and is used automatically for RSA
    decryption.  It can be explicitely disabled by using the
 
  * RSA blinding is now supported and is used automatically for RSA
    decryption.  It can be explicitely disabled by using the
@@ -486,8 +723,8 @@ Noteworthy changes in version 1.1.7 (2002-05-21)
 ------------------------------------------------
 
 * Libgcrypt is now distributed under the terms of the GNU Lesser
 ------------------------------------------------
 
 * Libgcrypt is now distributed under the terms of the GNU Lesser
-  General Public License; see the README file for details.    
-  
+  General Public License; see the README file for details.
+
 * It is possible to use libgcrypt w/o intialized secure memory.
 
 * Libgcrypt should now be thread safe after the initialization.
 * It is possible to use libgcrypt w/o intialized secure memory.
 
 * Libgcrypt should now be thread safe after the initialization.
@@ -511,7 +748,7 @@ Noteworthy changes in version 1.1.6 (2002-02-07)
 ------------------------------------------------
 
   * Enhanced the S-expression conversion functions.
 ------------------------------------------------
 
   * Enhanced the S-expression conversion functions.
-        
+
 Noteworthy changes in version 1.1.5 (2001-12-18)
 ------------------------------------------------
 
 Noteworthy changes in version 1.1.5 (2001-12-18)
 ------------------------------------------------
 
@@ -525,7 +762,7 @@ Noteworthy changes in version 1.1.5 (2001-12-18)
 Noteworthy changes in version 1.1.4 (2001-08-03)
 ------------------------------------------------
 
 Noteworthy changes in version 1.1.4 (2001-08-03)
 ------------------------------------------------
 
-  * Arcfour does now work.                   
+  * Arcfour does now work.
 
   * Some minor fixes.
 
 
   * Some minor fixes.
 
@@ -541,7 +778,9 @@ Noteworthy changes in version 1.1.3 (2001-05-31)
     into into libgcrypt and GnuPG.
 
 
     into into libgcrypt and GnuPG.
 
 
-Copyright 2001, 2002, 2003, 2004, 2007, 2008 Free Software Foundation, Inc.
+Copyright 2001, 2002, 2003, 2004, 2007, 2008,
+          2009, 2011 Free Software Foundation, Inc.
+Copyright 2013 g10 Code GmbH
 
 This file is free software; as a special exception the author gives
 unlimited permission to copy and/or distribute it, with or without
 
 This file is free software; as a special exception the author gives
 unlimited permission to copy and/or distribute it, with or without