mpi: Re-indent longlong.h.
[libgcrypt.git] / NEWS
diff --git a/NEWS b/NEWS
index 848aa62..214c676 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,339 @@
+Noteworthy changes in version 1.7.0 (unreleased)
+------------------------------------------------
+
+ * Added emulation for broken Whirlpool code prior to 1.6.0.
+
+ * Added support for curve sec256k1.
+
+ * Added support for curves GOST R 34.10-2001 and GOST R 34.10-2012.
+
+ * Improved performance of KDF functions.
+
+ * Improved ECDSA compliance.
+
+ * Moved locking out to libgpg-error.
+
+ * Fixed message digest lookup by OID (regression in 1.6.0).
+
+ * Fixed a build problem on NetBSD.
+
+ * Fixed memory leaks in ECC code.
+
+ * Fixed some asm build problems and feature detection bugs.
+
+ * Interface changes relative to the 1.6.0 release:
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ gcry_mac_get_algo               NEW.
+ GCRY_MAC_HMAC_MD2               NEW.
+ GCRY_MD_FLAG_BUGEMU1            NEW.
+ GCRYCTL_SET_SBOX                NEW.
+ gcry_cipher_set_sbox            NEW macro.
+ GCRY_MD_GOSTR3411_CP            NEW.
+
+
+Noteworthy changes in version 1.6.0 (2013-12-16)
+------------------------------------------------
+
+ * 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.
+
+ * Removed deprecated control codes.
+
+ * Improved performance of most cipher algorithms as well as for the
+   SHA family of hash functions.
+
+ * 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.
+
+ * Mitigated the Yarom/Falkner flush+reload side-channel attack on RSA
+   secret keys.  See <http://eprint.iacr.org/2013/448> [CVE-2013-4242].
+
+ * Added support for Deterministic DSA as per RFC-6979.
+
+ * Added support for curve Ed25519.
+
+ * Added a scatter gather hash convenience function.
+
+ * Added several MPI amd SEXP 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 if you need an algorithm id.
+
+ * Changed gcry_pk_genkey for "ecc" to only include the curve name and
+   not the parameters.  The flag "param" may be used to revert this.
+
+ * Added a feature to globally disable selected hardware features.
+
+ * Added debug helper functions.
+
+ * 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).
+ GCRYCTL_SET_KEY                 REMOVED.
+ GCRYCTL_SET_IV                  REMOVED.
+ GCRYCTL_SET_CTR                 REMOVED.
+ GCRYCTL_DISABLE_ALGO            CHANGED: Not anymore thread-safe.
+ gcry_pk_genkey                  CHANGED: ECC curve params not returned.
+ 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.
+ GCRYCTL_CLOSE_RANDOM_DEVICE     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_set_opaque_copy        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_FLAG_USER1              NEW.
+ GCRYMPI_FLAG_USER2              NEW.
+ GCRYMPI_FLAG_USER3              NEW.
+ GCRYMPI_FLAG_USER4              NEW.
+ GCRYMPI_CONST_ONE               NEW.
+ GCRYMPI_CONST_TWO               NEW.
+ GCRYMPI_CONST_THREE             NEW.
+ GCRYMPI_CONST_FOUR              NEW.
+ GCRYMPI_CONST_EIGHT             NEW.
+ GCRYMPI_FMT_OPAQUE              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_sexp_extract_param         NEW.
+ GCRY_CIPHER_SALSA20R12          NEW.
+ GCRY_CIPHER_GOST28147           NEW.
+ GCRY_MD_GOSTR3411_94            NEW.
+ GCRY_MD_STRIBOG256              NEW.
+ GCRY_MD_STRIBOG512              NEW.
+ 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.
+
+ * 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.
+
+ * The thread initialization structure now carries version
+   information.
+
+ * The manual describes more clearly how to initialize Libgcrypt.
+
+ * The library may now be switched into a FIPS mode.
+
+ * Interface changes relative to the 1.3.0 release:
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ GCRYCTL_OPERATIONAL_P   NEW.
+ GCRYCTL_FIPS_MODE_P     NEW.
+ GCRYCTL_FORCE_FIPS_MODE NEW.
+ gcry_cipher_setkey      NEW: Replaces macro.
+ gcry_cipher_setiv       NEW: Replaces macro.
+ gcry_cipher_setctr      NEW: Replaces macro.
+ gcry_mpi_lshift         NEW.
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+Noteworthy changes in version 1.4.1 (2008-04-25)
+------------------------------------------------
+
+ * Fixed a bug introduced by 1.3.1 which led to the comsumption of far
+   too much entropy for the intial seeding.
+
+ * Improved AES performance for CFB and CBC modes.
+
+ * Removed build problems for the Padlock support.
+
+
 Noteworthy changes in version 1.4.0 (2007-12-10)
 ------------------------------------------------
 
 Noteworthy changes in version 1.4.0 (2007-12-10)
 ------------------------------------------------
 
@@ -100,7 +436,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*.
@@ -194,7 +530,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
@@ -237,7 +573,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
@@ -261,7 +597,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.
 
@@ -280,7 +616,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
@@ -446,8 +782,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.
@@ -471,7 +807,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)
 ------------------------------------------------
 
@@ -485,7 +821,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.
 
@@ -501,7 +837,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 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