Mailing List Archive

Libgcrypt 1.6.0 released
Hello!

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
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-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
this.

* 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].


Download
========

Source code is hosted at the GnuPG FTP server and its mirrors as
listed at http://www.gnupg.org/download/mirrors.html . On the primary
server the source file and its digital signatures is:

ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-1.6.0.tar.bz2 (2441k)
ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-1.6.0.tar.bz2.sig

This file is bzip2 compressed. A gzip compressed version is also
available:

ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-1.6.0.tar.gz (2866k)
ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-1.6.0.tar.gz.sig

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

The SHA-1 checksums are:

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


Copying
=======

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.


Support
=======

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:

http://g10code.com/gnupg-donation.html


Thanks
======

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,

Werner


[1] http://www.gnupg.org/documentation/mailing-lists.html
[2] http://www.gnupg.org/service.html
[3] http://blog.gnupg.org/20131215-gcrypt-bench.html
[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.
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.

--
Die Gedanken sind frei. Ausnahmen regelt ein Bundesgesetz.