Package: gnupg2 / 2.2.27-2+deb11u2
Metadata
Package | Version | Patches format |
---|---|---|
gnupg2 | 2.2.27-2+deb11u2 | 3.0 (quilt) |
Patch series
view the series filePatch | File delta | Description |
---|---|---|
debian packaging/avoid beta warning.patch | (download) |
autogen.sh |
6 3 + 3 - 0 ! |
avoid-beta-warning avoid self-describing as a beta Using autoreconf against the source as distributed in tarball form invariably results in a package that thinks it's a "beta" package, which produces the "THIS IS A DEVELOPMENT VERSION" warning string. since we use dh_autoreconf, i need this patch to avoid producing builds that announce themselves as DEVELOPMENT VERSIONs. See discussion at: http://lists.gnupg.org/pipermail/gnupg-devel/2014-November/029065.html |
debian packaging/avoid regenerating defsincdate use shipped file.patch | (download) |
doc/Makefile.am |
9 0 + 9 - 0 ! |
avoid regenerating defsincdate (use shipped file) upstream ships doc/defsincdate in its tarballs. but doc/Makefile.am tries to rewrite doc/defsincdate if it notices that any of the files have been modified more recently, and it does so assuming that we're running from a git repo. However, we'd rather ship the documents cleanly without regenerating defsincdate -- we don't have a git repo available (debian builds from upstream tarballs) and any changes to the texinfo files (e.g. from |
block ptrace on secret daemons/Avoid simple memory dumps via ptrace.patch | (download) |
agent/gpg-agent.c |
8 8 + 0 - 0 ! |
avoid simple memory dumps via ptrace This avoids needing to setgid gpg-agent. It probably doesn't defend against all possible attacks, but it defends against one specific (and easy) one. If there are other protections we should do them too. This will make it slightly harder to debug the agent because the normal user won't be able to attach gdb to it directly while it runs. The remaining options for debugging are: * launch the agent from gdb directly * connect gdb to a running agent as the superuser Upstream bug: https://dev.gnupg.org/T1211 |
dirmngr idling/dirmngr hkp Avoid potential race condition when some.patch | (download) |
dirmngr/ks-engine-hkp.c |
23 10 + 13 - 0 ! |
dirmngr: hkp: avoid potential race condition when some hosts die. * dirmngr/ks-engine-hkp.c (select_random_host): Use atomic pass through the host table instead of risking out-of-bounds write. -- Multiple threads may write to hosttable[x]->dead while select_random_host() is running. For example, a housekeeping thread might clear the ->dead bit on some entries, or another connection to dirmngr might manually mark a host as alive. If one or more hosts are resurrected between the two loops over a given table in select_random_host(), then the allocation of tbl might not be large enough, resulting in a write past the end of tbl on the second loop. This change collapses the two loops into a single loop to avoid this discrepancy: each host's "dead" bit is now only checked once. As Werner points out, this isn't currently strictly necessary, since npth will not switch threads unless a blocking system call is made, and no blocking system call is made in these two loops. However, in a subsequent change in this series, we will call a function in this loop, and that function may sometimes write(2), or call other functions, which may themselves block. Keeping this as a single-pass loop avoids the need to keep track of what might block and what might not. Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net> |
dirmngr idling/dirmngr Avoid need for hkp housekeeping.patch | (download) |
dirmngr/dirmngr.c |
3 0 + 3 - 0 ! |
dirmngr: avoid need for hkp housekeeping. * dirmngr/ks-engine-hkp.c (host_is_alive): New function. Test whether host is alive and resurrects it if it has been dead long enough. (select_random_host, map_host, ks_hkp_mark_host): Use host_is_alive instead of testing hostinfo_t->dead directly. (ks_hkp_housekeeping): Remove function, no longer needed. * dirmngr/dirmngr.c (housekeeping_thread): Remove call to ks_hkp_housekeeping. -- Rather than resurrecting hosts upon scheduled resurrection times, test whether hosts should be resurrected as they're inspected for being dead. This removes the need for explicit housekeeping, and makes host resurrections happen "just in time", rather than being clustered on HOUSEKEEPING_INTERVAL seconds. According to 392e068e9f143d41f6350345619543cbcd47380f, dns_stuff_housekeeping only works on Windows, so it also isn't necessary in debian, but it remains in place for now. Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net> |
dirmngr idling/dirmngr Avoid automatically checking upstream swdb.patch | (download) |
dirmngr/dirmngr.c |
2 0 + 2 - 0 ! |
dirmngr: avoid automatically checking upstream swdb. * dirmngr/dirmngr.c (housekeeping_thread): Avoid automatically checking upstream's software database. In Debian, software updates should be handled by the distro mechanism, and additional upstream checks only confuse the user. * doc/dirmngr.texi: document that --allow-version-check does nothing. Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net> |
gpg agent idling/agent Create framework of scheduled timers.patch | (download) |
agent/gpg-agent.c |
84 57 + 27 - 0 ! |
agent: create framework of scheduled timers. agent/gpg-agent.c (handle_tick): Remove intermittent call to check_own_socket. (tv_is_set): Add inline helper function for readability. (handle_connections) Create general table of pending scheduled timeouts. -- handle_tick() does fine-grained, rapid activity. check_own_socket() |
gpg agent idling/agent Allow threads to interrupt main select loop wi.patch | (download) |
agent/agent.h |
1 1 + 0 - 0 ! |
agent: allow threads to interrupt main select loop with sigcont. * agent/gpg-agent.c (interrupt_main_thread_loop): New function on non-windows platforms, allows other threads to interrupt the main loop if there's something that the main loop might be interested in. -- For example, the main loop might be interested in changes in program state that affect the timers it expects to see. I don't know how to do this on Windows platforms, but i welcome any proposed improvements. Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net> |
gpg agent idling/agent Avoid tight timer tick when possible.patch | (download) |
agent/call-scd.c |
2 2 + 0 - 0 ! |
agent: avoid tight timer tick when possible. * agent/gpg-agent.c (need_tick): Evaluate whether the short-phase handle_tick() is needed. (handle_connections): On each cycle of the select loop, adjust whether we should call handle_tick() or not. (start_connection_thread_ssh, do_start_connection_thread): Signal the main loop when the child terminates. * agent/call-scd.c (start_scd): Call interrupt_main_thread_loop() once the scdaemon thread context has started up. -- With this change, an idle gpg-agent that has no scdaemon running only wakes up once a minute (to check_own_socket). Thanks to Ian Jackson and NIIBE Yutaka who helped me improve some of the blocking and corner cases. Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net> |
gpg agent idling/agent Avoid scheduled checks on socket when inotify .patch | (download) |
agent/gpg-agent.c |
2 2 + 0 - 0 ! |
agent: avoid scheduled checks on socket when inotify is working. * agent/gpg-agent.c (handle_connections): When inotify is working, we do not need to schedule a timer to evaluate whether we control our own socket or not. Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net> |
from master/gpg default to 3072 bit keys.patch | (download) |
agent/command.c |
2 1 + 1 - 0 ! |
gpg: default to 3072-bit keys. * agent/command.c (hlp_genkey): update help text to suggest the use of 3072 bits. * doc/wks.texi: Make example match default generation. * g10/keygen.c (gen_elg): update default from 2048 to 3072. * g10/keyid.c (pubkey_string): update comment so that first example is the default 3072-bit RSA. -- 3072-bit RSA is widely considered to be 128-bit-equivalent security. This is a sensible default in 2017. Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net> (cherry picked from commit 909fbca19678e6e36968607e8a2348381da39d8c) |
from master/gpg default to AES 256.patch | (download) |
g10/main.h |
4 3 + 1 - 0 ! |
gpg: default to aes-256. * g10/main.h (DEFAULT_CIPHER_ALGO): Prefer AES256 by default. -- It's 2017, and pretty much everyone has AES-256 available. Symmetric crypto is also rarely the bottleneck (asymmetric crypto is much more expensive). AES-256 provides some level of protection against large-scale decryption efforts, and longer key lengths provide a hedge against unforseen cryptanalysis. Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net> (cherry picked from commit 73ff075204df09db5248170a049f06498cdbb7aa) |
update defaults/gpg Default to SHA 512 for all signature types on RS.patch | (download) |
configure.ac |
2 1 + 1 - 0 ! |
gpg: default to sha-512 for all signature types on rsa keys. * g10/main.h (DEFAULT_DIGEST_ALGO): Use SHA512 instead of SHA256 in --gnupg mode (leave strict RFC and PGP modes alone). * configure.ac: Do not allow disabling sha512. * g10/misc.c (map_md_openpgp_to_gcry): Always support SHA512. -- SHA512 is more performant on most 64-bit platforms than SHA256, and offers a better security margin. It is also widely implemented. Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net> |
update defaults/gpg Prefer SHA 512 and SHA 384 in personal digest.patch | (download) |
g10/keygen.c |
10 5 + 5 - 0 ! |
gpg: prefer sha-512 and sha-384 in personal-digest-preferences. * g10/keygen.c (keygen_set_std_prefs): prefer SHA-512 and SHA-384 by default. -- In 8ede3ae29a39641a2f98ad9a4cf61ea99085a892, upstream changed the defaults for --default-preference-list to advertise a preference for SHA-512, without touching --personal-digest-preferences. This makes the same change for --personal-digest-preferences, since every modern OpenPGP library supports them all. Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net> |
import merge without userid/tests add test cases for import without uid.patch | (download) |
tests/openpgp/Makefile.am |
1 1 + 0 - 0 ! |
tests: add test cases for import without uid This commit adds a test case that does the following, in order: - Import of a primary key plus user id - Check that import of a subkey works, without a user id present in the imported key - Check that import of a subkey revocation works, without a user id or subkey binding signature present in the imported key - Check that import of a primary key revocation works, without a user id present in the imported key -- Note that this test currently fails. The following changesets will fix gpg so that the tests pass. GnuPG-Bug-id: 4393 Signed-Off-By: Daniel Kahn Gillmor <dkg@fifthhorseman.net> |
import merge without userid/gpg allow import of previously known keys even without UI.patch | (download) |
g10/import.c |
44 11 + 33 - 0 ! |
gpg: allow import of previously known keys, even without uids * g10/import.c (import_one): Accept an incoming OpenPGP certificate that has no user id, as long as we already have a local variant of the cert that matches the primary key. -- This fixes two of the three broken tests in import-incomplete.scm. GnuPG-Bug-id: 4393 Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net> |
import merge without userid/gpg accept subkeys with a good revocation but no self sig.patch | (download) |
g10/import.c |
1 1 + 0 - 0 ! |
gpg: accept subkeys with a good revocation but no self-sig during import * g10/import.c (chk_self_sigs): Set the NODE_GOOD_SELFSIG flag when we encounter a valid revocation signature. This allows import of subkey revocation signatures, even in the absence of a corresponding subkey binding signature. -- This fixes the remaining test in import-incomplete.scm. GnuPG-Bug-id: 4393 Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net> |
dirmngr Only use SKS pool CA for SKS pool.patch | (download) |
dirmngr/http.c |
2 1 + 1 - 0 ! |
dirmngr: only use sks pool ca for sks pool * dirmngr/http.c (http_session_new): when checking whether the keyserver is the HKPS pool, check specifically against the pool name, |
Use hkps keys.openpgp.org as the default keyserver.patch | (download) |
configure.ac |
2 1 + 1 - 0 ! |
use hkps://keys.openpgp.org as the default keyserver As of 2.2.17, GnuPG will refuse to accept any third-party certifications from OpenPGP certificates pulled from the keyserver network. The SKS keyserver network currently has at least a dozen popular certificates which are flooded with enough unusable third-party certifications that they cannot be retrieved in any reasonable amount of time. The hkps://keys.openpgp.org keyserver installation offers HKPS, performs cryptographic validation, and by policy does not distribute third-party certifications anyway. It is not distributed or federated yet, unfortunately, but it is functional, which is more than can be said for the dying SKS pool. And given that GnuPG is going to reject all the third-party certifications anyway, there is no clear "web of trust" rationale for relying on the SKS pool. One sticking point is that keys.openpgp.org does not distribute user IDs unless the user has proven control of the associated e-mail address. This means that on standard upstream GnuPG, retrieving revocations or subkey updates of those certificates will fail, because upstream GnuPG ignores any incoming certificate without a user ID, even if it knows a user ID in the local copy of the certificate (see https://dev.gnupg.org/T4393). However, we have three patches in debian/patches/import-merge-without-userid/ that together fix that bug. Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net> |
Make gpg zip use tar from PATH.patch | (download) |
tools/gpg-zip.in |
2 1 + 1 - 0 ! |
make gpg-zip use tar from $path Apparently there is no clean way to configure this from ./configure, and upstream is deprecating gpg-zip anyway. So just force-set tar to be manually "tar" (meaning, that we should look in the $PATH at runtime). See also https://dev.gnupg.org/T4251 and https://bugs.debian.org/913582 |
gpg drop import clean from default keyserver import optio.patch | (download) |
doc/gpg.texi |
2 1 + 1 - 0 ! |
gpg: drop import-clean from default keyserver import options * g10/gpg.c (main): drop IMPORT_CLEAN from the default opt.keyserver_options.import_options * doc/gpg.texi: reflect this change in the documentation Given that SELF_SIGS_ONLY is already set, it's not clear what additional benefit IMPORT_CLEAN provides. Furthermore, IMPORT_CLEAN means that receiving an OpenPGP certificate from a keyserver will potentially delete data that is otherwise held in the local keyring, which is surprising to users who expect retrieval from the keyservers to be purely additive. GnuPG-Bug-Id: 4628 Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net> |
from master/gpg change agent spawn 2019 07 24 v2.patch | (download) |
common/asshelp.c |
19 19 + 0 - 0 ! |
buildd: sbuild randomly fails to sign changes file despite valid signature keys |
cherry picked/1617856888.gnupg 2.3.0 4 gab66c4357.scd fix ccid driver for scm spr332 spr532.patch | (download) |
scd/ccid-driver.c |
14 13 + 1 - 0 ! |
scd: fix ccid driver for scm spr332/spr532 |
cherry picked/g10 Fix garbled status messages in NOTATION_DATA.patch | (download) |
g10/cpr.c |
13 4 + 9 - 0 ! |
g10: fix garbled status messages in notation_data * g10/cpr.c (write_status_text_and_buffer): Fix off-by-one -- Depending on the escaping and line wrapping the computed remaining buffer length could be wrong. Fixed by always using a break to terminate the escape detection loop. Might have happened for all status lines which may wrap. GnuPG-bug-id: T6027 (cherry picked from commit 34c649b3601383cd11dbc76221747ec16fd68e1b) |