[Announce] Libgcrypt 1.11.0 released

Werner Koch wk at gnupg.org
Wed Jun 19 14:14:55 CEST 2024


Hello!

We are pleased to announce the availability of Libgcrypt version 1.11.0.
This release starts a new stable branch of Libgcrypt with full API and
ABI compatibility to the 1.10 series.  Over the last years Jussi
Kivilinna put again a lot of work into speeding up the algorithms for
many commonly used CPUs.  Niibe-san implemented new APIs and algorithms
and also integrated quantum-resistant encryption algorithms.  See below
for a list of improvements and new features in 1.11.

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.


Noteworthy changes in Libgcrypt 1.11.0 since 1.10.3
===================================================

 * New and extended interfaces:

   - Add an API for Key Encapsulation Mechanism (KEM).  [T6755]

   - Add Streamlined NTRU Prime sntrup761 algorithm.  [rCcf9923e1a5]

   - Add Kyber algorithm according to FIPS 203 ipd 2023-08-24.
     [rC18e5c0d268]

   - Add Classic McEliece algorithm.  [rC003367b912]

   - Add One-Step KDF with hash and MAC.  [T5964]

   - Add KDF algorithm HKDF of RFC-5869.  [T5964]

   - Add KDF algorithm X963KDF for use in CMS.  [rC3abac420b3]

   - Add GMAC-SM4 and Poly1305-SM4.  [rCd1ccc409d4]

   - Add ARIA block cipher algorithm.  [rC316c6d7715]

   - Add explicit FIPS indicators for MD and MAC algorithms.  [T6376]

   - Add support for SHAKE as MGF in RSA.  [T6557]

   - Add gcry_md_read support for SHAKE algorithms.  [T6539]

   - Add gcry_md_hash_buffers_ext function.  [T7035]

   - Add cSHAKE hash algorithm.  [rC065b3f4e02]

   - Support internal generation of IV for AEAD cipher mode.  [T4873]

 * Performance:

   - Add SM3 ARMv8/AArch64/CE assembly implementation.  [rCfe891ff4a3]

   - Add SM4 ARMv8/AArch64 assembly implementation.  [rCd8825601f1]

   - Add SM4 GFNI/AVX2 and GFI/AVX512 implementation.
     [rC5095d60af4,rCeaed633c16]

   - Add SM4 ARMv9 SVE CE assembly implementation.  [rC2dc2654006]

   - Add PowerPC vector implementation of SM4.  [rC0b2da804ee]

   - Optimize ChaCha20 and Poly1305 for PPC P10 LE.  [T6006]

   - Add CTR32LE bulk acceleration for AES on PPC.  [rC84f2e2d0b5]

   - Add generic bulk acceleration for CTR32LE mode (GCM-SIV) for SM4
     and Camellia.  [rCcf956793af]

   - Add GFNI/AVX2 implementation of Camellia.  [rC4e6896eb9f]

   - Add AVX2 and AVX512 accelerated implementations for GHASH (GCM)
     and POLYVAL (GCM-SIV).  [rCd857e85cb4, rCe6f3600193]

   - Add AVX512 implementation for SHA512.  [rC089223aa3b]

   - Add AVX512 implementation for Serpent.  [rCce95b6ec35]

   - Add AVX512 implementation for Poly1305 and ChaCha20
     [rCcd3ed49770, rC9a63cfd617]

   - Add AVX512 accelerated implementation for SHA3 and Blake2
     [rCbeaad75f46,rC909daa700e]

   - Add VAES/AVX2 accelerated i386 implementation for AES.
     [rC4a42a042bc]

   - Add bulk processing for XTS mode of Camellia and SM4.
     [rC32b18cdb87, rCaad3381e93]

   - Accelerate XTS and ECB modes for Twofish and Serpent.
     [rCd078a928f5,rC8a1fe5f78f]

   - Add AArch64 crypto/SHA512 extension implementation for
     SHA512. [rCe51d3b8330]

   - Add AArch64 crypto-extension implementation for Camellia.
     [rC898c857206]

   - Accelerate OCB authentication on AMD with AVX2.  [rC6b47e85d65]

 * Bug fixes:

   - For PowerPC check for missing optimization level for vector
     register usage.  [T5785]

   - Fix EdDSA secret key check.  [T6511]

   - Fix decoding of PKCS#1-v1.5 and OAEP padding.  [rC34c2042792]

   - Allow use of PKCS#1-v1.5 with SHA3 algorithms.  [T6976]

   - Fix AESWRAP padding length check.  [T7130]

 * Other:

   - Allow empty password for Argon2 KDF.  [rCa20700c55f]

   - Various constant time operation imporvements.

   - Add "bp256", "bp384", "bp512" aliases for Brainpool curves.

   - Support for the random server has been removed.  [T5811]

   - The control code GCRYCTL_ENABLE_M_GUARD is deprecated and not
     supported any more.  Please use valgrind or other tools.  [T5822]

   - Logging is now done via the libgpg-error logging functions.
     [rCab0bdc72c7]


 * Interface changes relative to the 1.10.0 release:
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   GCRY_CIPHER_ARIA128                   NEW cipher algo.
   GCRY_CIPHER_ARIA192                   NEW cipher algo.
   GCRY_CIPHER_ARIA256                   NEW cipher algo.
   gcry_cipher_geniv_methods             NEW type.
   gcry_cipher_setup_geniv               NEW function.
   gcry_cipher_geniv                     NEW function.
   GCRY_PK_KEM                           NEW constant.
   GCRY_MD_CSHAKE128                     NEW hash algo.
   GCRY_MD_CSHAKE256                     NEW hash algo.
   GCRYCTL_MD_CUSTOMIZE                  NEW control code.
   gcry_cshake_customization             NEW type.
   GCRY_MAC_CMAC_ARIA                    NEW mac algo.
   GCRY_MAC_GMAC_SM4                     NEW mac algo.
   GCRY_MAC_GMAC_ARIA                    NEW mac algo.
   GCRY_MAC_POLY1305_SM4                 NEW mac algo.
   GCRY_MAC_POLY1305_ARIA                NEW mac algo.
   GCRY_KDF_ONESTEP_KDF                  NEW kdf algo.
   GCRY_KDF_ONESTEP_KDF_MAC              NEW kdf algo.
   GCRY_KDF_X963_KDF                     NEW kdf algo.
   gcry_kem_algos                        NEW type.
   gcry_kem_keypair                      NEW function.
   gcry_kem_encap                        NEW function.
   gcry_kem_decap                        NEW function.
   GCRY_KEM_SNTRUP761                    NEW kem algo.
   GCRY_KEM_CM6688128F                   NEW kem algo.
   GCRY_KEM_MLKEM512                     NEW kem algo.
   GCRY_KEM_MLKEM768                     NEW kem algo.
   GCRY_KEM_MLKEM1024                    NEW kem algo.
   GCRY_KEM_RAW_X25519                   NEW kem algo.
   GCRY_KEM_RAW_X448                     NEW kem algo.
   GCRY_KEM_RAW_BP256                    NEW kem algo.
   GCRY_KEM_RAW_BP384                    NEW kem algo.
   GCRY_KEM_RAW_BP512                    NEW kem algo.
   GCRY_KEM_RAW_P256R1                   NEW kem algo.
   GCRY_KEM_RAW_P384R1                   NEW kem algo.
   GCRY_KEM_RAW_P521R1                   NEW kem algo.
   GCRY_KEM_DHKEM25519                   NEW kem algo.
   GCRY_KEM_DHKEM448                     NEW kem algo.
   GCRY_KEM_DHKEMP256R1                  NEW kem algo.
   GCRY_KEM_DHKEMP384R1                  NEW kem algo.
   GCRY_KEM_DHKEMP521R1                  NEW kem algo.
   GCRY_KEM_*_SECKEY_LEN                 NEW constants.
   GCRY_KEM_*_PUBKEY_LEN                 NEW constants.
   GCRY_KEM_*_ENCAPS_LEN                 NEW constants.
   GCRY_KEM_*_CIPHER_LEN                 NEW constants.
   GCRY_KEM_*_SHARED_LEN                 NEW constants.
   gcry_md_hash_buffers_ext              NEW function.
   gcry_pk_input_data_push               NEW macro.
   GCRYCTL_ENABLE_M_GUARD                DEPRECATED feature.
   gcry_handler_log_t                    DEPRECATED type.
   gcry_set_log_handler                  DEPRECATED function.

 For a list of links to commits and bug numbers see the release info at
 https://dev.gnupg.org/T7165



Download
========

Source code is hosted at the GnuPG FTP server and its mirrors as listed
at https://gnupg.org/download/mirrors.html.  On the primary server
the source tarball and its digital signature are:

 https://gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.11.0.tar.bz2
 https://gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.11.0.tar.bz2.sig

or gzip compressed:

 https://gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.11.0.tar.gz
 https://gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.11.0.tar.gz.sig

In order to check that the version of Libgcrypt you downloaded is an
original and unmodified file please follow the instructions found at
https://gnupg.org/download/integrity_check.html.  In short, you may
use one of the following methods:

 - Check the supplied OpenPGP signature.  For example to check the
   signature of the file libgcrypt-1.11.0.tar.bz2 you would use this
   command:

     gpg --verify libgcrypt-1.11.0.tar.bz2.sig libgcrypt-1.11.0.tar.bz2

   This checks whether the signature file matches the source file.
   You should see a message indicating that the signature is good and
   made by one or more of the release signing keys.  Make sure that
   this is a valid key, either by matching the shown fingerprint
   against a trustworthy list of valid release signing keys or by
   checking that the key has been signed by trustworthy other keys.
   See the end of this mail for information on the signing keys.

 - If you are not able to use an existing version of GnuPG, you have
   to verify the SHA-1 checksum.  On Unix systems the command to do
   this is either "sha1sum" or "shasum".  Assuming you downloaded the
   file libgcrypt-1.11.0.tar.bz2, you run the command like this:

     sha1sum libgcrypt-1.11.0.tar.bz2

   and check that the output matches the first line from the
   this list:

dd2c68e0685bb99249efeeb06046fae15b5214ba  libgcrypt-1.11.0.tar.bz2
07737e642eedacbda04e7a1f44c04f3cf8e280b8  libgcrypt-1.11.0.tar.gz

   You should also verify that the checksums above are authentic by
   matching them with copies of this announcement.  Those copies can be
   found at other mailing lists, web sites, and search engines.


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 that these additional notices are distributed.


Support
=======

For help on developing with Libgcrypt you should read the included
manual and if needed ask on the gcrypt-devel mailing list.

In case of problems specific to this release please first check
https://dev.gnupg.org/T7165 for updated information.

Please also consult the archive of the gcrypt-devel mailing list before
reporting a bug: https://gnupg.org/documentation/mailing-lists.html .
We suggest to send bug reports for a new release to this list in favor
of filing a bug at https://bugs.gnupg.org.  If you need commercial
support go to https://gnupg.com or https://gnupg.org/service.html .

Please see https://gnupg.org/documentation/security.html for information
on how to report security issues and for our threat model.

If you are a developer and you need a certain feature for your project,
please do not hesitate to bring it to the gcrypt-devel mailing list for
discussion.


Thanks
======

Since 2001 maintenance and development of GnuPG is done by g10 Code GmbH
and has mostly been financed by donations.  Several full-time employed
developers and contractors are working exclusively on GnuPG and closely
related software like Libgcrypt, GPGME, Kleopatra and Gpg4win.

Fortunately, and this is still not common with free software, we have
now established a way of financing the development while keeping all our
software free and freely available for everyone.  Our model is similar
to the way RedHat manages RHEL and Fedora: Except for the actual binary
of the MSI installer for Windows and client specific configuration
files, all the software is available under the GNU GPL and other Open
Source licenses.  Thus customers may even build and distribute their own
version of the software as long as they do not use our trademarks
GnuPG Desktop® or GnuPG VS-Desktop®.

We like to thank all the nice people who are helping the GnuPG project,
be it testing, coding, translating, suggesting, auditing, administering
the servers, spreading the word, answering questions on the mailing
lists, or helping with donations.

*Thank you all*

   Your Libgcrypt hackers



p.s.
This is an announcement only mailing list.  Please send replies only to
the gnupg-users'at'gnupg.org mailing list.

List of Release Signing Keys:
To guarantee that a downloaded GnuPG version has not been tampered by
malicious entities we provide signature files for all tarballs and
binary versions.  The keys are also signed by the long term keys of
their respective owners.  Current releases are signed by one or more
of these keys:

  rsa3072 2017-03-17 [expires: 2027-03-15]
  5B80 C575 4298 F0CB 55D8  ED6A BCEF 7E29 4B09 2E28
  Andre Heinecke (Release Signing Key)

  ed25519 2020-08-24 [expires: 2030-06-30]
  6DAA 6E64 A76D 2840 571B  4902 5288 97B8 2640 3ADA
  Werner Koch (dist signing 2020)

  ed25519 2021-05-19 [expires: 2027-04-04]
  AC8E 115B F73E 2D8D 47FA  9908 E98E 9B2D 19C6 C8BD
  Niibe Yutaka (GnuPG Release Key)

  brainpoolP256r1 2021-10-15 [expires: 2029-12-31]
  02F3 8DFF 731F F97C B039  A1DA 549E 695E 905B A208
  GnuPG.com (Release Signing Key 2021)

The keys are available at https://gnupg.org/signature_key.html and
in any recently released GnuPG tarball in the file g10/distsigkey.gpg .
Note that this mail has been signed by a different key.


-- 
The pioneers of a warless world are the youth that
refuse military service.             - A. Einstein
-------------- next part --------------
A non-text attachment was scrubbed...
Name: openpgp-digital-signature.asc
Type: application/pgp-signature
Size: 247 bytes
Desc: not available
URL: <https://lists.gnupg.org/pipermail/gnupg-devel/attachments/20240619/e1684f1f/attachment.sig>
-------------- next part --------------
_______________________________________________
Gnupg-announce mailing list
Gnupg-announce at gnupg.org
http://lists.gnupg.org/mailman/listinfo/gnupg-announce


More information about the Gnupg-devel mailing list