From wk at gnupg.org Wed Jun 19 14:14:55 2024 From: wk at gnupg.org (Werner Koch) Date: Wed, 19 Jun 2024 14:14:55 +0200 Subject: [Announce] Libgcrypt 1.11.0 released Message-ID: <87le31nn7k.fsf@jacob.g10code.de> 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: