random: Add a RNG selection interface and system RNG wrapper.
[libgcrypt.git] / NEWS
diff --git a/NEWS b/NEWS
index 46df43d..45b892f 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,238 @@
-Noteworthy changes in version 1.3.0 (unreleased)
+Noteworthy changes in version 1.6.0 (unreleased)
+------------------------------------------------
+
+ * Removed the long deprecated gcry_ac interface.  Thus Libgcrypt is
+   not anymore ABI compatible too previous versions.
+
+ * 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 a random number generator to directly use the system's RNG.
+   Also added an interface to prefer the use of a specified RNG.
+
+ * 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_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.
+
+
+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)
+------------------------------------------------
+
+ * New configure option --disable-padlock-support which is mostly
+   useful in case of build problems.
+
+
+Noteworthy changes in version 1.3.2 (2007-12-03)
+------------------------------------------------
+
+ * The visibility attribute is now used if supported by the toolchain.
+
+ * The ACE engine of VIA processors is now used for AES-128.
+
+ * The ASN.1 DER template for SHA-224 has been fixed.
+
+
+Noteworthy changes in version 1.3.1 (2007-10-26)
+------------------------------------------------
+
+ * The entire library is now under the LGPL. The helper programs and
+   the manual are under the GPL.  Kudos to Peter Gutmann for giving
+   permissions to relicense the rndw32 and rndunix modules.
+
+ * The Camellia cipher is now under the LGPL and included by default.
+
+ * Fixed a bug in the detection of symbol prefixes which inhibited the
+   build of optimzied assembler code on certain systems.
+
+ * Updated the entropy gatherer for W32.
+
+
+Noteworthy changes in version 1.3.0 (2007-05-04)
 ------------------------------------------------
 
  * Changed the way the RNG gets initialized. This allows to keep it
@@ -16,6 +250,10 @@ Noteworthy changes in version 1.3.0 (unreleased)
 
  * Support for the SEED cipher.
 
+ * Support for the Camellia cipher.  Note that Camellia is disabled by
+   default, and that enabling it changes the license of libgcrypt from
+   LGPL to GPL.
+
  * Support for OFB encryption mode.
 
  * gcry_mpi_rshift does not anymore truncate the shift count.
@@ -35,12 +273,17 @@ Noteworthy changes in version 1.3.0 (unreleased)
  * Non executable stack support is now used by default on systems
    supporting it.
 
- * Support for Microsoft Windows OSes.
+ * Support for Microsoft Windows.
 
  * Assembler support for the AMD64 architecture.
 
+ * New configure option --enable-mpi-path for optimized builds.
+
  * Experimental support for ECDSA; should only be used for testing.
 
+ * New control code GCRYCTL_PRINT_CONFIG to print the build
+   configuration.
+
  * Minor changes to some function declarations.  Buffer arguments are
    now typed as void pointer.  This should not affect any compilation.
    Fixed two bugs in return values and clarified documentation.
@@ -50,14 +293,18 @@ Noteworthy changes in version 1.3.0 (unreleased)
  gcry_fast_random_poll  NEW
  gcry_md_debug           NEW
  gcry_sexp_nth_string    NEW
- GCRYCTL_FAKED_RANDOM_P  NEW 
- GCRYCTL_DUMP_CONFIG     NEW
  GCRY_MD_SHA224          NEW
  GCRY_PK_USAGE_CERT      NEW
  GCRY_PK_USAGE_AUTH      NEW
  GCRY_PK_USAGE_UNKN      NEW
  GCRY_PK_ECDSA           NEW
- GCR_CIPHER_SEED         NEW
+ GCRY_CIPHER_SEED        NEW
+ GCRY_CIPHER_CAMELLIA128 NEW
+ GCRY_CIPHER_CAMELLIA192 NEW
+ GCRY_CIPHER_CAMELLIA256 NEW
+ GCRYCTL_FAKED_RANDOM_P  NEW
+ GCRYCTL_PRINT_CONFIG    NEW
+ GCRYCTL_SET_RNDEGD_SOCKET  NEW.
  gcry_mpi_scan           CHANGED: Argument BUFFER is now void*.
  gcry_pk_algo_name       CHANGED: Returns "?" instead of NULL.
  gcry_cipher_algo_name   CHANGED: Returns "?" instead of "".
@@ -149,7 +396,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.
+
  * Interface changes relative to the 1.1.44 release:
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 gcry_create_nonce               NEW
@@ -192,7 +439,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
-   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
@@ -216,7 +463,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.
 
- * New function gcry_mpi_dump to help in debugging. 
+ * New function gcry_mpi_dump to help in debugging.
 
  * Added alternative interface for asymmetric cryptography.
 
@@ -235,7 +482,7 @@ Noteworthy changes in version 1.1.42 (2003-07-31)
 
  * 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
@@ -401,8 +648,8 @@ Noteworthy changes in version 1.1.7 (2002-05-21)
 ------------------------------------------------
 
 * 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.
@@ -426,7 +673,7 @@ Noteworthy changes in version 1.1.6 (2002-02-07)
 ------------------------------------------------
 
   * Enhanced the S-expression conversion functions.
-        
+
 Noteworthy changes in version 1.1.5 (2001-12-18)
 ------------------------------------------------
 
@@ -440,7 +687,7 @@ Noteworthy changes in version 1.1.5 (2001-12-18)
 Noteworthy changes in version 1.1.4 (2001-08-03)
 ------------------------------------------------
 
-  * Arcfour does now work.                   
+  * Arcfour does now work.
 
   * Some minor fixes.
 
@@ -456,7 +703,8 @@ Noteworthy changes in version 1.1.3 (2001-05-31)
     into into libgcrypt and GnuPG.
 
 
-Copyright 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+Copyright 2001, 2002, 2003, 2004, 2007, 2008,
+          2009, 2011 Free Software Foundation, Inc.
 
 This file is free software; as a special exception the author gives
 unlimited permission to copy and/or distribute it, with or without