Release 1.7.0 libgcrypt-1.7.0
authorWerner Koch <wk@gnupg.org>
Fri, 15 Apr 2016 13:48:24 +0000 (15:48 +0200)
committerWerner Koch <wk@gnupg.org>
Fri, 15 Apr 2016 13:48:24 +0000 (15:48 +0200)
Signed-off-by: Werner Koch <wk@gnupg.org>
AUTHORS
NEWS
README
compat/compat.c
configure.ac
src/gcrypt.h.in
src/versioninfo.rc.in

diff --git a/AUTHORS b/AUTHORS
index b19612b..f89d585 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -1,6 +1,7 @@
 Library: Libgcrypt
 Library: Libgcrypt
-Homepage: http://www.gnu.org/software/libgcrypt/
-Download: ftp://ftp.gnupg.org/gcrypt/libgcrypt/
+Homepage: https://www.gnupg.org/related_software/libgcrypt/
+Download: https://ftp.gnupg.org/ftp/gcrypt/libgcrypt/
+          ftp://ftp.gnupg.org/gcrypt/libgcrypt/
 Repository: git://git.gnupg.org/libgcrypt.git
 Maintainer: Werner Koch <wk@gnupg.org>
 Bug reports: https://bugs.gnupg.org
 Repository: git://git.gnupg.org/libgcrypt.git
 Maintainer: Werner Koch <wk@gnupg.org>
 Bug reports: https://bugs.gnupg.org
@@ -8,6 +9,7 @@ Security related bug reports: <security@gnupg.org>
 License (library): LGPLv2.1+
 License (manual and tools): GPLv2+
 
 License (library): LGPLv2.1+
 License (manual and tools): GPLv2+
 
+
 Libgcrypt is free software.  See the files COPYING.LIB and COPYING for
 copying conditions, and LICENSES for notices about a few contributions
 that require these additional notices to be distributed.  License
 Libgcrypt is free software.  See the files COPYING.LIB and COPYING for
 copying conditions, and LICENSES for notices about a few contributions
 that require these additional notices to be distributed.  License
@@ -19,7 +21,7 @@ year that would otherwise be listed individually.
 List of Copyright holders
 =========================
 
 List of Copyright holders
 =========================
 
-  Copyright (C) 1989,1991-2012 Free Software Foundation, Inc.
+  Copyright (C) 1989,1991-2016 Free Software Foundation, Inc.
   Copyright (C) 1994 X Consortium
   Copyright (C) 1996 L. Peter Deutsch
   Copyright (C) 1997 Werner Koch
   Copyright (C) 1994 X Consortium
   Copyright (C) 1996 L. Peter Deutsch
   Copyright (C) 1997 Werner Koch
@@ -28,12 +30,13 @@ List of Copyright holders
   Copyright (C) 1996-2006 Peter Gutmann, Matt Thomlinson and Blake Coverett
   Copyright (C) 2003 Nikos Mavroyanopoulos
   Copyright (C) 2006-2007 NTT (Nippon Telegraph and Telephone Corporation)
   Copyright (C) 1996-2006 Peter Gutmann, Matt Thomlinson and Blake Coverett
   Copyright (C) 2003 Nikos Mavroyanopoulos
   Copyright (C) 2006-2007 NTT (Nippon Telegraph and Telephone Corporation)
-  Copyright (C) 2012-2013 g10 Code GmbH
+  Copyright (C) 2012-2016 g10 Code GmbH
   Copyright (C) 2012 Simon Josefsson, Niels Möller
   Copyright (c) 2012 Intel Corporation
   Copyright (C) 2013 Christian Grothoff
   Copyright (C) 2012 Simon Josefsson, Niels Möller
   Copyright (c) 2012 Intel Corporation
   Copyright (C) 2013 Christian Grothoff
-  Copyright (C) 2013 Jussi Kivilinna
-  Copyright (C) 2013 Dmitry Eremin-Solenikov
+  Copyright (C) 2013-2016 Jussi Kivilinna
+  Copyright (C) 2013-2014 Dmitry Eremin-Solenikov
+  Copyright (C) 2014 Stephan Mueller
 
 
 Authors with a FSF copyright assignment
 
 
 Authors with a FSF copyright assignment
@@ -193,10 +196,6 @@ More credits
 Libgcrypt used to be part of GnuPG but has been taken out into its own
 package on 2000-12-21.
 
 Libgcrypt used to be part of GnuPG but has been taken out into its own
 package on 2000-12-21.
 
-The ATH implementation (src/ath*) has been taken from GPGME and
-relicensed to the LGPL by the copyright holder of GPGME (g10 Code
-GmbH); it is now considered to be a part of Libgcrypt.
-
 Most of the stuff in mpi has been taken from an old GMP library
 version by Torbjorn Granlund <tege@noisy.tmg.se>.
 
 Most of the stuff in mpi has been taken from an old GMP library
 version by Torbjorn Granlund <tege@noisy.tmg.se>.
 
diff --git a/NEWS b/NEWS
index 7b53c1a..254b205 100644 (file)
--- a/NEWS
+++ b/NEWS
-Noteworthy changes in version 1.7.0 (unreleased)
+Noteworthy changes in version 1.7.0 (2016-04-15)  [C21/A1/R0]
 ------------------------------------------------
 
 ------------------------------------------------
 
- * Added emulation for broken Whirlpool code prior to 1.6.0.
+ * New algorithms and modes:
 
 
* Added support for curve sec256k1.
  - SHA3-224, SHA3-256, SHA3-384, SHA3-512, and MD2 hash algorithms.
 
 
* Added support for curves GOST R 34.10-2001 and GOST R 34.10-2012.
  - SHAKE128 and SHAKE256 extendable-output hash algorithms.
 
 
* Improved performance of KDF functions.
  - ChaCha20 stream cipher.
 
 
- * Improved ECDSA compliance.
+   - Poly1305 message authentication algorithm
 
 
- * Moved locking out to libgpg-error.
+   - ChaCha20-Poly1305 Authenticated Encryption with Associated Data
+     mode.
 
 
* Fixed message digest lookup by OID (regression in 1.6.0).
  - OCB mode.
 
 
* Fixed a build problem on NetBSD.
  - HMAC-MD2 for use by legacy applications.
 
 
- * Fixed memory leaks in ECC code.
+ * New curves for ECC:
 
 
* Fixed some asm build problems and feature detection bugs.
  - Curve25519.
 
 
* Added OCB mode.
  - sec256k1.
 
 
- * Added support for the SHA3-224, SHA3-256, SHA3-384 and SHA3-512
-   hash algorithms.
+   - GOST R 34.10-2001 and GOST R 34.10-2012.
+
+ * Performance:
+
+   - Improved performance of KDF functions.
+
+   - Assembler optimized implementations of Blowfish and Serpent on
+     ARM.
+
+   - Assembler optimized implementation of 3DES on x86.
+
+   - Improved AES using the SSSE3 based vector permutation method by
+     Mike Hamburg.
+
+   - AVX/BMI is used for SHA-1 and SHA-256 on x86.  This is for SHA-1
+     about 20% faster than SSSE3 and more than 100% faster than the
+     generic C implementation.
+
+   - 40% speedup for SHA-512 and 72% for SHA-1 on ARM Cortex-A8.
+
+   - 60-90% speedup for Whirlpool on x86.
+
+   - 300% speedup for RIPE MD-160.
+
+   - Up to 11 times speedup for CRC functions on x86.
+
+ * Other features:
+
+   - Improved ECDSA and FIPS 186-4 compliance.
+
+   - Support for Montgomery curves.
+
+   - gcry_cipher_set_sbox to tweak S-boxes of the gost28147 cipher
+     algorithm.
+
+   - gcry_mpi_ec_sub to subtract two points on a curve.
+
+   - gcry_mpi_ec_decode_point to decode an MPI into a point object.
+
+   - Emulation for broken Whirlpool code prior to 1.6.0.  [from 1.6.1]
 
 
- * Added support for the SHAKE128 and SHAKE256 extendable-output
-   function algorithms.
+   - Flag "pkcs1-raw" to enable PCKS#1 padding with a user supplied
+     hash part.
 
 
* Added support for the ChaCha20 stream cipher.
  - Parameter "saltlen" to set a non-default salt length for RSA PSS.
 
 
- * Added support for the Poly1305 message authentication algorithm and
-   ChaCha20-Poly1305 Authenticated Encryption with Associated Data
-   mode.
+   - A SP800-90A conforming DRNG replaces the former X9.31 alternative
+     random number generator.
 
 
- * New flag "no-keytest" for ECC key generation.  Due to a bug in the
-   parser that flag will also be accepted but ignored by older version
-   of Libgcrypt.
+   - Map deprecated RSA algo number to the RSA algo number for better
+     backward compatibility. [from 1.6.2]
+
+   - Use ciphertext blinding for Elgamal decryption [CVE-2014-3591].
+     See http://www.cs.tau.ac.il/~tromer/radioexp/ for details.
+     [from 1.6.3]
+
+   - Fixed data-dependent timing variations in modular exponentiation
+     [related to CVE-2015-0837, Last-Level Cache Side-Channel Attacks
+      are Practical]. [from 1.6.3]
+
+   - Flag "no-keytest" for ECC key generation.  Due to a bug in
+     the parser that flag will also be accepted but ignored by older
+     version of Libgcrypt. [from 1.6.4]
+
+   - Speed up the random number generator by requiring less extra
+     seeding. [from 1.6.4]
+
+   - Always verify a created RSA signature to avoid private key leaks
+     due to hardware failures. [from 1.6.4]
+
+   - Mitigate side-channel attack on ECDH with Weierstrass curves
+     [CVE-2015-7511].  See http://www.cs.tau.ac.IL/~tromer/ecdh/ for
+     details. [from 1.6.5]
+
+ * Internal changes:
+
+   - Moved locking out to libgpg-error.
+
+   - Support of the SYSROOT envvar in the build system.
+
+   - Refactor some code.
+
+   - The availability of a 64 bit integer type is now mandatory.
+
+ * Bug fixes:
+
+   - 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:
 
  * Interface changes relative to the 1.6.0 release:
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- gcry_mac_get_algo               NEW.
- gcry_md_extract                 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.
- GCRY_MD_SHA3_224                NEW.
- GCRY_MD_SHA3_256                NEW.
- GCRY_MD_SHA3_384                NEW.
- GCRY_MD_SHA3_512                NEW.
- GCRY_MD_SHAKE128                NEW.
- GCRY_MD_SHAKE256                NEW.
- GCRY_MAC_HMAC_SHA3_224          NEW.
- GCRY_MAC_HMAC_SHA3_256          NEW.
- GCRY_MAC_HMAC_SHA3_384          NEW.
- GCRY_MAC_HMAC_SHA3_512          NEW.
- GCRY_MAC_POLY1305               NEW.
- GCRY_MAC_POLY1305_AES           NEW.
- GCRY_MAC_POLY1305_CAMELLIA      NEW.
- GCRY_MAC_POLY1305_TWOFISH       NEW.
- GCRY_MAC_POLY1305_SERPENT       NEW.
- GCRY_MAC_POLY1305_SEED          NEW.
- gcry_mpi_ec_sub                 NEW.
- gcry_mpi_ec_decode_point        NEW.
- GCRY_CIPHER_MODE_POLY1305       NEW.
- GCRY_CIPHER_MODE_OCB            NEW.
- GCRY_CIPHER_MODE_CFB8           NEW constant.
- GCRYCTL_SET_TAGLEN              NEW.
- GCRYCTL_GET_TAGLEN              NEW.
- gcry_cipher_final               NEW macro.
- GCRY_PK_EDDSA                   NEW constant.
-
-
-Noteworthy changes in version 1.6.0 (2013-12-16)
+   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+   gcry_cipher_final               NEW macro.
+   GCRY_CIPHER_MODE_CFB8           NEW constant.
+   GCRY_CIPHER_MODE_OCB            NEW.
+   GCRY_CIPHER_MODE_POLY1305       NEW.
+   gcry_cipher_set_sbox            NEW macro.
+   gcry_mac_get_algo               NEW.
+   GCRY_MAC_HMAC_MD2               NEW.
+   GCRY_MAC_HMAC_SHA3_224          NEW.
+   GCRY_MAC_HMAC_SHA3_256          NEW.
+   GCRY_MAC_HMAC_SHA3_384          NEW.
+   GCRY_MAC_HMAC_SHA3_512          NEW.
+   GCRY_MAC_POLY1305               NEW.
+   GCRY_MAC_POLY1305_AES           NEW.
+   GCRY_MAC_POLY1305_CAMELLIA      NEW.
+   GCRY_MAC_POLY1305_SEED          NEW.
+   GCRY_MAC_POLY1305_SERPENT       NEW.
+   GCRY_MAC_POLY1305_TWOFISH       NEW.
+   gcry_md_extract                 NEW.
+   GCRY_MD_FLAG_BUGEMU1            NEW [from 1.6.1].
+   GCRY_MD_GOSTR3411_CP            NEW.
+   GCRY_MD_SHA3_224                NEW.
+   GCRY_MD_SHA3_256                NEW.
+   GCRY_MD_SHA3_384                NEW.
+   GCRY_MD_SHA3_512                NEW.
+   GCRY_MD_SHAKE128                NEW.
+   GCRY_MD_SHAKE256                NEW.
+   gcry_mpi_ec_decode_point        NEW.
+   gcry_mpi_ec_sub                 NEW.
+   GCRY_PK_EDDSA                   NEW constant.
+   GCRYCTL_GET_TAGLEN              NEW.
+   GCRYCTL_SET_SBOX                NEW.
+   GCRYCTL_SET_TAGLEN              NEW.
+   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+Version 1.6.5 (2016-02-09) [C20/A0/R5]
+Version 1.6.4 (2015-09-08) [C20/A0/R4]
+Version 1.6.3 (2015-02-27) [C20/A0/R3]
+Version 1.6.2 (2014-08-21) [C20/A0/R2]
+Version 1.6.1 (2014-01-29) [C20/A0/R1]
+
+
+Noteworthy changes in version 1.6.0 (2013-12-16) [C20/A0/R0]
 ------------------------------------------------
 
  * Removed the long deprecated gcry_ac interface.  Thus Libgcrypt is
 ------------------------------------------------
 
  * Removed the long deprecated gcry_ac interface.  Thus Libgcrypt is
diff --git a/README b/README
index 938c6c6..f9f49b5 100644 (file)
--- a/README
+++ b/README
@@ -2,11 +2,9 @@
                   ------------------------------------
                              Version 1.7
 
                   ------------------------------------
                              Version 1.7
 
-     ====  THIS IS A DEVELOPMENT VERSION - NOT FOR REAL USE ====
-
-       Copyright (C) 1989,1991-2012 Free Software Foundation, Inc.
-       Copyright (C) 2012-2013 g10 Code GmbH
-       Copyright (C) 2013 Jussi Kivilinna
+       Copyright (C) 1989,1991-2016 Free Software Foundation, Inc.
+       Copyright (C) 2012-2016 g10 Code GmbH
+       Copyright (C) 2013-2016 Jussi Kivilinna
 
     Libgcrypt is free software.  See the file AUTHORS for full copying
     notices, and LICENSES for notices about contributions that require
 
     Libgcrypt is free software.  See the file AUTHORS for full copying
     notices, and LICENSES for notices about contributions that require
@@ -76,7 +74,7 @@
     You may want to join the developer's mailing list
     gcrypt-devel@gnupg.org by sending mail with a subject of
     "subscribe" to gcrypt-devel-request@gnupg.org.  An archive of this
     You may want to join the developer's mailing list
     gcrypt-devel@gnupg.org by sending mail with a subject of
     "subscribe" to gcrypt-devel-request@gnupg.org.  An archive of this
-    list is available at http://lists.gnupg.org .
+    list is available at https://lists.gnupg.org .
 
 
     Configure options
 
 
     Configure options
 
     The library is distributed under the terms of the GNU Lesser
     General Public License (LGPL); see the file COPYING.LIB for the
 
     The library is distributed under the terms of the GNU Lesser
     General Public License (LGPL); see the file COPYING.LIB for the
-    actual terms.  The helper programs (e.g. gcryptrnd and getrandom)
-    as well as the documentation are distributed under the terms of
-    the GNU General Public License (GPL); see the file COPYING for the
-    actual terms.  The file LICENSES has notices about contributions
-    that require these additional notices are distributed.
-
-    This library used to be available under the GPL - this was changed
-    with version 1.1.7 with the rationale that there are now many free
-    crypto libraries available and many of them come with capabilities
-    similar to Libcrypt.  We decided that to foster the use of
-    cryptography in Free Software an LGPLed library would make more
-    sense because it avoids problems due to license incompatibilities
-    between some Free Software licenses and the GPL.
-
-    Please note that in many cases it is better for a library to be
-    licensed under the GPL, so that it provides an advantage for free
-    software projects.  The Lesser GPL is so named because it does
-    less to protect the freedom of the users of the code that it
-    covers.  See http://www.gnu.org/philosophy/why-not-lgpl.html for
-    more explanation.
+    actual terms.
+
+    The helper programs as well as the documentation are distributed
+    under the terms of the GNU General Public License (GPL); see the
+    file COPYING for the actual terms.
+
+    The file LICENSES has notices about contributions that require
+    that these additional notices are distributed.
 
 
     Contact
 
 
     Contact
 
     See the file AUTHORS.
 
 
     See the file AUTHORS.
 
-    Commercial grade support for Libgcrypt is available; please see
-    http://www.gnupg.org/service.html .
-
     Commercial grade support for Libgcrypt is available; for a listing
     Commercial grade support for Libgcrypt is available; for a listing
-    of offers see http://www.gnupg.org/service.html .  The driving
-    force behind the development of Libgcrypt is the company of its
-    principal author, Werner Koch.  Maintenance and improvement of
-    Libgcrypt takes up a lot resources.  To allow him to continue his
-    work, he asks to either purchase a support contract, engage them
-    for custom enhancements, or to donate money.  See http://g10code.com .
+    of offers see https://www.gnupg.org/service.html .
+
+    Maintenance and development of Libgcrypt is mostly financed by
+    donations.  We currently employ 3 full-time developers, one
+    part-timer, and one contractor.  They all work on GnuPG and
+    closely related software like Libgcrypt.  Please visit
+    https://gnupg.org/donate/ to see out how you can help.
 
 
   This file is Free Software; as a special exception the authors gives
 
 
   This file is Free Software; as a special exception the authors gives
index 39d6498..96b3e2e 100644 (file)
@@ -30,9 +30,9 @@ _gcry_compat_identification (void)
   static const char blurb[] =
     "\n\n"
     "This is Libgcrypt " PACKAGE_VERSION " - The GNU Crypto Library\n"
   static const char blurb[] =
     "\n\n"
     "This is Libgcrypt " PACKAGE_VERSION " - The GNU Crypto Library\n"
-    "Copyright (C) 2000-2012 Free Software Foundation, Inc.\n"
-    "Copyright (C) 2012-2014 g10 Code GmbH\n"
-    "Copyright (C) 2013-2014 Jussi Kivilinna\n"
+    "Copyright (C) 2000-2016 Free Software Foundation, Inc.\n"
+    "Copyright (C) 2012-2016 g10 Code GmbH\n"
+    "Copyright (C) 2013-2016 Jussi Kivilinna\n"
     "\n"
     "(" BUILD_REVISION " " BUILD_TIMESTAMP ")\n"
     "\n\n";
     "\n"
     "(" BUILD_REVISION " " BUILD_TIMESTAMP ")\n"
     "\n\n";
index 716c6ec..f683e21 100644 (file)
@@ -1,7 +1,7 @@
 # Configure.ac script for Libgcrypt
 # Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006,
 #               2007, 2008, 2009, 2011 Free Software Foundation, Inc.
 # Configure.ac script for Libgcrypt
 # Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006,
 #               2007, 2008, 2009, 2011 Free Software Foundation, Inc.
-# Copyright (C) 2012, 2013, 2014, 2015  g10 Code GmbH
+# Copyright (C) 2012, 2013, 2014, 2015, 2016  g10 Code GmbH
 #
 # This file is part of Libgcrypt.
 #
 #
 # This file is part of Libgcrypt.
 #
@@ -51,7 +51,6 @@ m4_define([mym4_full_version],[mym4_version[]mym4_betastring])
 AC_INIT([libgcrypt],[mym4_full_version],[http://bugs.gnupg.org])
 
 # LT Version numbers, remember to change them just *before* a release.
 AC_INIT([libgcrypt],[mym4_full_version],[http://bugs.gnupg.org])
 
 # LT Version numbers, remember to change them just *before* a release.
-# ====== NOTE: Already bumped to 21/1/0 for the 1.7.0 release. ====
 #   (Interfaces removed:    CURRENT++, AGE=0, REVISION=0)
 #   (Interfaces added:      CURRENT++, AGE++, REVISION=0)
 #   (No interfaces changed:                   REVISION++)
 #   (Interfaces removed:    CURRENT++, AGE=0, REVISION=0)
 #   (Interfaces added:      CURRENT++, AGE++, REVISION=0)
 #   (No interfaces changed:                   REVISION++)
index 96d742a..02b8772 100644 (file)
@@ -1,8 +1,6 @@
 /* gcrypt.h -  GNU Cryptographic Library Interface              -*- c -*-
 /* gcrypt.h -  GNU Cryptographic Library Interface              -*- c -*-
- * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004,
- *               2006, 2007, 2008, 2009, 2010, 2011,
- *               2012  Free Software Foundation, Inc.
- * Copyright (C) 2012, 2013  g10 Code GmbH
+ * Copyright (C) 1998-2016 Free Software Foundation, Inc.
+ * Copyright (C) 2012-2016 g10 Code GmbH
  *
  * This file is part of Libgcrypt.
  *
  *
  * This file is part of Libgcrypt.
  *
index 3199521..1adb4e9 100644 (file)
@@ -39,7 +39,7 @@ BEGIN
             VALUE "FileDescription", "Libgcrypt - The GNU Crypto Library\0"
             VALUE "FileVersion", "@LIBGCRYPT_LT_CURRENT@.@LIBGCRYPT_LT_AGE@.@LIBGCRYPT_LT_REVISION@.@BUILD_REVISION@\0"
             VALUE "InternalName", "libgcrypt\0"
             VALUE "FileDescription", "Libgcrypt - The GNU Crypto Library\0"
             VALUE "FileVersion", "@LIBGCRYPT_LT_CURRENT@.@LIBGCRYPT_LT_AGE@.@LIBGCRYPT_LT_REVISION@.@BUILD_REVISION@\0"
             VALUE "InternalName", "libgcrypt\0"
-            VALUE "LegalCopyright", "Copyright © 2012 Free Software Foundation, Inc.\0"
+            VALUE "LegalCopyright", "Copyright © 2016 Free Software Foundation, Inc.\0"
             VALUE "LegalTrademarks", "\0"
             VALUE "OriginalFilename", "libgcrypt.dll\0"
             VALUE "PrivateBuild", "\0"
             VALUE "LegalTrademarks", "\0"
             VALUE "OriginalFilename", "libgcrypt.dll\0"
             VALUE "PrivateBuild", "\0"