Libgcrypt 1.6.0 released

Werner Koch wk at
Mon Dec 16 18:49:01 CET 2013


The GNU project is pleased to announce the availability of Libgcrypt
version 1.6.0.  This is the new stable version of Libgcrypt with the API
being mostly compatible to previous versions.  Due to the removal of
certain long deprecated functions this version introduces an ABI change.

Libgcrypt is a general purpose library of cryptographic building
blocks.  It is originally based on code used by GnuPG.  It does not
provide any implementation of OpenPGP or other protocols.  Thorough
understanding of applied cryptography is required to use Libgcrypt.

The main features of this version are performance improvements [3],
better support for elliptic curves, new algorithms and modes, as well as
API and internal cleanups.  Better performance of public key algorithms,
in particular for Curve25519, is planned for forthcoming releases.

Note that the 1.5 series will enter end of life state on 2016-12-31.

Noteworthy changes between version 1.5.0 and 1.6.0:

    * 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

    * 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 <> [CVE-2013-4242].

    * Added support for Deterministic DSA as per RFC-6969.

    * 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

    * Added a feature to globally disable selected hardware features.

    * Added debug helper functions.

For Interface changes relative to the 1.5.0 release see below [4].


Source code is hosted at the GnuPG FTP server and its mirrors as
listed at .  On the primary
server the source file and its digital signatures is: (2441k)

This file is bzip2 compressed.  A gzip compressed version is also
available: (2866k)

Due to the amount of changes we don't provide a patch file against

The SHA-1 checksums are:

43283c0b41c41e3d3bc13c2d8f937dfe2aaa1a77  libgcrypt-1.6.0.tar.bz2
03551121fe5b706532158667699f63b6e2606755  libgcrypt-1.6.0.tar.gz


Libgcrypt is distributed under the terms of the GNU Lesser General
Public License (LGPLv2.1+).  The helper programs as well as the
documentation are distributed under the terms of the GNU General Public
License (GPLv2+).  The file LICENSES has notices about contributions
that require these additional notices are distributed.


For help on developing with Libgcrypt you should read the included
manual and optional ask on the gcrypt-devel mailing list [1].  A
listing with commercial support offers for Libgcrypt and related
software is available at the GnuPG web site [2].

The driving force behind the development of Libgcrypt is my company
g10 Code.  Maintenance and improvement of Libgcrypt and related
software takes up most of our resources.  To allow us to continue our
work on free software, we ask to either purchase a support contract,
engage us for custom enhancements, or to donate money:


Many thanks to all who contributed to Libgcrypt development, be it bug
fixes, code, documentation, testing or helping users.  Special thanks to
Jussi Kivilinna who did most of the performance improvement work.

Happy hacking,


[4] 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.
    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_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.
    GCRY_KDF_SCRYPT                 NEW.
    gcry_pubkey_get_sexp            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.

Die Gedanken sind frei.  Ausnahmen regelt ein Bundesgesetz.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 204 bytes
Desc: not available
URL: </pipermail/attachments/20131216/54aeba3f/attachment-0001.sig>

More information about the Gcrypt-devel mailing list