<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gnupg/doc/DETAILS, branch master</title>
<subtitle>The GNU Privacy Guard.</subtitle>
<id>http://git.bktus.com/gpgfrontend/gnupg/atom?h=master</id>
<link rel='self' href='http://git.bktus.com/gpgfrontend/gnupg/atom?h=master'/>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gnupg/'/>
<updated>2026-10-12T12:20:53Z</updated>
<entry>
<title>gpgsm: Basic support for ML-DSA certificates</title>
<updated>2026-10-12T12:20:53Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2026-10-12T09:32:33Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gnupg/commit/?id=9c8d9b76bb916f0a9ba16f28db2184a69aa6a4ef'/>
<id>urn:sha1:9c8d9b76bb916f0a9ba16f28db2184a69aa6a4ef</id>
<content type='text'>
* common/sexputil.c (pubkey_algo_string): Support GCRY_PK_MLDSA.
* sm/certcheck.c (gpgsm_check_cert_sig): Ditto.
* sm/keylist.c (oidtranstbl): Add 2 OIDs for ML-DSA.
--

Libgcrypt 1.12.5 is required to work properly.

GnuPG-bug-id: 8517
</content>
</entry>
<entry>
<title>doc: Typo fixes</title>
<updated>2026-10-01T10:23:06Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2026-10-01T10:23:06Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gnupg/commit/?id=2deec7247aebcc820f91a854f19acb662b115455'/>
<id>urn:sha1:2deec7247aebcc820f91a854f19acb662b115455</id>
<content type='text'>
--
</content>
</entry>
<entry>
<title>Merge branch 'wk/rfc9980'</title>
<updated>2026-09-11T09:13:02Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2026-09-11T09:13:02Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gnupg/commit/?id=6803ce215ce5c2e9b0fcafd35afe4ffec75ba718'/>
<id>urn:sha1:6803ce215ce5c2e9b0fcafd35afe4ffec75ba718</id>
<content type='text'>
--

After 25 years the NSA could even convince GnuPG that their idea of
using complex algorithm is better for someones(tm) security.  But
fortunately there is no need to enable it.  Thus all guards of pretty
good and gnu privacy won't enable --compliance=fips|de-vs or use the
option --allow-9980.
</content>
</entry>
<entry>
<title>gpg: Make use of the new curve name "ietf25" in 9980 mode.</title>
<updated>2026-08-06T12:59:02Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2026-08-06T12:59:02Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gnupg/commit/?id=39b88c01e3ca908a34ce98ba0c1b00e16f0371f8'/>
<id>urn:sha1:39b88c01e3ca908a34ce98ba0c1b00e16f0371f8</id>
<content type='text'>
* g10/pkglue.c (do_encrypt_kem): Replace Curve25519 by ietf25.  Move
  the wipememory behind the gcry_kdf_close.
* g10/import.c (build_mode1003_sexp): Replace Curve25519 by ietf25 for
  X25519.  Add support for PUBKEY_ALGO_MLK1024_448.
(internal_skey_object_to_sexp): Replace Curve25519 by ietf25 for
  X25519.
* kbx/keybox-openpgp.c (keygrip_from_keyparm): Ditto.
* g10/keyid.c (keygrip_from_pk): Ditto.
* g10/keygen.c (gen_ecc): Ditto.
(gen_kyber): Ditto.
* common/kem.c (ecc_table): Add curve ietf25.
* common/openpgp-oid.c (oidtable): Ditto.  We use a new OID here
  despite that RFC-9580 does not use an OID for this algo.  Our curve
  registry however likes to have OIDs.
</content>
</entry>
<entry>
<title>gpg: First take on adding a compliance mode "fips".</title>
<updated>2026-08-05T12:59:01Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2026-08-05T12:57:31Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gnupg/commit/?id=05c271f45a11db169d0171554cfc062bfa1beb5f'/>
<id>urn:sha1:05c271f45a11db169d0171554cfc062bfa1beb5f</id>
<content type='text'>
* common/compliance.h (CO_FIPS): New.
* common/compliance.c: Add basic support for CO_FIPS.
(gnupg_pk_is_allowed): Factor code out to ...
(gnupg_pk_is_allowed_de_vs): here and add
(gnupg_pk_is_allowed_fips): new function.
* common/openpgpdefs.h (AEAD_ALGO_GCM): New.
* g10/cipher-aead.c (set_nonce_and_ad): Support GCM.
* g10/options.h (GNUPG): Set macro also in FIPS mode.
* g10/gpg.c (oFIPS): New.
(gpgconf_list): Print a compliance_fips line.
(compliance_options): Add "fips".
(set_compliance_option): Set --allow-9980 in FIPS mode.
* g10/keygen.c (write_keybinding): Provide fips compliance string.
* g10/mainproc.c (check_sig_and_print): In require compliance mode
  also fail in FIPS complaince mode.
* g10/misc.c (openpgp_aead_test_algo): Support GCM.
(openpgp_aead_algo_name): Ditto.
(openpgp_aead_algo_info): Ditto.
(compliance_failure): Add fips string.
* g10/sign.c (mk_notation_policy_etc): Use value 140 for the "manu"
  notation in FIPS mode.
(write_signature_packets): Ditto.
(make_keysig_packet): Ditto.
* g10/encrypt.c (use_aead): In FIPS mode use GCM instead of OCB.
* g10/pkclist.c (select_algo_from_prefs): For SHA256 in FIPS mode.
--

This is by way not ready but gives a starting point.  Encryption kind
of works but even dycryption has not been tested.  *PGP people will
anyway never use this mode with its NSA approved algorithm set.
</content>
</entry>
<entry>
<title>gpgsm: Emit issuer and serial no. when the certificate is not found.</title>
<updated>2026-07-30T08:17:21Z</updated>
<author>
<name>Philip Le</name>
<email>philip.le@gnupg.com</email>
</author>
<published>2026-07-30T07:48:16Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gnupg/commit/?id=82d5dc7782617cb7683b3769a3267e154ebdb067'/>
<id>urn:sha1:82d5dc7782617cb7683b3769a3267e154ebdb067</id>
<content type='text'>
* doc/DETAILS: Update NO_PUBKEY for X.509 certificates.
* sm/verify.c (gpgsm_verify): Print the issuer and serial no. of the
signer's certificate when the certificate is not found.
--

In case we cannot find the certificate of the signer, we should still
print issuer and serial no. of the signer's certificate. This info is
contained in the signature.

GnuPG-bug-id: 8363
Co-authored-by: Werner Koch &lt;wk@gnupg.org&gt;
</content>
</entry>
<entry>
<title>gpgsm: Emit signing time as status output for bad signatures.</title>
<updated>2026-07-30T07:31:13Z</updated>
<author>
<name>Philip Le</name>
<email>philip.le@gnupg.com</email>
</author>
<published>2026-07-29T09:28:36Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gnupg/commit/?id=74305fa7d79700eb5ec03ab575260d640430bc71'/>
<id>urn:sha1:74305fa7d79700eb5ec03ab575260d640430bc71</id>
<content type='text'>
* common/status.h (enum): Add new STATUS_SIGINFO.
* doc/DETAILS: Add description for new STATUS_SIGINFO.
* sm/verify.c (gpgsm_verify): Add signature creation time with
STATUS_SIGINFO for bad signatures.
--

Add the signature creation time with the new STATUS_SIGINFO. For now
this status line is only emitted after a BADSIG status line.

GnuPG-bug-id: 8364
Co-authored-by: Werner Koch &lt;wk@gnupg.org&gt;
</content>
</entry>
<entry>
<title>common: Prepare to get rid of map_w32_to_errno.</title>
<updated>2026-06-29T07:13:48Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2026-06-29T07:13:30Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gnupg/commit/?id=bf808091534f587e8cdacf351b0e7ba060165fd8'/>
<id>urn:sha1:bf808091534f587e8cdacf351b0e7ba060165fd8</id>
<content type='text'>
* common/sysutils.c (gnupg_w32_set_errno): Use gpgrt function if
  available.
</content>
</entry>
<entry>
<title>gpg: New options --show-session-hash and --show-only-session-hash.</title>
<updated>2026-04-23T09:12:10Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2026-04-23T09:11:52Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gnupg/commit/?id=ecd0f7afa1cf3f1c2ecf90be6ede329dfa082823'/>
<id>urn:sha1:ecd0f7afa1cf3f1c2ecf90be6ede329dfa082823</id>
<content type='text'>
* g10/options.h (opt): Add field show_session_hash.
* g10/gpg.c (oShowOnlySessionHash,oShowSessionHash): New.
(opts): Add options.
(main): Set flags.
* common/status.h (STATUS_SESSION_HASH): New.
* g10/decrypt-data.c (decrypt_data): Emit new status code. Make
  opt.show_only_session_key work for the new options.
</content>
</entry>
<entry>
<title>tools: Add option --in-place to gpg-authcode-sign.sh</title>
<updated>2026-03-10T14:25:18Z</updated>
<author>
<name>Werner Koch</name>
<email>wk@gnupg.org</email>
</author>
<published>2026-03-10T14:25:18Z</published>
<link rel='alternate' type='text/html' href='http://git.bktus.com/gpgfrontend/gnupg/commit/?id=05416a75d98cf9aee98f59c30583e003c6bb1ab1'/>
<id>urn:sha1:05416a75d98cf9aee98f59c30583e003c6bb1ab1</id>
<content type='text'>
--
</content>
</entry>
</feed>
