GnuPG Changelog

What's new in GnuPG 2.2.19

Dec 8, 2019
  • gpg: Fix double free when decrypting for hidden recipients. Regression in 2.2.18. [#4762].
  • gpg: Use auto-key-locate for encryption even for mail addressed given with angle brackets. [#4726]
  • gpgsm: Add special case for certain expired intermediate certificates. [#4696]

New in GnuPG 2.2.17 (Jul 12, 2019)

  • gpg: Ignore all key-signatures received from keyservers. This change is required to mitigate a DoS due to keys flooded with faked key-signatures. The old behaviour can be achieved by adding keyserver-options no-self-sigs-only,no-import-clean to your gpg.conf. [#4607]
  • gpg: If an imported keyblocks is too large to be stored in the keybox (pubring.kbx) do not error out but fallback to an import using the options "self-sigs-only,import-clean". [#4591]
  • gpg: New command --locate-external-key which can be used to refresh keys from the Web Key Directory or via other methods configured with --auto-key-locate.
  • gpg: New import option "self-sigs-only".
  • gpg: In --auto-key-retrieve prefer WKD over keyservers. [#4595]
  • dirmngr: Support the "openpgpkey" subdomain feature from draft-koch-openpgp-webkey-service-07. [#4590].
  • dirmngr: Add an exception for the "openpgpkey" subdomain to the CSRF protection. [#4603]
  • dirmngr: Fix endless loop due to http errors 503 and 504. [#4600]
  • dirmngr: Fix TLS bug during redirection of HKP requests. [#4566]
  • gpgconf: Fix a race condition when killing components. [#4577]

New in GnuPG 2.2.16 (May 29, 2019)

  • gpg,gpgsm: Fix deadlock on Windows due to a keybox sharing violation. [#4505]
  • gpg: Allow deletion of subkeys with --delete-key. This finally makes the bang-suffix work as expected for that command. [#4457]
  • gpg: Replace SHA-1 by SHA-256 in self-signatures when updating them with --quick-set-expire or --quick-set-primary-uid. [#4508]
  • gpg: Improve the photo image viewer selection. [#4334]
  • gpg: Fix decryption with --use-embedded-filename. [#4500]
  • gpg: Remove hints on using the --keyserver option. [#4512]
  • gpg: Fix export of certain secret keys with comments. [#4490]
  • gpg: Reject too long user-ids in --quick-gen-key. [#4532]
  • gpg: Fix a double free in the best key selection code. [#4462]
  • gpg: Fix the key generation dialog for switching back from EdDSA to ECDSA.
  • gpg: Use AES-192 with SHA-384 to comply with RFC-6637.
  • gpg: Use only the addrspec from the Signer's UID subpacket to mitigate a problem with another implementation.
  • gpg: Skip invalid packets during a keyring listing and sync diagnostics with the output.
  • gpgsm: Avoid confusing diagnostic when signing with the default key. [#4535]
  • agent: Do not delete any secret key in --dry-run mode.
  • agent: Fix failures on 64 bit big-endian boxes related to URIs in a keyfile. [#4501]
  • agent: Stop scdaemon after a reload with disable-scdaemon newly configured. [#4326]
  • dirmngr: Improve caching algorithm for WKD domains.
  • dirmngr: Support other hash algorithms than SHA-1 for OCSP. [#3966]
  • gpgconf: Make --homedir work for --launch. [#4496]
  • gpgconf: Before --launch check for a valid config file. [#4497]
  • wkd: Do not import more than 5 keys from one WKD address.
  • wkd: Accept keys which are stored in armored format in the directory.
  • The installer for Windows now comes with signed binaries.

New in GnuPG 2.2.14 (Mar 21, 2019)

  • gpg: Allow import of PGP desktop exported secret keys. Also avoid importing secret keys if the secret keyblock is not valid. [#4392]
  • gpg: Do not error out on version 5 keys in the local keyring.
  • gpg: Make invalid primary key algo obvious in key listings.
  • sm: Do not mark a certificate in a key listing as de-vs compliant if its use for a signature will not be possible.
  • sm: Fix certificate creation with key on card.
  • sm: Create rsa3072 bit certificates by default.
  • sm: Print Yubikey attestation extensions with --dump-cert.
  • agent: Fix cancellation handling for scdaemon.
  • agent: Support --mode=ssh option for CLEAR_PASSPHRASE. [#4340]
  • scd: Fix flushing of the CA-FPR DOs in app-openpgp.
  • scd: Avoid a conflict error with the "undefined" app.
  • dirmngr: Add CSRF protection exception for protonmail.
  • dirmngr: Fix build problems with gcc 9 in libdns.
  • gpgconf: New option --show-socket for use wity --launch.
  • gpgtar: Make option -C work for archive creation.

New in GnuPG 2.2.12 (Dec 17, 2018)

  • tools: New commands --install-key and --remove-key for gpg-wks-client. This allows to prepare a Web Key Directory on a local file system for later upload to a web server.
  • gpg: New --list-option "show-only-fpr-mbox". This makes the use of the new gpg-wks-client --install-key command easier on Windows.
  • gpg: Improve processing speed when --skip-verify is used.
  • gpg: Fix a bug where a LF was accidentally written to the console.
  • gpg: --card-status now shwos whether a card has the new KDF feature enabled.
  • agent: New runtime option --s2k-calibration=MSEC. New configure option --with-agent-s2k-calibration=MSEC. [https://dev.gnupg.org/T3399]
  • dirmngr: Try another keyserver from the pool on receiving a 502, 503, or 504 error. [https://dev.gnupg.org/T4175]
  • dirmngr: Avoid possible CSRF attacks via http redirects. A HTTP query will not anymore follow a 3xx redirect unless the Location header gives the same host. If the host is different only the host and port is taken from the Location header and the original path and query parts are kept.
  • dirmngr: New command FLUSHCRL to flush all CRLS from disk and memory. [https://dev.gnupg.org/T3967]
  • New simplified Chinese translation (zh_CN).

New in GnuPG 2.2.9 (Jul 13, 2018)

  • dirmngr: Fix recursive resolver mode and other bugs in the libdns code. [#3374,#3803,#3610]
  • dirmngr: When using libgpg-error 1.32 or later a GnuPG build with NTBTLS support (e.g. the standard Windows installer) does not anymore block for dozens of seconds before returning data. If you still have problems on Windows, please consider to use one of the options disable-ipv4 or disable-ipv6.
  • gpg: Fix bug in --show-keys which actually imported revocation certificates. [#4017]
  • gpg: Ignore too long user-ID and comment packets. [#4022]
  • gpg: Fix crash due to bad German translation. Improved printf format compile time check.
  • gpg: Handle missing ISSUER sub packet gracefully in the presence of the new ISSUER_FPR. [#4046]
  • gpg: Allow decryption using several passphrases in most cases. [#3795,#4050]
  • gpg: Command --show-keys now enables the list options show-unusable-uids, show-unusable-subkeys, show-notations and show-policy-urls by default.
  • gpg: Command --show-keys now prints revocation certificates. [#4018]
  • gpg: Add revocation reason to the "rev" and "rvs" records of the option --with-colons. [#1173]
  • gpg: Export option export-clean does now remove certain expired subkeys; export-minimal removes all expired subkeys. [#3622]
  • gpg: New "usage" property for the drop-subkey filters. [#4019]

New in GnuPG 2.2.8 (Jun 8, 2018)

  • gpg: Decryption of messages not using the MDC mode will now lead to a hard failure even if a legacy cipher algorithm was used. The option --ignore-mdc-error can be used to turn this failure into a warning. Take care: Never use that option unconditionally or without a prior warning.
  • gpg: The MDC encryption mode is now always used regardless of the cipher algorithm or any preferences. For testing --rfc2440 can be used to create a message without an MDC.
  • gpg: Sanitize the diagnostic output of the original file name in verbose mode. [#4012,CVE-2018-12020]
  • gpg: Detect suspicious multiple plaintext packets in a more reliable way. [#4000]
  • gpg: Fix the duplicate key signature detection code. [#3994]
  • gpg: The options --no-mdc-warn, --force-mdc, --no-force-mdc, --disable-mdc and --no-disable-mdc have no more effect.
  • agent: Add DBUS_SESSION_BUS_ADDRESS and a few other envvars to the list of startup environment variables. [#3947]

New in GnuPG 2.2.7 (May 3, 2018)

  • gpg: New option --no-symkey-cache to disable the passphrase cache for symmetrical en- and decryption.
  • gpg: The ERRSIG status now prints the fingerprint if that is part of the signature.
  • gpg: Relax emitting of FAILURE status lines
  • gpg: Add a status flag to "sig" lines printed with --list-sigs.
  • gpg: Fix "Too many open files" when using --multifile. [#3951]
  • ssh: Return an error for unknown ssh-agent flags. [#3880]
  • dirmngr: Fix a regression since 2.1.16 which caused corrupted CRL caches under Windows. [#2448,#3923]
  • dirmngr: Fix a CNAME problem with pools and TLS. Also use a fixed mapping of keys.gnupg.net to sks-keyservers.net. [#3755]
  • dirmngr: Try resurrecting dead hosts earlier (from 3 to 1.5 hours).
  • dirmngr: Fallback to CRL if no default OCSP responder is configured.
  • dirmngr: Implement CRL fetching via https. Here a redirection to http is explictly allowed.
  • dirmngr: Make LDAP searching and CRL fetching work under Windows. This stopped working with 2.1. [#3937]
  • agent,dirmngr: New sub-command "getenv" for "getinfo" to ease debugging.

New in GnuPG 2.2.6 (Apr 13, 2018)

  • gpg,gpgsm: New option --request-origin to pretend requests coming from a browser or a remote site.
  • gpg: Fix race condition on trustdb.gpg updates due to too early released lock. [#3839]
  • gpg: Emit FAILURE status lines in almost all cases. [#3872]
  • gpg: Implement --dry-run for --passwd to make checking a key's passphrase straightforward.
  • gpg: Make sure to only accept a certification capable key for key signatures. [#3844]
  • gpg: Better user interaction in --card-edit for the factory-reset sub-command.
  • gpg: Improve changing key attributes in --card-edit by adding an explicit "key-attr" sub-command. [#3781]
  • gpg: Print the keygrips in the --card-status.
  • scd: Support KDF DO setup. [#3823]
  • scd: Fix some issues with PC/SC on Windows. [#3825]
  • scd: Fix suspend/resume handling in the CCID driver.
  • agent: Evict cached passphrases also via a timer. [#3829]
  • agent: Use separate passphrase caches depending on the request origin. [#3858]
  • ssh: Support signature flags. [#3880]
  • dirmngr: Handle failures related to missing IPv6 support gracefully. [#3331]
  • Fix corner cases related to specified home directory with drive letter on Windows. [#3720]
  • Allow the use of UNC directory names as homedir. [#3818]

New in GnuPG 2.2.2 (Nov 12, 2017)

  • gpg: Avoid duplicate key imports by concurrently running gpg processes. [#3446]
  • gpg: Fix creating on-disk subkey with on-card primary key. [#3280]
  • gpg: Fix validity retrieval for multiple keyrings. [Debian#878812]
  • gpg: Fix --dry-run and import option show-only for secret keys.
  • gpg: Print "sec" or "sbb" for secret keys with import option import-show. [#3431]
  • gpg: Make import less verbose. [#3397]
  • gpg: Add alias "Key-Grip" for parameter "Keygrip" and new parameter "Subkey-Grip" to unattended key generation. [#3478]
  • gpg: Improve "factory-reset" command for OpenPGP cards. [#3286]
  • gpg: Ease switching Gnuk tokens into ECC mode by using the magic keysize value 25519.
  • gpgsm: Fix --with-colon listing in crt records for fields > 12.
  • gpgsm: Do not expect X.509 keyids to be unique. [#1644]
  • agent: Fix stucked Pinentry when using --max-passphrase-days. [#3190]
  • agent: New option --s2k-count. [#3276 (workaround)]
  • dirmngr: Do not follow https-to-http redirects. [#3436]
  • dirmngr: Reduce default LDAP timeout from 100 to 15 seconds. [#3487]
  • gpgconf: Ignore non-installed components for commands --apply-profile and --apply-defaults. [#3313]
  • Add configure option --enable-werror. [#2423]

New in GnuPG 2.2.0 (Sep 4, 2017)

  • This is the new long term stable branch. This branch will only see bug fixes and no new features.
  • gpg: Reverted change done in 2.1.23 so that --no-auto-key-retrieve is again the default.
  • Fixed a few minor bugs.
  • This release incorporates all changes from the 2.1 series including these from the release candidate 2.1.23:
  • gpg: "gpg" is now installed as "gpg" and not anymore as "gpg2". If needed, the new configure option --enable-gpg-is-gpg2 can be used to revert this.
  • gpg: Option --auto-key-locate "local,wkd" is now used by default. Note: this enables keyserver and Web Key Directory operators to notice when you intend to encrypt to a mail address without having the key locally. This new behaviour will eventually make key discovery much easier and mostly automatic. Disable this by adding auto-key-locate local to your gpg.conf. [This description has been adjusted to include the above mentioned change in 2.2.0]
  • agent: Option --no-grab is now the default. The new option --grab allows to revert this.
  • gpg: New import option "show-only".
  • gpg: New option --disable-dirmngr to entirely disable network access for gpg.
  • gpg,gpgsm: Tweaked DE-VS compliance behaviour.
  • New configure flag --enable-all-tests to run more extensive tests during "make check".
  • gpgsm: The keygrip is now always printed in colon mode as documented in the man page.
  • Fixed connection timeout problem under Windows.

New in GnuPG 2.1.23 (Aug 12, 2017)

  • gpg: "gpg" is now installed as "gpg" and not anymore as "gpg2". If needed, the new configure option --enable-gpg-is-gpg2 can be used to revert this.
  • gpg: Options --auto-key-retrieve and --auto-key-locate "local,wkd" are now used by default. Note: this enables keyserver and Web Key Directory operators to notice when a signature from a locally non-available key is being verified for the first time or when you intend to encrypt to a mail address without having the key locally. This new behaviour will eventually make key discovery much easier and mostly automatic. Disable this by adding no-auto-key-retrieve auto-key-locate local to your gpg.conf.
  • agent: Option --no-grab is now the default. The new option --grab allows to revert this.
  • gpg: New import option "show-only".
  • gpg: New option --disable-dirmngr to entirely disable network access for gpg.
  • gpg,gpgsm: Tweaked DE-VS compliance behaviour.
  • New configure flag --enable-all-tests to run more extensive tests during "make check".
  • gpgsm: The keygrip is now always printed in colon mode as documented in the man page.
  • Fixed connection timeout problem under Windows.

New in GnuPG 2.1.22 (Jul 31, 2017)

  • gpg: Extend command --quick-set-expire to allow for setting the expiration time of subkeys.
  • gpg: By default try to repair keys during import. New sub-option no-repair-keys for --import-options.
  • gpg,gpgsm: Improved checking and reporting of DE-VS compliance.
  • gpg: New options --key-origin and --with-key-origin. Store the time of the last key update from keyservers, WKD, or DANE.
  • agent: New option --ssh-fingerprint-digest.
  • dimngr: Lower timeouts on keyserver connection attempts and made it configurable.
  • dirmngr: Tor will now automatically be detected and used. The option --no-use-tor disables Tor detection.
  • dirmngr: Now detects a changed /etc/resolv.conf.
  • agent,dirmngr: Initiate shutdown on removal of the GnuPG home directory.
  • gpg: Avoid caching passphrase for failed symmetric encryption.
  • agent: Support for unprotected ssh keys.
  • dirmngr: Fixed name resolving on systems using only v6 nameservers.
  • dirmngr: Allow the use of TLS over http proxies.
  • w32: Change directory of the daemons after startup.
  • wks: New man pages for client and server.

New in GnuPG 2.1.21 (May 15, 2017)

  • gpg,gpgsm: Fix corruption of old style keyring.gpg files. This bug was introduced with version 2.1.20. Note that the default pubring.kbx format was not affected.
  • gpg,dirmngr: Removed the skeleton config file support. The system's standard methods for providing default configuration files should be used instead.
  • w32: The Windows installer now allows installion of GnuPG without Administrator permissions.
  • gpg: Fixed import filter property match bug.
  • scd: Removed Linux support for Cardman 4040 PCMCIA reader.
  • scd: Fixed some corner case bugs in resume/suspend handling.
  • Many minor bug fixes and code cleanup.

New in GnuPG 2.1.20 (Apr 4, 2017)

  • gpg: New properties 'expired', 'revoked', and 'disabled' for the import and export filters.
  • gpg: New command --quick-set-primary-uid.
  • gpg: New compliance field for the --with-colon key listing.
  • gpg: Changed the key parser to generalize the processing of local meta data packets.
  • gpg: Fixed assertion failure in the TOFU trust model.
  • gpg: Fixed exporting of zero length user ID packets.
  • scd: Improved support for multiple readers.
  • scd: Fixed timeout handling for key generation.
  • agent: New option --enable-extended-key-format.
  • dirmngr: Do not add a keyserver to a new dirmngr.conf. Dirmngr uses a default keyserver.
  • dimngr: Do not treat TLS warning alerts as severe error when building with GNUTLS.
  • dirmngr: Actually take /etc/hosts in account.
  • wks: Fixed client problems on Windows. Published keys are now set to world-readable.
  • tests: Fixed creation of temporary directories.
  • A socket directory for a non standard GNUGHOME is now created on the fly under /run/user. Thus "gpgconf --create-socketdir" is now optional. The use of "gpgconf --remove-socketdir" to clean up obsolete socket directories is however recommended to avoid cluttering /run/user with useless directories.
  • Fixed build problems on some platforms.

New in GnuPG 2.1.19 (Mar 7, 2017)

  • gpg: Print a warning if Tor mode is requested but the Tor daemon is not running.
  • gpg: New status code DECRYPTION_KEY to print the actual private key used for decryption.
  • gpgv: New options --log-file and --debug.
  • gpg-agent: Revamp the prompts to ask for card PINs.
  • scd: Support for multiple card readers.
  • scd: Removed option --debug-disable-ticker. Ticker is used only when it is required to watch removal of device/card.
  • scd: Improved detection of card inserting and removal.
  • dirmngr: New option --disable-ipv4.
  • dirmngr: New option --no-use-tor to explicitly disable the use of Tor.
  • dirmngr: The option --allow-version-check is now required even if the option --use-tor is also used.
  • dirmngr: Handle a missing nsswitch.conf gracefully.
  • dirmngr: Avoid PTR lookups for keyserver pools. The are only done for the debug command "keyserver --hosttable".
  • dirmngr: Rework the internal certificate cache to support classes of certificates. Load system provided certificates on startup. Add options --tls, --no-crl, and --systrust to the "VALIDATE" command.
  • dirmngr: Add support for the ntbtls library.
  • wks: Create mails with a "WKS-Phase" header. Fix detection of Draft-2 mode.
  • The Windows installer is now build with limited TLS support.
  • Many other bug fixes and new regression tests.

New in GnuPG 2.1.18 (Jan 27, 2017)

  • gpg: Remove bogus subkey signature while cleaning a key (with export-clean, import-clean, or --edit-key's sub-command clean)
  • gpg: Allow freezing the clock with --faked-system-time.
  • gpg: New --export-option flag "backup", new --import-option flag "restore".
  • gpg-agent: Fixed long delay due to a regression in the progress callback code.
  • scd: Lots of code cleanup and internal changes.
  • scd: Improved the internal CCID driver.
  • dirmngr: Fixed problem with the DNS glue code (removal of the trailing dot in domain names).
  • dirmngr: Make sure that Tor is actually enabled after changing the conf file and sending SIGHUP or "gpgconf --reload dirmngr".
  • dirmngr: Fixed Tor access to IPv6 addresses. Note that current versions of Tor may require that the flag "IPv6Traffic" is used with the option "SocksPort" in torrc to actually allow IPv6 traffic.
  • dirmngr: Fixed HKP for literally given IPv6 addresses.
  • dirmngr: Enabled reverse DNS lookups via Tor.
  • dirmngr: Added experimental SRV record lookup for WKD. See commit 88dc3af3d4ae1afe1d5e136bc4c38bc4e7d4cd10 for details.
  • dirmngr: For HKP use "pgpkey-hkps" and "pgpkey-hkp" in SRV record lookups. Avoid SRV record lookup when a port is explicitly specified. This fixes a regression from the 1.4 and 2.0 behavior.
  • dirmngr: Gracefully handle a missing /etc/nsswitch.conf. Ignore negation terms (e.g. "[!UNAVAIL=return]" instead of bailing out.
  • dirmngr: Better debug output for flags "dns" and "network".
  • dirmngr: On reload mark all known HKP servers alive.
  • gpgconf: Allow keyword "all" for --launch, --kill, and --reload.
  • tools: gpg-wks-client now ignores a missing policy file on the server.
  • Avoid unnecessary ambiguity error message in the option parsing.
  • Further improvements of the regression test suite.
  • Fixed building with --disable-libdns configure option.
  • Fixed a crash running the tests on 32 bit architectures.
  • Fixed spurious failures on BSD system in the spawn functions. This affected for example gpg-wks-client and gpgconf.

New in GnuPG 2.1.17 (Dec 22, 2016)

  • gpg: By default new keys expire after 2 years.
  • gpg: New command --quick-set-expire to conveniently change the expiration date of keys.
  • gpg: Option and command names have been changed for easier comprehension. The old names are still available as aliases.
  • gpg: Improved the TOFU trust model.
  • gpg: New option --default-new-key-algo.
  • scd: Support OpenPGP card V3 for RSA.
  • dirmngr: Support for the ADNS library has been removed. Instead William Ahern's Libdns is now source included and used on all platforms. This enables Tor support on all platforms. The new option --standard-resolver can be used to disable this code at runtime. In case of build problems the new configure option --disable-libdns can be used to build without Libdns.
  • dirmngr: Lazily launch ldap reaper thread.
  • tools: New options --check and --status-fd for gpg-wks-client.
  • The UTF-8 byte order mark is now skipped when reading conf files.
  • Fixed many bugs and regressions.
  • Major improvements to the test suite. For example it is possible to run the external test suite of GPGME.

New in GnuPG 2.1.16 (Nov 21, 2016)

  • gpg: New algorithm for selecting the best ranked public key when using a mail address with -r, -R, or --locate-key.
  • gpg: New option --with-tofu-info to print a new "tfs" record in colon formatted key listings.
  • gpg: New option --compliance as an alternative way to specify options like --rfc2440, --rfc4880, et al.
  • gpg: Many changes to the TOFU implementation.
  • gpg: Improve usability of --quick-gen-key.
  • gpg: In --verbose mode print a diagnostic when a pinentry is launched.
  • gpg: Remove code which warns for old versions of gnome-keyring.
  • gpg: New option --override-session-key-fd.
  • gpg: Option --output does now work with --verify.
  • gpgv: New option --output to allow saving the verified data.
  • gpgv: New option --enable-special-filenames.
  • agent, dirmngr: New --supervised mode for use by systemd and alike.
  • agent: By default listen on all available sockets using standard names.
  • agent: Invoke scdaemon with --homedir.
  • dirmngr: On Linux now detects the removal of its own socket and terminates.
  • scd: Support ECC key generation.
  • scd: Support more card readers.
  • dirmngr: New option --allow-version-check to download a software version database in the background.
  • dirmngr: Use system provided CAs if no --hkp-cacert is given.
  • dirmngr: Use a default keyserver if none is explicitly set
  • gpgconf: New command --query-swdb to check software versions against an copy of an online database.
  • gpgconf: Print the socket directory with --list-dirs.
  • tools: The WKS tools now support draft version -02.
  • tools: Always build gpg-wks-client and install under libexec.
  • tools: New option --supported for gpg-wks-client.
  • The log-file option now accepts a value "socket://" to log to the socket named "S.log" in the standard socket directory.
  • Provide fake pinentries for use by tests cases of downstream developers.
  • Fixed many bugs and regressions.
  • Many changes and improvements for the test suite.

New in GnuPG 2.1.15 (Aug 23, 2016)

  • gpg: Remove the --tofu-db-format option and support for the split TOFU database.
  • gpg: Add option --sender to prepare for coming features.
  • gpg: Add option --input-size-hint to help progress indicators.
  • gpg: Extend the PROGRESS status line with the counted unit.
  • gpg: Avoid publishing the GnuPG version by default with --armor.
  • gpg: Properly ignore legacy keys in the keyring cache.
  • gpg: Always print fingerprint records in --with-colons mode.
  • gpg: Make sure that keygrips are printed for each subkey in --with-colons mode.
  • gpg: New import filter "drop-sig".
  • gpgsm: Fix a bug in the machine-readable key listing.
  • gpg,gpgsm: Block signals during keyring updates to limits the effects of a Ctrl-C at the wrong time.
  • g13: Add command --umount and other fixes for dm-crypt.
  • agent: Fix regression in SIGTERM handling.
  • agent: Cleanup of the ssh-agent code.
  • agent: Allow import of overly long keys.
  • scd: Fix problems with card removal.
  • dirmngr: Remove all code for running as a system service.
  • tools: Make gpg-wks-client conforming to the specs.
  • tests: Improve the output of the new regression test tool.
  • tests: Distribute the standalone test runner.
  • tests: Run each test in a clean environment.
  • Spelling and grammar fixes.

New in GnuPG 2.1.14 (Jul 14, 2016)

  • gpg: Removed options --print-dane-records and --print-pka-records. The new export options "export-pka" and "export-dane" can instead be used with the export command.
  • gpg: New options --import-filter and --export-filter.
  • gpg: New import options "import-show" and "import-export".
  • gpg: New option --no-keyring.
  • gpg: New command --quick-revuid.
  • gpg: New options -f/--recipient-file and -F/--hidden-recipient-file to directly specify encryption keys.
  • gpg: New option --mimemode to indicate that the content is a MIME part. Does only enable --textmode right now.
  • gpg: New option --rfc4880bis to allow experiments with proposed changes to the current OpenPGP specs.
  • gpg: Fix regression in the "fetch" sub-command of --card-edit.
  • gpg: Fix regression since 2.1 in option --try-all-secrets.
  • gpgv: Change default options for extra security.
  • gpgsm: No more root certificates are installed by default.
  • agent: "updatestartuptty" does now affect more environment variables.
  • scd: The option --homedir does now work with scdaemon.
  • scd: Support some more GEMPlus card readers.
  • gpgtar: Fix handling of '-' as file name.
  • gpgtar: New commands --create and --extract.
  • gpgconf: Tweak for --list-dirs to better support shell scripts.
  • tools: Add programs gpg-wks-client and gpg-wks-server to implement a Web Key Service. The configure option --enable-wks-tools is required to build them; they should be considered Beta software.
  • tests: Complete rework of the openpgp part of the test suite. The test scripts have been changed from Bourne shell scripts to Scheme programs. A customized scheme interpreter (gpgscm) is included. This change was triggered by the need to run the test suite on non-Unix platforms.
  • The rendering of the man pages has been improved.

New in GnuPG 2.1.13 (Jun 16, 2016)

  • gpg: New command --quick-addkey. Extend the --quick-gen-key command.
  • gpg: New --keyid-format "none" which is now also the default.
  • gpg: New option --with-subkey-fingerprint.
  • gpg: Include Signer's UID subpacket in signatures if the secret key has been specified using a mail address and the new option --disable-signer-uid is not used.
  • gpg: Allow unattended deletion of a secret key.
  • gpg: Allow export of non-passphrase protected secret keys.
  • gpg: New status lines KEY_CONSIDERED and NOTATION_FLAGS.
  • gpg: Change status line TOFU_STATS_LONG to use '~' as a non-breaking-space character.
  • gpg: Speedup key listings in Tofu mode.
  • gpg: Make sure that the current and total values of a PROGRESS status line are small enough.
  • gpgsm: Allow the use of AES192 and SERPENT ciphers.
  • dirmngr: Adjust WKD lookup to current specs.
  • dirmngr: Fallback to LDAP v3 if v2 is is not supported.
  • gpgconf: New commands --create-socketdir and --remove-socketdir, new option --homedir.
  • If a /run/user/$UID directory exists, that directory is now used for IPC sockets instead of the GNUPGHOME directory. This fixes problems with NFS and too long socket names and thus avoids the need for redirection files.
  • The Speedo build systems now uses the new versions.gnupg.org server to retrieve the default package versions.
  • Fix detection of libusb on FreeBSD.
  • Speedup fd closing after a fork.

New in GnuPG 2.1.12 (May 4, 2016)

  • gpg: New --edit-key sub-command "change-usage" for testing purposes.
  • gpg: Out of order key-signatures are now systematically detected and fixed by --edit-key.
  • gpg: Improved detection of non-armored messages.
  • gpg: Removed the extra prompt needed to create Curve25519 keys.
  • gpg: Improved user ID selection for --quick-sign-key.
  • gpg: Use the root CAs provided by the system with --fetch-key.
  • gpg: Add support for the experimental Web Key Directory key location service.
  • gpg: Improve formatting of Tofu messages and emit new Tofu specific status lines.
  • gpgsm: Add option --pinentry-mode to support a loopback pinentry.
  • gpgsm: A new pubring.kbx is now created with the header blob so that gpg can detect that the keybox format needs to be used.
  • agent: Add read support for the new private key protection format openpgp-s2k-ocb-aes.
  • agent: Add read support for the new extended private key format.
  • agent: Default to --allow-loopback-pinentry and add option --no-allow-loopback-pinentry.
  • scd: Changed to use the new libusb 1.0 API for the internal CCID driver.
  • dirmngr: The dirmngr-client does now auto-detect the PEM format.
  • g13: Add experimental support for dm-crypt.
  • w32: Tofu support is now available with the Speedo build method.
  • w32: Removed the need for libiconv.dll.
  • The man pages for gpg and gpgv are now installed under the correct name (gpg2 or gpg - depending on a configure option).
  • Lots of internal cleanups and bug fixes.

New in GnuPG 2.1.11 (Jan 28, 2016)

  • gpg: New command --export-ssh-key to replace the gpgkey2ssh tool.
  • gpg: Allow to generate mail address only keys with --gen-key.
  • gpg: "--list-options show-usage" is now the default.
  • gpg: Make lookup of DNS CERT records holding an URL work.
  • gpg: Emit PROGRESS status lines during key generation.
  • gpg: Don't check for ambigious or non-matching key specification in the config file or given to --encrypt-to. This feature will return in 2.3.x.
  • gpg: Lock keybox files while updating them.
  • gpg: Solve rare error on Windows during keyring and Keybox updates.
  • gpg: Fix possible keyring corruption. (bug#2193)
  • gpg: Fix regression of "bkuptocard" sub-command in --edit-key and remove "checkbkupkey" sub-command introduced with 2.1. (bug#2169)
  • gpg: Fix internal error in gpgv when using default keyid-format.
  • gpg: Fix --auto-key-retrieve to work with dirmngr.conf configured keyservers. (bug#2147).
  • agent: New option --pinentry-timeout.
  • scd: Improve unplugging of USB readers under Windows.
  • scd: Fix regression for generating RSA keys on card.
  • dirmmgr: All configured keyservers are now searched.
  • dirmngr: Install CA certificate for hkps.pool.sks-keyservers.net. Use this certiticate even if --hkp-cacert is not used.
  • gpgtar: Add actual encryption code. gpgtar does now fully replace gpg-zip.
  • gpgtar: Fix filename encoding problem on Windows.
  • Print a warning if a GnuPG component is using an older version of gpg-agent, dirmngr, or scdaemon.

New in GnuPG 2.1.10 (Dec 4, 2015)

  • gpg: New trust models "tofu" and "tofu+pgp".
  • gpg: New command --tofu-policy. New options --tofu-default-policy and --tofu-db-format.
  • gpg: New option --weak-digest to specify hash algorithms which should be considered weak.
  • gpg: Allow the use of multiple --default-key options; take the last available key.
  • gpg: New option --encrypt-to-default-key.
  • gpg: New option --unwrap to only strip the encryption layer.
  • gpg: New option --only-sign-text-ids to exclude photo IDs from key signing.
  • gpg: Check for ambigious or non-matching key specification in the config file or given to --encrypt-to.
  • gpg: Show the used card reader with --card-status.
  • gpg: Print export statistics and an EXPORTED status line.
  • gpg: Allow selecting subkeys by keyid in --edit-key.
  • gpg: Allow updating the expiration time of multiple subkeys at once.
  • dirmngr: New option --use-tor. For full support this requires libassuan version 2.4.2 and a patched version of libadns (e.g. adns-1.4-g10-7 as used by the standard Windows installer).
  • dirmngr: New option --nameserver to specify the nameserver used in Tor mode.
  • dirmngr: Keyservers may again be specified by IP address.
  • dirmngr: Fixed problems in resolving keyserver pools.
  • dirmngr: Fixed handling of premature termination of TLS streams so that large numbers of keys can be refreshed via hkps.
  • gpg: Fixed a regression in --locate-key [since 2.1.9].
  • gpg: Fixed another bug for keyrings with legacy keys.
  • gpgsm: Allow combinations of usage flags in --gen-key.
  • Make tilde expansion work with most options.
  • Many other cleanups and bug fixes.

New in GnuPG 2.1.9 (Oct 10, 2015)

  • gpg: Allow fetching keys via OpenPGP DANE (--auto-key-locate). New option --print-dane-records.
  • gpg: Fix for a problem with PGP-2 keys in a keyring.
  • gpg: Fail with an error instead of a warning if a modern cipher algorithm is used without a MDC.
  • agent: New option --pinentry-invisible-char.
  • agent: Always do a RSA signature verification after creation.
  • agent: Fix a regression in ssh-add-ing Ed25519 keys.
  • agent: Fix ssh fingerprint computation for nistp384 and EdDSA.
  • agent: Fix crash during passprase entry on some platforms.
  • scd: Change timeout to fix problems with some 2.1 cards.
  • dirmngr: Displayed name is now Key Acquirer.
  • dirmngr: Add option --keyserver. Deprecate that option for gpg. Install a dirmngr.conf file from a skeleton for new installations.

New in GnuPG 2.1.8 (Sep 11, 2015)

  • gpg: Sending very large keys to the keyservers works again.
  • gpg: Validity strings in key listings are now again translatable.
  • gpg: Emit FAILURE status lines to help GPGME.
  • gpg: Does not anymore link to Libksba to reduce dependencies.
  • gpgsm: Export of secret keys via Assuan is now possible.
  • agent: Raise the maximum passphrase length from 100 to 255 bytes.
  • agent: Fix regression using EdDSA keys with ssh.
  • Does not anymore use a build timestamp by default.
  • The fallback encoding for broken locale settings changed from Latin-1 to UTF-8.
  • Many code cleanups and improved internal documentation.
  • Various minor bug fixes.

New in GnuPG 2.1.7 (Aug 12, 2015)

  • gpg: Support encryption with Curve25519 if Libgcrypt 1.7 is used.
  • gpg: In the --edit-key menu: Removed the need for "toggle", changed how secret keys are indicated, new commands "fpr *" and "grip".
  • gpg: More fixes related to legacy keys in a keyring.
  • gpgv: Does now also work with a "trustedkeys.kbx" file.
  • scd: Support some feature from the OpenPGP card 3.0 specs.
  • scd: Improved ECC support
  • agent: New option --force for the DELETE_KEY command.
  • w32: Look for the Pinentry at more places.
  • Dropped deprecated gpgsm-gencert.sh
  • Various other bug fixes.

New in GnuPG 2.1.6 (Jul 1, 2015)

  • agent: New option --verify for the PASSWD command.
  • gpgsm: Add command option "offline" as an alternative to --disable-dirmngr.
  • gpg: Do not prompt multiple times for a password in pinentry loopback mode.
  • Allow the use of debug category names with --debug.
  • Using gpg-agent and gpg/gpgsm with different locales will now show the correct translations in Pinentry.
  • gpg: Improve speed of --list-sigs and --check-sigs.
  • gpg: Make --list-options show-sig-subpackets work again.
  • gpg: Fix an export problem for old keyrings with PGP-2 keys.
  • scd: Support PIN-pads on more readers.
  • dirmngr: Properly cleanup zombie LDAP helper processes and avoid hangs on dirmngr shutdown.
  • Various other bug fixes.

New in GnuPG 2.1.5 (Jun 12, 2015)

  • Support for an external passphrase cache.
  • Support for the forthcoming version 3 OpenPGP smartcard.
  • Manuals now show the actual used file names.
  • Prepared for improved integration with Emacs.
  • Code cleanups and minor bug fixes.

New in GnuPG 2.1.4 (May 13, 2015)

  • gpg: Add command --quick-adduid to non-interactively add a new user id to an existing key.
  • gpg: Do no enable honor-keyserver-url by default. Make it work if enabled.
  • gpg: Display the serial number in the --card-status output again.
  • agent: Support for external password managers. Add option --no-allow-external-cache.
  • scdaemon: Improved handling of extended APDUs.
  • Make HTTP proxies work again.
  • All network access including DNS as been moved to Dirmngr.
  • Allow building without LDAP support.

New in GnuPG 2.1.2 (Feb 12, 2015)

  • gpg: The parameter 'Passphrase' for batch key generation works again.
  • gpg: Using a passphrase option in batch mode now has the expected effect on --quick-gen-key.
  • gpg: Improved reporting of unsupported PGP-2 keys.
  • gpg: Added support for algo names when generating keys using --command-fd.
  • gpg: Fixed DoS based on bogus and overlong key packets.
  • agent: When setting --default-cache-ttl the value for --max-cache-ttl is adjusted to be not lower than the former.
  • agent: Fixed problems with the new --extra-socket.
  • agent: Made --allow-loopback-pinentry changeable with gpgconf.
  • agent: Fixed importing of unprotected openpgp keys.
  • agent: Now tries to use a fallback pinentry if the standard pinentry is not installed.
  • scd: Added support for ECDH.
  • Fixed several bugs related to bogus keyrings and improved some other code.

New in GnuPG 2.1.1 (Dec 16, 2014)

  • gpg: Detect faulty use of --verify on detached signatures.
  • gpg: New import option "keep-ownertrust".
  • gpg: New sub-command "factory-reset" for --card-edit.
  • gpg: A stub key for smartcards is now created by --card-status.
  • gpg: Fixed regression in --refresh-keys.
  • gpg: Fixed regresion in %g and %p codes for --sig-notation.
  • gpg: Fixed best matching hash algo detection for ECDSA and EdDSA.
  • gpg: Improved perceived speed of secret key listisngs.
  • gpg: Print number of skipped PGP-2 keys on import.
  • gpg: Removed the option aliases --throw-keyid and --notation-data; use --throw-keyids and --set-notation instead.
  • gpg: New import option "keep-ownertrust".
  • gpg: Skip too large keys during import.
  • gpg,gpgsm: New option --no-autostart to avoid starting gpg-agent or dirmngr.
  • gpg-agent: New option --extra-socket to provide a restricted command set for use with remote clients.
  • gpgconf --kill does not anymore start a service only to kill it.
  • gpg-pconnect-agent: Add convenience option --uiserver.
  • Fixed keyserver access for Windows.
  • Fixed build problems on Mac OS X
  • The Windows installer does now install development files
  • More translations (but most of them are not complete).
  • To support remotely mounted home directories, the IPC sockets may now be redirected. This feature requires Libassuan 2.2.0.
  • Improved portability and the usual bunch of bug fixes.

New in GnuPG 2.1.0 (Nov 6, 2014)

  • The file "secring.gpg" is not anymore used to store the secret keys. Merging of secret keys is now supported.
  • All support for PGP-2 keys has been removed for security reasons.
  • The standard key generation interface is now much leaner. This will help a new user to quickly generate a suitable key.
  • Support for Elliptic Curve Cryptography (ECC) is now available.
  • Commands to create and sign keys from the command line without any extra prompts are now available.
  • The Pinentry may now show the new passphrase entry and the passphrase confirmation entry in one dialog.
  • There is no more need to manually start the gpg-agent. It is now started by any part of GnuPG as needed.
  • Problems with importing keys with the same long key id have been addressed.
  • The Dirmngr is now part of GnuPG proper and also takes care of accessing keyserver. - Keyserver pools are now handled in a smarter way.
  • A new format for locally storing the public keys is now used. This considerable speeds up operations on large keyrings.
  • Revocation certificates are now created by default.
  • Card support has been updated, new readers and token types are supported.
  • The format of the key listing has been changed to better identify the properties of a key.
  • The gpg-agent may now be used on Windows as a Pageant replacement for Putty in the same way it is used for years on Unix as ssh-agent replacement.
  • Creation of X.509 certificates has been improved. It is now also possible to export them directly in PKCS#8 and PEM format for use on TLS servers.

New in GnuPG 2.0.26 (Aug 13, 2014)

  • gpg: Fix a regression in 2.0.24 if a subkey id is given to --recv-keys et al.
  • gpg: Cap attribute packets at 16MB.
  • gpgsm: Auto-create the ".gnupg" home directory in the same way gpg does.
  • scdaemon: Allow for certificates > 1024 when using PC/SC.

New in GnuPG 2.0.24 (Jun 25, 2014)

  • gpg: Avoid DoS due to garbled compressed data packets.
  • gpg: Screen keyserver responses to avoid importing unwanted keys from rogue servers.
  • gpg: The validity of user ids is now shown by default. To revert this add "list-options no-show-uid-validity" to gpg.conf.
  • gpg: Print more specific reason codes with the INV_RECP status.
  • gpg: Allow loading of a cert only key to an OpenPGP card.
  • gpg-agent: Make ssh support for ECDSA keys work with Libgcrypt 1.6.
  • Minor bug fixes.

New in GnuPG 2.0.22 (Oct 5, 2013)

  • Fixed possible infinite recursion in the compressed packet parser. [CVE-2013-4402]
  • Improved support for some card readers.
  • Prepared building with the forthcoming Libgcrypt 1.6.
  • Protect against rogue keyservers sending secret keys.

New in GnuPG 2.0.18 (Aug 5, 2011)

  • Bug fix for newer versions of Libgcrypt.
  • Support the SSH confirm flag and show SSH fingerprints in ssh related pinentries.
  • Improved dirmngr/gpgsm interaction for OCSP.
  • Allow generation of card keys up to 4096 bit.

New in GnuPG 2.0.17 (Jan 14, 2011)

  • Allow more hash algorithms with the OpenPGP v2 card.
  • The gpg-agent now tests for a new gpg-agent.conf on a HUP.
  • Fixed output of "gpgconf --check-options".
  • Fixed a bug where Scdaemon sends a signal to Gpg-agent running in non-daemon mode.
  • Fixed TTY management for pinentries and session variable update problem.
  • Minor bug fixes.