From nathbappai at gmail.com Sat Oct 1 19:51:07 2022 From: nathbappai at gmail.com (Biswapriyo Nath) Date: Sat, 1 Oct 2022 23:21:07 +0530 Subject: [PATCH gnupg] Fix pointer to integer cast warnings in Windows platform In-Reply-To: References: Message-ID: Is it possible to review the patch please? Am I missing something which can prevent the review process? From wk at gnupg.org Tue Oct 4 15:42:54 2022 From: wk at gnupg.org (Werner Koch) Date: Tue, 04 Oct 2022 15:42:54 +0200 Subject: [PATCH gnupg] Fix pointer to integer cast warnings in Windows platform In-Reply-To: (Biswapriyo Nath via Gnupg-devel's message of "Sat, 1 Oct 2022 23:21:07 +0530") References: Message-ID: <877d1fd7s1.fsf@wheatstone.g10code.de> On Sat, 1 Oct 2022 23:21, Biswapriyo Nath said: > Is it possible to review the patch please? Am I missing something > which can prevent the review process? Casting warnings away is not a good idea. Further the uintptr_t is not available on all platforms. We keep the warnings as a reminder that we need to replace all kind of sockets/fds/streams by estream system objects. Shalom-Salam, Werner -- The pioneers of a warless world are the youth that refuse military service. - A. Einstein -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 227 bytes Desc: not available URL: From nathbappai at gmail.com Tue Oct 4 18:02:51 2022 From: nathbappai at gmail.com (Biswapriyo Nath) Date: Tue, 4 Oct 2022 21:32:51 +0530 Subject: [PATCH gnupg] Fix pointer to integer cast warnings in Windows platform In-Reply-To: <877d1fd7s1.fsf@wheatstone.g10code.de> References: <877d1fd7s1.fsf@wheatstone.g10code.de> Message-ID: > We keep the warnings as a reminder that we need to replace all kind of > sockets/fds/streams by estream system objects. With clang version 15, the pointer to integer conversion warnings are treated as errors by default[1]. That causes build failure with mingw clang toolchain. So, do you suggest to use `-Wno-int-conversion` compiler flag with all projects i.e. gnupg, gnutls etc. ? [1]: https://releases.llvm.org/15.0.0/tools/clang/docs/ReleaseNotes.html From gniibe at fsij.org Wed Oct 5 08:47:40 2022 From: gniibe at fsij.org (NIIBE Yutaka) Date: Wed, 05 Oct 2022 15:47:40 +0900 Subject: [PATCH gnupg] Fix pointer to integer cast warnings in Windows platform In-Reply-To: References: Message-ID: <87a66a6a2b.fsf@akagi.fsij.org> Hello, Biswapriyo Nath wrote: > Is it possible to review the patch please? Am I missing something > which can prevent the review process? I think that you assume that GnuPG is supported on Windows for 64-bit architecture. I don't think it's true. My understanding is that we need to fix problems, for Windows for 64-bit architecture. It seems for me that your changes basically to silence warnings, hiding the problems instead of fixing. For now, I can only comment two changes: diff --git a/agent/call-daemon.c b/agent/call-daemon.c index 0c36052..cb03f3a 100644 --- a/agent/call-daemon.c +++ b/agent/call-daemon.c @@ -472,7 +472,7 @@ daemon_start (enum daemon_type type, ctrl_t ctrl) #ifdef HAVE_W32_SYSTEM snprintf (buf, sizeof buf, "OPTION event-signal=%lx", - (unsigned long)get_agent_daemon_notify_event ()); + (unsigned long)(uintptr_t)get_agent_daemon_notify_event ()); #else snprintf (buf, sizeof buf, "OPTION event-signal=%d", SIGUSR2); #endif IIUC, you tried to silence the warning of -Wpointer-to-int-cast. If I fixed, I would fix the printing format and remove the cast. diff --git a/agent/call-pinentry.c b/agent/call-pinentry.c index c6c52be..aecdd6e 100644 --- a/agent/call-pinentry.c +++ b/agent/call-pinentry.c @@ -129,7 +129,7 @@ void agent_query_dump_state (void) { log_info ("agent_query_dump_state: entry_ctx=%p pid=%ld popup_tid=%p\n", - entry_ctx, (long)assuan_get_pid (entry_ctx), (void*)popup_tid); + entry_ctx, (long)assuan_get_pid (entry_ctx), (void*)(uintptr_t)popup_tid); } /* Called to make sure that a popup window owned by the current IIUC, you tried to silence the warning of -Wint-to-pointer-cast. I think that we would need to fix Npth API here, if we want to maximize clean use of Npth API between different systems. The fundamental problem is that the type "long" is not compatible to pointer on LLP64 system. Those problems will be fixed eventually, when GnuPG will be supported on Windows for 64-bit architecture. Today, I created: https://dev.gnupg.org/T6227 I have: https://dev.gnupg.org/T4655 https://dev.gnupg.org/T4656 -- From nathbappai at gmail.com Wed Oct 5 09:53:41 2022 From: nathbappai at gmail.com (Biswapriyo Nath) Date: Wed, 5 Oct 2022 13:23:41 +0530 Subject: [PATCH gnupg] Fix pointer to integer cast warnings in Windows platform In-Reply-To: <87a66a6a2b.fsf@akagi.fsij.org> References: <87a66a6a2b.fsf@akagi.fsij.org> Message-ID: I agree with your decision. The integer to pointer (and vice versa) conversion warnings are also present in other projects, gnutls, gpgme etc. I hope those will be fixed also. Thank you for working on this. From demiobenour at gmail.com Mon Oct 10 02:10:38 2022 From: demiobenour at gmail.com (Demi Marie Obenour) Date: Sun, 9 Oct 2022 20:10:38 -0400 Subject: [PATCH GnuPG] Disallow compressed signatures and certificates Message-ID: <68f59ec8-9c74-0345-1a69-ee22709e4c84@gmail.com> Compressed packets have significant attack surface, due to the potential for both denial of service (zip bombs and the like) and for code execution via memory corruption vulnerabilities in the decompressor. Furthermore, I am not aware of any implementation that uses them in keys or detached signatures. Therefore, disallow their use in such contexts entirely. This includes signatures that are part of a cleartext-signed message. When parsing detached signatures, forbid any packet that is not a signature or marker packet. When parsing keys, return an error when encountering a compressed packet, instead of decompressing the packet. When parsing a cleartext-signed message, the signature (and any data that follows it) is treated as a detached signature. Furthermore, certificates, keys, and signatures are not allowed to contain partial-length or indeterminate-length packets. Reject those in parse_packet, rather than activating the partial-length filter code. GnuPG-bug-id: T5993 Signed-off-by: Demi Marie Obenour --- g10/import.c | 18 ++---------------- g10/mainproc.c | 34 ++++++++++++++++++++++++++++++++-- g10/packet.h | 2 ++ g10/parse-packet.c | 44 +++++++++++++++++++++++++++++++++++++++++++- 4 files changed, 79 insertions(+), 19 deletions(-) diff --git a/g10/import.c b/g10/import.c index bb0bf67934a8316130cde182cd43d56353e0171d..a8136351f6f7dae8c65634ed8e1c242d323e2009 100644 --- a/g10/import.c +++ b/g10/import.c @@ -1042,22 +1042,8 @@ read_block( IOBUF a, unsigned int options, switch (pkt->pkttype) { case PKT_COMPRESSED: - if (check_compress_algo (pkt->pkt.compressed->algorithm)) - { - rc = GPG_ERR_COMPR_ALGO; - goto ready; - } - else - { - compress_filter_context_t *cfx = xmalloc_clear( sizeof *cfx ); - pkt->pkt.compressed->buf = NULL; - if (push_compress_filter2 (a, cfx, - pkt->pkt.compressed->algorithm, 1)) - xfree (cfx); /* e.g. in case of compression_algo NONE. */ - } - free_packet (pkt, &parsectx); - init_packet(pkt); - break; + rc = GPG_ERR_UNEXPECTED; + goto ready; case PKT_RING_TRUST: /* Skip those packets unless we are in restore mode. */ diff --git a/g10/mainproc.c b/g10/mainproc.c index f8f3c15bccf5e1507f1c4929004d56f70508c8ce..ccdbe57e7c846bad7dacabeab7d744c15989795c 100644 --- a/g10/mainproc.c +++ b/g10/mainproc.c @@ -105,6 +105,7 @@ struct mainproc_context has been seen. */ unsigned int data:1; /* Any data packet seen */ unsigned int uncompress_failed:1; + unsigned int in_cleartext:1; /* In cleartext of cleartext signature */ } any; }; @@ -170,6 +171,7 @@ add_onepass_sig (CTX c, PACKET *pkt) { kbnode_t node; + log_assert(!(c->sigs_only && c->signed_data.used)); if (c->list) /* Add another packet. */ add_kbnode (c->list, new_kbnode (pkt)); else /* Insert the first one. */ @@ -187,6 +189,7 @@ add_gpg_control (CTX c, PACKET *pkt) /* New clear text signature. * Process the last one and reset everything */ release_list(c); + c->any.in_cleartext = 1; } if (c->list) /* Add another packet. */ @@ -1118,8 +1121,16 @@ proc_compressed (CTX c, PACKET *pkt) int rc; /*printf("zip: compressed data packet\n");*/ - if (c->sigs_only) - rc = handle_compressed (c->ctrl, c, zd, proc_compressed_cb, c); + if ( literals_seen ) + { + log_error ("Compressed packet follows literal data packet\n"); + rc = gpg_error (GPG_ERR_BAD_DATA); + } + else if ( c->sigs_only ) + { + log_assert(!c->signed_data.used); + rc = handle_compressed (c->ctrl, c, zd, proc_compressed_cb, c); + } else if( c->encrypt_only ) rc = handle_compressed (c->ctrl, c, zd, proc_encrypt_cb, c); else @@ -1638,6 +1649,7 @@ do_proc_packets (CTX c, iobuf_t a) c->iobuf = a; init_packet(pkt); init_parse_packet (&parsectx, a); + parsectx.sigs_only = c->sigs_only && c->signed_data.used; while ((rc=parse_packet (&parsectx, pkt)) != -1) { any_data = 1; @@ -1649,9 +1661,24 @@ do_proc_packets (CTX c, iobuf_t a) if (gpg_err_code (rc) == GPG_ERR_INV_PACKET && opt.list_packets == 0) break; + + if (gpg_err_code (rc) == GPG_ERR_UNEXPECTED) + { + write_status_text( STATUS_UNEXPECTED, "0" ); + goto leave; + } continue; } newpkt = -1; + if (c->any.in_cleartext) + { + /* Just finished a clear-text signature's plaintext */ + if (pkt->pkttype != PKT_PLAINTEXT) + log_bug("Armor parser produced packet type %d where %d expected", + pkt->pkttype, PKT_PLAINTEXT); + c->any.in_cleartext = 0; + parsectx.sigs_only = 1; + } if (opt.list_packets) { switch (pkt->pkttype) @@ -1667,6 +1694,9 @@ do_proc_packets (CTX c, iobuf_t a) } else if (c->sigs_only) { + log_assert(pkt->pkttype == PKT_SIGNATURE || + pkt->pkttype == PKT_MARKER || + !c->signed_data.used); switch (pkt->pkttype) { case PKT_PUBLIC_KEY: diff --git a/g10/packet.h b/g10/packet.h index eeea9b450facad03188d4b87485b8fb25398f48d..6de0685b61e0098cc92f8ae0e98d897614a736fe 100644 --- a/g10/packet.h +++ b/g10/packet.h @@ -660,6 +660,7 @@ struct parse_packet_ctx_s int free_last_pkt; /* Indicates that LAST_PKT must be freed. */ int skip_meta; /* Skip ring trust packets. */ unsigned int n_parsed_packets; /* Number of parsed packets. */ + int sigs_only; /* Only accept detached signature packets */ }; typedef struct parse_packet_ctx_s *parse_packet_ctx_t; @@ -670,6 +671,7 @@ typedef struct parse_packet_ctx_s *parse_packet_ctx_t; (a)->free_last_pkt = 0; \ (a)->skip_meta = 0; \ (a)->n_parsed_packets = 0; \ + (a)->sigs_only = 0; \ } while (0) #define deinit_parse_packet(a) do { \ diff --git a/g10/parse-packet.c b/g10/parse-packet.c index b6aebbb693f4ab8dfbb6b3d8345726cc7f69dbb6..44b7edbddad6c75bdbe885c50a2a178030b76c95 100644 --- a/g10/parse-packet.c +++ b/g10/parse-packet.c @@ -738,6 +738,20 @@ parse (parse_packet_ctx_t ctx, PACKET *pkt, int onlykeypkts, off_t * retpos, case PKT_ENCRYPTED_MDC: case PKT_ENCRYPTED_AEAD: case PKT_COMPRESSED: + if (ctx->sigs_only) + { + log_error (_("partial length packet of type %d in detached" + " signature\n"), pkttype); + rc = gpg_error (GPG_ERR_INV_PACKET); + goto leave; + } + if (onlykeypkts) + { + log_error (_("partial length packet of type %d in keyring\n"), + pkttype); + rc = gpg_error (GPG_ERR_INV_PACKET); + goto leave; + } iobuf_set_partial_body_length_mode (inp, c & 0xff); pktlen = 0; /* To indicate partial length. */ partial = 1; @@ -775,6 +789,20 @@ parse (parse_packet_ctx_t ctx, PACKET *pkt, int onlykeypkts, off_t * retpos, rc = gpg_error (GPG_ERR_INV_PACKET); goto leave; } + if (ctx->sigs_only) + { + log_error (_("indeterminate length packet of type %d in detached" + " signature\n"), pkttype); + rc = gpg_error (GPG_ERR_INV_PACKET); + goto leave; + } + if (onlykeypkts) + { + log_error (_("indeterminate length packet of type %d in" + " keyring\n"), pkttype); + rc = gpg_error (GPG_ERR_INV_PACKET); + goto leave; + } } else { @@ -828,7 +856,21 @@ parse (parse_packet_ctx_t ctx, PACKET *pkt, int onlykeypkts, off_t * retpos, goto leave; } - if (with_uid && pkttype == PKT_USER_ID) + if (ctx->sigs_only) + switch (pkttype) + { + case PKT_SIGNATURE: + case PKT_MARKER: + break; + default: + log_error(_("Packet type %d not allowed in detached signature\n"), + pkttype); + iobuf_skip_rest (inp, pktlen, partial); + *skip = 1; + rc = gpg_error (GPG_ERR_BAD_DATA); + goto leave; + } + else if (with_uid && pkttype == PKT_USER_ID) /* If ONLYKEYPKTS is set to 2, then we never skip user id packets, even if DO_SKIP is set. */ ; -- 2.38.0 -------------- next part -------------- A non-text attachment was scrubbed... Name: OpenPGP_0xB288B55FFF9C22C1.asc Type: application/pgp-keys Size: 4885 bytes Desc: OpenPGP public key URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: OpenPGP_signature Type: application/pgp-signature Size: 833 bytes Desc: OpenPGP digital signature URL: From demiobenour at gmail.com Mon Oct 10 02:12:49 2022 From: demiobenour at gmail.com (Demi Marie Obenour) Date: Sun, 9 Oct 2022 20:12:49 -0400 Subject: [PATCH GnuPG] Disallow compressed signatures and certificates Message-ID: Compressed packets have significant attack surface, due to the potential for both denial of service (zip bombs and the like) and for code execution via memory corruption vulnerabilities in the decompressor. Furthermore, I am not aware of any implementation that uses them in keys or detached signatures. Therefore, disallow their use in such contexts entirely. This includes signatures that are part of a cleartext-signed message. When parsing detached signatures, forbid any packet that is not a signature or marker packet. When parsing keys, return an error when encountering a compressed packet, instead of decompressing the packet. When parsing a cleartext-signed message, the signature (and any data that follows it) is treated as a detached signature. Furthermore, certificates, keys, and signatures are not allowed to contain partial-length or indeterminate-length packets. Reject those in parse_packet, rather than activating the partial-length filter code. GnuPG-bug-id: T5993 Signed-off-by: Demi Marie Obenour --- g10/import.c | 18 ++---------------- g10/mainproc.c | 34 ++++++++++++++++++++++++++++++++-- g10/packet.h | 2 ++ g10/parse-packet.c | 44 +++++++++++++++++++++++++++++++++++++++++++- 4 files changed, 79 insertions(+), 19 deletions(-) diff --git a/g10/import.c b/g10/import.c index bb0bf67934a8316130cde182cd43d56353e0171d..a8136351f6f7dae8c65634ed8e1c242d323e2009 100644 --- a/g10/import.c +++ b/g10/import.c @@ -1042,22 +1042,8 @@ read_block( IOBUF a, unsigned int options, switch (pkt->pkttype) { case PKT_COMPRESSED: - if (check_compress_algo (pkt->pkt.compressed->algorithm)) - { - rc = GPG_ERR_COMPR_ALGO; - goto ready; - } - else - { - compress_filter_context_t *cfx = xmalloc_clear( sizeof *cfx ); - pkt->pkt.compressed->buf = NULL; - if (push_compress_filter2 (a, cfx, - pkt->pkt.compressed->algorithm, 1)) - xfree (cfx); /* e.g. in case of compression_algo NONE. */ - } - free_packet (pkt, &parsectx); - init_packet(pkt); - break; + rc = GPG_ERR_UNEXPECTED; + goto ready; case PKT_RING_TRUST: /* Skip those packets unless we are in restore mode. */ diff --git a/g10/mainproc.c b/g10/mainproc.c index f8f3c15bccf5e1507f1c4929004d56f70508c8ce..ccdbe57e7c846bad7dacabeab7d744c15989795c 100644 --- a/g10/mainproc.c +++ b/g10/mainproc.c @@ -105,6 +105,7 @@ struct mainproc_context has been seen. */ unsigned int data:1; /* Any data packet seen */ unsigned int uncompress_failed:1; + unsigned int in_cleartext:1; /* In cleartext of cleartext signature */ } any; }; @@ -170,6 +171,7 @@ add_onepass_sig (CTX c, PACKET *pkt) { kbnode_t node; + log_assert(!(c->sigs_only && c->signed_data.used)); if (c->list) /* Add another packet. */ add_kbnode (c->list, new_kbnode (pkt)); else /* Insert the first one. */ @@ -187,6 +189,7 @@ add_gpg_control (CTX c, PACKET *pkt) /* New clear text signature. * Process the last one and reset everything */ release_list(c); + c->any.in_cleartext = 1; } if (c->list) /* Add another packet. */ @@ -1118,8 +1121,16 @@ proc_compressed (CTX c, PACKET *pkt) int rc; /*printf("zip: compressed data packet\n");*/ - if (c->sigs_only) - rc = handle_compressed (c->ctrl, c, zd, proc_compressed_cb, c); + if ( literals_seen ) + { + log_error ("Compressed packet follows literal data packet\n"); + rc = gpg_error (GPG_ERR_BAD_DATA); + } + else if ( c->sigs_only ) + { + log_assert(!c->signed_data.used); + rc = handle_compressed (c->ctrl, c, zd, proc_compressed_cb, c); + } else if( c->encrypt_only ) rc = handle_compressed (c->ctrl, c, zd, proc_encrypt_cb, c); else @@ -1638,6 +1649,7 @@ do_proc_packets (CTX c, iobuf_t a) c->iobuf = a; init_packet(pkt); init_parse_packet (&parsectx, a); + parsectx.sigs_only = c->sigs_only && c->signed_data.used; while ((rc=parse_packet (&parsectx, pkt)) != -1) { any_data = 1; @@ -1649,9 +1661,24 @@ do_proc_packets (CTX c, iobuf_t a) if (gpg_err_code (rc) == GPG_ERR_INV_PACKET && opt.list_packets == 0) break; + + if (gpg_err_code (rc) == GPG_ERR_UNEXPECTED) + { + write_status_text( STATUS_UNEXPECTED, "0" ); + goto leave; + } continue; } newpkt = -1; + if (c->any.in_cleartext) + { + /* Just finished a clear-text signature's plaintext */ + if (pkt->pkttype != PKT_PLAINTEXT) + log_bug("Armor parser produced packet type %d where %d expected", + pkt->pkttype, PKT_PLAINTEXT); + c->any.in_cleartext = 0; + parsectx.sigs_only = 1; + } if (opt.list_packets) { switch (pkt->pkttype) @@ -1667,6 +1694,9 @@ do_proc_packets (CTX c, iobuf_t a) } else if (c->sigs_only) { + log_assert(pkt->pkttype == PKT_SIGNATURE || + pkt->pkttype == PKT_MARKER || + !c->signed_data.used); switch (pkt->pkttype) { case PKT_PUBLIC_KEY: diff --git a/g10/packet.h b/g10/packet.h index eeea9b450facad03188d4b87485b8fb25398f48d..6de0685b61e0098cc92f8ae0e98d897614a736fe 100644 --- a/g10/packet.h +++ b/g10/packet.h @@ -660,6 +660,7 @@ struct parse_packet_ctx_s int free_last_pkt; /* Indicates that LAST_PKT must be freed. */ int skip_meta; /* Skip ring trust packets. */ unsigned int n_parsed_packets; /* Number of parsed packets. */ + int sigs_only; /* Only accept detached signature packets */ }; typedef struct parse_packet_ctx_s *parse_packet_ctx_t; @@ -670,6 +671,7 @@ typedef struct parse_packet_ctx_s *parse_packet_ctx_t; (a)->free_last_pkt = 0; \ (a)->skip_meta = 0; \ (a)->n_parsed_packets = 0; \ + (a)->sigs_only = 0; \ } while (0) #define deinit_parse_packet(a) do { \ diff --git a/g10/parse-packet.c b/g10/parse-packet.c index b6aebbb693f4ab8dfbb6b3d8345726cc7f69dbb6..44b7edbddad6c75bdbe885c50a2a178030b76c95 100644 --- a/g10/parse-packet.c +++ b/g10/parse-packet.c @@ -738,6 +738,20 @@ parse (parse_packet_ctx_t ctx, PACKET *pkt, int onlykeypkts, off_t * retpos, case PKT_ENCRYPTED_MDC: case PKT_ENCRYPTED_AEAD: case PKT_COMPRESSED: + if (ctx->sigs_only) + { + log_error (_("partial length packet of type %d in detached" + " signature\n"), pkttype); + rc = gpg_error (GPG_ERR_INV_PACKET); + goto leave; + } + if (onlykeypkts) + { + log_error (_("partial length packet of type %d in keyring\n"), + pkttype); + rc = gpg_error (GPG_ERR_INV_PACKET); + goto leave; + } iobuf_set_partial_body_length_mode (inp, c & 0xff); pktlen = 0; /* To indicate partial length. */ partial = 1; @@ -775,6 +789,20 @@ parse (parse_packet_ctx_t ctx, PACKET *pkt, int onlykeypkts, off_t * retpos, rc = gpg_error (GPG_ERR_INV_PACKET); goto leave; } + if (ctx->sigs_only) + { + log_error (_("indeterminate length packet of type %d in detached" + " signature\n"), pkttype); + rc = gpg_error (GPG_ERR_INV_PACKET); + goto leave; + } + if (onlykeypkts) + { + log_error (_("indeterminate length packet of type %d in" + " keyring\n"), pkttype); + rc = gpg_error (GPG_ERR_INV_PACKET); + goto leave; + } } else { @@ -828,7 +856,21 @@ parse (parse_packet_ctx_t ctx, PACKET *pkt, int onlykeypkts, off_t * retpos, goto leave; } - if (with_uid && pkttype == PKT_USER_ID) + if (ctx->sigs_only) + switch (pkttype) + { + case PKT_SIGNATURE: + case PKT_MARKER: + break; + default: + log_error(_("Packet type %d not allowed in detached signature\n"), + pkttype); + iobuf_skip_rest (inp, pktlen, partial); + *skip = 1; + rc = gpg_error (GPG_ERR_BAD_DATA); + goto leave; + } + else if (with_uid && pkttype == PKT_USER_ID) /* If ONLYKEYPKTS is set to 2, then we never skip user id packets, even if DO_SKIP is set. */ ; -- 2.38.0 From vkrause at kde.org Mon Oct 10 17:44:38 2022 From: vkrause at kde.org (Volker Krause) Date: Mon, 10 Oct 2022 17:44:38 +0200 Subject: [PATCH gpgme] Qt 6 build fixes Message-ID: <4761567.GXAFRqVoOG@vkpc5> Hi, the attached patch fixes building with Qt 6 here, at least as far as the C++ code is concerned, there is still the remaining issue of the build system not supporting that yet of course. Regards, Volker -------------- next part -------------- A non-text attachment was scrubbed... Name: qt6-build-fixes.patch Type: text/x-patch Size: 5798 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 195 bytes Desc: This is a digitally signed message part. URL: From vkrause at kde.org Mon Oct 10 17:35:34 2022 From: vkrause at kde.org (Volker Krause) Date: Mon, 10 Oct 2022 17:35:34 +0200 Subject: DCO Message-ID: <5880932.lOV4Wx5bFT@vkpc5> GPGME Developer's Certificate of Origin. Version 1.0 ===================================================== By making a contribution to the GPGME project, I certify that: (a) The contribution was created in whole or in part by me and I have the right to submit it under the free software license indicated in the file; or (b) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate free software license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same free software license (unless I am permitted to submit under a different license), as indicated in the file; or (c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it. (d) I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the free software license(s) involved. Signed-off-by: Volker Krause -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 195 bytes Desc: This is a digitally signed message part. URL: From kloecker at kde.org Mon Oct 10 19:20:15 2022 From: kloecker at kde.org (Ingo =?ISO-8859-1?Q?Kl=F6cker?=) Date: Mon, 10 Oct 2022 19:20:15 +0200 Subject: [PATCH gpgme] Qt 6 build fixes In-Reply-To: <4761567.GXAFRqVoOG@vkpc5> References: <4761567.GXAFRqVoOG@vkpc5> Message-ID: <10162367.nUPlyArG6x@daneel> Hi Volker, On Montag, 10. Oktober 2022 17:44:38 CEST Volker Krause wrote: > the attached patch fixes building with Qt 6 here, at least as far as the C++ > code is concerned, there is still the remaining issue of the build system > not supporting that yet of course. Thanks. I also saw this today. I fixed the build with Qt 6 by removing the unused struct. It was used in an ancient old implementation of the config class. FWIW, I have built qgpgme (including the tests) successfully with Qt 6.4. I decided to build either against Qt 5 (the default) or Qt 6 (if requested explicitly or if only Qt 6 is found). Regards, Ingo -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 228 bytes Desc: This is a digitally signed message part. URL: From wk at gnupg.org Mon Oct 17 09:43:56 2022 From: wk at gnupg.org (Werner Koch) Date: Mon, 17 Oct 2022 09:43:56 +0200 Subject: [Announce] [CVE-2022-3515] GnuPG / Libksba Security Advisory Message-ID: <87v8oievyb.fsf@wheatstone.g10code.de> __________________________________________________ SECURITY ADVISORY FOR LIBKSBA/GNUPG (CVE-2022-3515) g10 Code GmbH __________________________________________________ 2022-10-17 Integer Overflow in LibKSBA / GnuPG =================================== A severe bug has been found in [Libksba] , the library used by GnuPG for parsing the ASN.1 structures as used by S/MIME. The bug affects all versions of [Libksba] before 1.6.2 and may be used for remote code execution. *Updating this library is thus important*. Who is affected ~~~~~~~~~~~~~~~ The major user of Libksba is /gpgsm/, the S/MIME cousin of /gpg/. There it is used to parse all kind of input data, in particular signed or encrypted data in files or in mails. Feeding a user with malicious data can thus be easily achieved. A second user of Libksba is /dirmngr/, which is responsible for loading and parsing Certificate Revocation Lists (CRLs) and for verifying certificates used by TLS (i.e. https connections). Mounting an attack is a bit more complex but can anyway be easily done using a rogue web server to serve a Web Key Directory, certificates, or CRLs. An exploit is not yet publicly known but very straightforward to create for experienced crooks. Affected to our knowledge are: - Most software using /Libksba/ versions up to 1.6.1 - All /Gpg4win/ versions from version 2.0.0 up to 4.0.3 - All /GnuPG VS-Desktop/ versions from 3.1.16 up to 3.1.24 - All /GnuPG installers for Windows/ from version 2.3.0 up to 2.3.7 - All /GnuPG LTS installers for Windows/ from version 2.1.0 up to 2.2.39 How to fix ~~~~~~~~~~ If you are on a Unix or Linux system you should get the latest version of Libksba (1.6.2 or newer), build the software and install the new shared library. Restart any background processes (e.g. `gpgconf --kill all' for GnuPG). In the rare case that Libksba is statically linked remember to rebuild those binaries. If your are on Windows or if you use an AppImage of GnuPG VS-Desktop update to the latest version: - Gpgwin version 4.0.4 or newer - GnuPG VS-Desktop version 3.1.25 or newer (MSI or AppImage) - GnuPG installer for Windows version 2.3.8 - GnuPG LTS installer for Windows version 2.2.40 In case you are not yet ready to deploy a new version, please extract `libksba-8.dll' from the respective package and replace the original one by this one. This is sufficient to fix the security issue. See https://gnupg.org/download for links to the latest packages. For Gpg4win see https://gpg4win.org How to check whether GnuPG has been fixed ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ GnuPG is the most prominent user of Libksba and it is not immediately visible whether a fixed version of Libksba is used. To check this run: ,---- | gpgconf --show-versions `---- and watch out for a line like ,---- | * KSBA 1.6.2 (xxxxx) `---- If you see a version number of 1.6.2 or newer, you got the fix. CVE ~~~ GnuPG-bug-id: 6230 (https://dev.gnupg.org/T6230) CVE ........: CVE-2022-3515 CVSS .......: 8.1: AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H Other-IDs ..: ZDI-CAN-18927, ZDI-CAN-18928, ZDI-CAN-18927 CVSS taken from the Trend Micro Zero Day Initiative report. Technical background ==================== The task of Libksba is to parse and build ASN.1 objects as used by S/MIME, X.509, and CMS. The used encoding (BER, DER) is based on tag-length-value objects. The function /_ksba_ber_read_tl/ parses such data and returns the tag and associated information in this structure: ,---- | struct tag_info { | enum tag_class class; | int is_constructed; | unsigned long tag; | unsigned long length; /* Length part of the TLV */ | int ndef; /* It is an indefinite length */ | size_t nhdr; /* Number of bytes in the TL */ | unsigned char buf[10]; /* Buffer for the TL */ | const char *err_string; | int non_der; | }; `---- At several places we need to copy the objects to a local buffer. For example we copy OIDs to a statically encoded buffer for further processing: ,---- | struct tag_info ti; | unsigned char tmpbuf[500]; /* for OID or algorithmIdentifier */ | [...] | if (ti.nhdr + ti.length >= DIM(tmpbuf)) | return gpg_error (GPG_ERR_TOO_LARGE); | memcpy (tmpbuf, ti.buf, ti.nhdr); | err = read_buffer (crl->reader, tmpbuf+ti.nhdr, ti.length); `---- It is obvious that the sum of the header length (although less than 10 bytes) and the announced length of the value can easily wrap around and pass the check. The result is then an overflow of /tmpbuf/ with all the usual consequences. The code has been there for ages and it seems that the audits missed this because, well, there is some overflow check and a too brief check may have only noticed that the memcpy if fine. The fix for this is easy because we can check for an overflow right away in the parser. Thus /_ksba_ber_read_tl/ finally does this extra check: ,---- | if (ti->length > ti->nhdr && (ti->nhdr + ti->length) < ti->length) | { | ti->err_string = "header+length would overflow"; | return gpg_error (GPG_ERR_EOVERFLOW); | } `---- Thanks ~~~~~~ This vulnerability was discovered by: Anonymous working with Trend Micro Zero Day Initiative The report was received on 2022-10-04, fix pushed 2022-10-05, new source code release 2002-10-07, binary releases and announcement on 2022-10-17. [Libksba] https://gnupg.org/software/libksba/ -- The pioneers of a warless world are the youth that refuse military service. - A. Einstein -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 227 bytes Desc: not available URL: -------------- next part -------------- _______________________________________________ Gnupg-announce mailing list Gnupg-announce at gnupg.org http://lists.gnupg.org/mailman/listinfo/gnupg-announce From wk at gnupg.org Mon Oct 17 14:58:22 2022 From: wk at gnupg.org (Werner Koch) Date: Mon, 17 Oct 2022 14:58:22 +0200 Subject: [Announce] GnuPG 2.3.8 released Message-ID: <87h702ehe9.fsf@wheatstone.g10code.de> Hello! We are pleased to announce the availability of a new stable GnuPG release: version 2.3.8. This release comes with a lot of new features and the binary releases come with the fix for the Libksba vulnerability CVE-2022-3515 (https://gnupg.org/blog/20221017-pepe-left-the-ksba.html). What is GnuPG ============= The GNU Privacy Guard (GnuPG, GPG) is a complete and free implementation of the OpenPGP and S/MIME standards. GnuPG allows to encrypt and sign data and communication, features a versatile key management system as well as access modules for public key directories. GnuPG itself is a command line tool with features for easy integration with other applications. The separate library GPGME provides a uniform API to use the GnuPG engine by software written in common programming languages. A wealth of frontend applications and libraries making use of GnuPG are available. As an universal crypto engine GnuPG provides support for S/MIME and Secure Shell in addition to OpenPGP. GnuPG is Free Software (meaning that it respects your freedom). It can be freely used, modified and distributed under the terms of the GNU General Public License. Three different series of GnuPG are actively maintained: - Version 2.3 is the current stable version with a lot of new features compared to 2.2. This announcement is about the latest release of this series. - Version 2.2 is our LTS (long term support) version and guaranteed to be maintained at least until the end of 2024. Only a small subset of features from 2.3 has been back-ported to this series. See https://gnupg.org/download/index.html#end-of-life - Version 1.4 is only maintained to allow decryption of very old data which is, for security reasons, not anymore possible with other GnuPG versions. Noteworthy changes in version 2.3.8 =================================== * gpg: Do not consider unknown public keys as non-compliant while decrypting. [T6205] * gpg: Avoid to emit a compliance mode line if Libgcrypt is non-compliant. [T6221] * gpg: Improve --edit-key setpref command to ease c+p. [rG1908fa8b83] * gpg: Emit an ERROR status if --quick-set-primary-uid fails and allow to pass the user ID by hash. [T6126] * gpg: Actually show symmetric+pubkey encrypted data as de-vs compliant. Add extra compliance checks for symkey_enc packets. [T6119] * gpg: In de-vs mode use SHA-256 instead of SHA-1 as implicit preference. [T6043] * gpgsm: Fix reporting of bad passphrase error during PKCS#11 import. [T5713,T6037] * agent: Fix a regression in "READKEY --format=ssh". [T6012] * agent: New option --need-attr for KEYINFO. [rG989eae648c] * agent: New attribute "Remote-list" for use by KEYINFO. [r1383aa4750] * scd: Fix problem with Yubikey 5.4 firmware. [T6070] * dirmngr: Fix CRL Distribution Point fallback to other schemes. [rG0c8299e2b5] * dirmngr: New LDAP server flag "areconly" (A-record-only). [rGd65a0335e5] * dirmngr: Fix upload of multiple keys for an LDAP server specified using the colon format. [rG536b5cd663] * dirmngr: Use LDAP schema v2 when a Base DN is specified. [T6047] * dirmngr: Avoid caching expired certificates. [T6142] * wkd: Fix path traversal attack in gpg-wks-server. Add the mail address to the pending request data. [rG8a63a8c825,T6098] * wkd: New command --mirror for gpg-wks-client. [T6224] * gpg-auth: New tool for authentication. [T5862] * New common.conf option no-autostart. [rG203dcc19eb] * Silence warnings from AllowSetForegroundWindow unless GNUPG_EXEC_DEBUG_FLAGS is used. [rG4ef8516a79] Release-info: https://dev.gnupg.org/T6106 Getting the Software ==================== Please follow the instructions found at or read on: GnuPG may be downloaded from one of the GnuPG mirror sites or direct from its primary FTP server. The list of mirrors can be found at . Note that GnuPG is not available at ftp.gnu.org. The GnuPG source code compressed using BZIP2 and its OpenPGP signature are available here: https://gnupg.org/ftp/gcrypt/gnupg/gnupg-2.3.8.tar.bz2 (7465k) https://gnupg.org/ftp/gcrypt/gnupg/gnupg-2.3.8.tar.bz2.sig An installer for Windows without any graphical frontend except for a very minimal Pinentry tool is available here: https://gnupg.org/ftp/gcrypt/binary/gnupg-w32-2.3.8_20221013.exe (4797k) https://gnupg.org/ftp/gcrypt/binary/gnupg-w32-2.3.8_20221013.exe.sig The source used to build the Windows installer can be found in the same directory with a ".tar.xz" suffix. A new release of Gpg4win (version 4.0.4) including this version of GnuPG is available at https://gpg4win.org We will shortly announce a Linux AppImage of this version featuring Kleopatra as graphical user interface. Checking the Integrity ====================== In order to check that the version of GnuPG which you are going to install is an original and unmodified one, you can do it in one of the following ways: * If you already have a version of GnuPG installed, you can simply verify the supplied signature. For example to verify the signature of the file gnupg-2.3.8.tar.bz2 you would use this command: gpg --verify gnupg-2.3.8.tar.bz2.sig gnupg-2.3.8.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 gnupg-2.3.8.tar.bz2, you run the command like this: sha1sum gnupg-2.3.8.tar.bz2 and check that the output matches the next line: 1f31b7b4c9c9adad97f94ea3acf1aa64c0424bcc gnupg-2.3.8.tar.bz2 014aa20eb1ac677736d0c2e056adc55304e12679 gnupg-w32-2.3.8_20221013.tar.xz 6cfabadbaf15a27988a11e811e9eabb20077b4ff gnupg-w32-2.3.8_20221013.exe Internationalization ==================== This version of GnuPG has support for 26 languages with Chinese (traditional and simplified), Czech, French, German, Italian, Japanese, Norwegian, Polish, Russian, Turkish, and Ukrainian being almost completely translated. Documentation and Support ========================= The file gnupg.info has the complete reference manual of the system. Separate man pages are included as well but they miss some of the details available only in the manual. The manual is also available online at https://gnupg.org/documentation/manuals/gnupg/ or can be downloaded as PDF at https://gnupg.org/documentation/manuals/gnupg.pdf You may also want to search the GnuPG mailing list archives or ask on the gnupg-users mailing list for advise on how to solve problems. Most of the new features are around for several years and thus enough public experience is available. https://wiki.gnupg.org has user contributed information around GnuPG and relate software. In case of build problems specific to this release please first check https://dev.gnupg.org/T6106 for updated information. Please consult the archive of the gnupg-users 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. If you are a developer and you need a certain feature for your project, please do not hesitate to bring it to the gnupg-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. Three full-time employed developers as well as two contractors exclusively work on GnuPG and closely related software like Libgcrypt, GPGME 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 trademark 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 GnuPG 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 four 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: signature.asc Type: application/pgp-signature Size: 227 bytes Desc: not available URL: -------------- next part -------------- _______________________________________________ Gnupg-announce mailing list Gnupg-announce at gnupg.org http://lists.gnupg.org/mailman/listinfo/gnupg-announce From ralph at ml.seichter.de Tue Oct 18 08:51:26 2022 From: ralph at ml.seichter.de (Ralph Seichter) Date: Tue, 18 Oct 2022 08:51:26 +0200 Subject: [Announce] GnuPG for OS X 2.3.8 released Message-ID: <87o7u98w0h.fsf@ra.horus-it.com> GnuPG for OS X / macOS release 2.3.8 is now available for download via https://sourceforge.net/p/gpgosx/docu/Download/ . The disk image signature key was uploaded to keyservers in July 2022 and should now be widely available. It can also be downloaded using the URL https://www.seichter.de/pgp/gpgosx-signing.asc . pub ed25519/FD56297D9833FF7F 2022-07-07 [SC] [expires: 2027-07-06] Key fingerprint = EAB0 FE4F F793 D9E7 028E C8E2 FD56 297D 9833 FF7F uid [ultimate] Ralph Seichter (GnuPG for OS X signing key) Important: GnuPG 2.3.x is installed in /usr/local/gnupg-2.3 instead of the previously hardcoded directory /usr/local/gnupg-2.2. This enables installing both stable and LTS releases of GnuPG for OS X side by side, for advanced users' needs. The one caveat is that the latest installation will replace existing soft links in /usr/local/{bin,lib}. Please use absolute paths like /usr/local/gnupg-2.2/bin/gpg2 if necessary. -Ralph From mario.haustein at hrz.tu-chemnitz.de Wed Oct 19 14:30:51 2022 From: mario.haustein at hrz.tu-chemnitz.de (Mario Haustein) Date: Wed, 19 Oct 2022 14:30:51 +0200 Subject: [PATCH gnupg] po: Fix indentation for key generation options Message-ID: <20221019123051.16588-1-mario.haustein@hrz.tu-chemnitz.de> Signed-off-by: Mario Haustein --- po/ca.po | 10 +++++----- po/da.po | 10 +++++----- po/de.po | 6 +++--- po/el.po | 12 ++++++------ po/eo.po | 12 ++++++------ po/es.po | 8 ++++---- po/et.po | 12 ++++++------ po/fi.po | 12 ++++++------ po/fr.po | 2 +- po/gl.po | 12 ++++++------ po/hu.po | 12 ++++++------ po/id.po | 36 ++++++++++++++++++------------------ po/it.po | 6 +++--- po/nb.po | 2 +- po/pl.po | 8 ++++---- po/pt.po | 12 ++++++------ po/ro.po | 6 +++--- po/sk.po | 12 ++++++------ po/sv.po | 10 +++++----- po/uk.po | 4 ++-- po/zh_TW.po | 10 +++++----- 21 files changed, 107 insertions(+), 107 deletions(-) diff --git a/po/ca.po b/po/ca.po index 116efbd98..04d9c24cc 100644 --- a/po/ca.po +++ b/po/ca.po @@ -4493,24 +4493,24 @@ msgstr " (predeterminat)" #, fuzzy, c-format #| msgid " (%d) DSA (sign only)\n" msgid " (%d) ECC (sign only)\n" -msgstr " (%d) DSA (nom?s signar)\n" +msgstr " (%d) DSA (nom?s signar)\n" #, fuzzy, c-format msgid " (%d) ECC (set your own capabilities)%s\n" -msgstr " (%d) DSA (nom?s signar)\n" +msgstr " (%d) DSA (nom?s signar)\n" #, fuzzy, c-format #| msgid " (%d) RSA (encrypt only)\n" msgid " (%d) ECC (encrypt only)%s\n" -msgstr " (%d) RSA (nom?s xifrar)\n" +msgstr " (%d) RSA (nom?s xifrar)\n" #, fuzzy, c-format msgid " (%d) Existing key%s\n" -msgstr " (%d) RSA (nom?s xifrar)\n" +msgstr " (%d) RSA (nom?s xifrar)\n" #, fuzzy, c-format msgid " (%d) Existing key from card%s\n" -msgstr " (%d) RSA (nom?s xifrar)\n" +msgstr " (%d) RSA (nom?s xifrar)\n" #, fuzzy msgid "Enter the keygrip: " diff --git a/po/da.po b/po/da.po index f7ccaf618..4d7385898 100644 --- a/po/da.po +++ b/po/da.po @@ -4507,27 +4507,27 @@ msgstr "" #, fuzzy, c-format #| msgid " (%d) DSA (sign only)\n" msgid " (%d) ECC (sign only)\n" -msgstr " (%d) DSA (kun underskriv)\n" +msgstr " (%d) DSA (kun underskriv)\n" #, fuzzy, c-format #| msgid " (%d) DSA (set your own capabilities)\n" msgid " (%d) ECC (set your own capabilities)%s\n" -msgstr " (%d) DSA (angiv dine egne evner)\n" +msgstr " (%d) DSA (angiv dine egne evner)\n" #, fuzzy, c-format #| msgid " (%d) RSA (encrypt only)\n" msgid " (%d) ECC (encrypt only)%s\n" -msgstr " (%d) RSA (kun krypter)\n" +msgstr " (%d) RSA (kun krypter)\n" #, fuzzy, c-format #| msgid " (%d) Existing key\n" msgid " (%d) Existing key%s\n" -msgstr " (%d) Eksisterende n?gle\n" +msgstr " (%d) Eksisterende n?gle\n" #, fuzzy, c-format #| msgid " (%d) Existing key from card\n" msgid " (%d) Existing key from card%s\n" -msgstr " (%d) Eksisterende n?gle fra kort\n" +msgstr " (%d) Eksisterende n?gle fra kort\n" # key grip # chiefly ( US ) See also grip the person in charge of moving and setting up camera diff --git a/po/de.po b/po/de.po index d99de2afe..93e8bdd4c 100644 --- a/po/de.po +++ b/po/de.po @@ -4211,11 +4211,11 @@ msgstr " (%d) ECC (nur verschl?sseln)%s\n" #, c-format msgid " (%d) Existing key%s\n" -msgstr " (%d) Vorhandener Schl?ssel%s\n" +msgstr " (%d) Vorhandener Schl?ssel%s\n" #, c-format msgid " (%d) Existing key from card%s\n" -msgstr " (%d) Vorhandener Schl?ssel auf der Karte%s\n" +msgstr " (%d) Vorhandener Schl?ssel auf der Karte%s\n" msgid "Enter the keygrip: " msgstr "Geben Sie den \"Keygrip\" ein: " @@ -9352,7 +9352,7 @@ msgstr "Verwaltung der Kommandohistorie" #~ msgstr "Werte das Vertrauen zu Signaturen durch g?ltige PKA-Daten auf" #~ msgid " (%d) ECC and ECC\n" -#~ msgstr " (%d) ECC und ECC\n" +#~ msgstr " (%d) ECC und ECC\n" #~ msgid "honor the PKA record set on a key when retrieving keys" #~ msgstr "Die im Schl?ssel enthaltenen PKA-Daten beim Schl?sselholen beachten" diff --git a/po/el.po b/po/el.po index 746805e11..6d1ca4c6e 100644 --- a/po/el.po +++ b/po/el.po @@ -4392,24 +4392,24 @@ msgstr " (??????????????)" #, fuzzy, c-format #| msgid " (%d) DSA (sign only)\n" msgid " (%d) ECC (sign only)\n" -msgstr " (%d) DSA (??? ???????? ????)\n" +msgstr " (%d) DSA (??? ???????? ????)\n" #, fuzzy, c-format msgid " (%d) ECC (set your own capabilities)%s\n" -msgstr " (%d) RSA (??? ????????????? ????)\n" +msgstr " (%d) RSA (??? ????????????? ????)\n" #, fuzzy, c-format #| msgid " (%d) RSA (encrypt only)\n" msgid " (%d) ECC (encrypt only)%s\n" -msgstr " (%d) RSA (??? ????????????? ????)\n" +msgstr " (%d) RSA (??? ????????????? ????)\n" #, fuzzy, c-format msgid " (%d) Existing key%s\n" -msgstr " (%d) RSA (??? ????????????? ????)\n" +msgstr " (%d) RSA (??? ????????????? ????)\n" #, fuzzy, c-format msgid " (%d) Existing key from card%s\n" -msgstr " (%d) RSA (??? ????????????? ????)\n" +msgstr " (%d) RSA (??? ????????????? ????)\n" #, fuzzy msgid "Enter the keygrip: " @@ -11170,7 +11170,7 @@ msgstr "" #, fuzzy #~ msgid " (%d) RSA (sign, encrypt and auth)\n" -#~ msgstr " (%d) RSA (???????? ??? ?????????????)\n" +#~ msgstr " (%d) RSA (???????? ??? ?????????????)\n" #~ msgid "%s: can't open: %s\n" #~ msgstr "%s: ???????? ????????? ???: %s\n" diff --git a/po/eo.po b/po/eo.po index a43a50bb5..9aec0449b 100644 --- a/po/eo.po +++ b/po/eo.po @@ -4357,24 +4357,24 @@ msgstr "mal?ifri datenojn (implicita elekto)" #, fuzzy, c-format #| msgid " (%d) DSA (sign only)\n" msgid " (%d) ECC (sign only)\n" -msgstr " (%d) DSA (nur subskribi)\n" +msgstr " (%d) DSA (nur subskribi)\n" #, fuzzy, c-format msgid " (%d) ECC (set your own capabilities)%s\n" -msgstr " (%d) RSA (nur ?ifri)\n" +msgstr " (%d) RSA (nur ?ifri)\n" #, fuzzy, c-format #| msgid " (%d) RSA (encrypt only)\n" msgid " (%d) ECC (encrypt only)%s\n" -msgstr " (%d) RSA (nur ?ifri)\n" +msgstr " (%d) RSA (nur ?ifri)\n" #, fuzzy, c-format msgid " (%d) Existing key%s\n" -msgstr " (%d) RSA (nur ?ifri)\n" +msgstr " (%d) RSA (nur ?ifri)\n" #, fuzzy, c-format msgid " (%d) Existing key from card%s\n" -msgstr " (%d) RSA (nur ?ifri)\n" +msgstr " (%d) RSA (nur ?ifri)\n" #, fuzzy msgid "Enter the keygrip: " @@ -10940,7 +10940,7 @@ msgstr "" #, fuzzy #~ msgid " (%d) RSA (sign, encrypt and auth)\n" -#~ msgstr " (%d) RSA (subskribi kaj ?ifri)\n" +#~ msgstr " (%d) RSA (subskribi kaj ?ifri)\n" #~ msgid "%s: can't open: %s\n" #~ msgstr "%s: ne povas malfermi: %s\n" diff --git a/po/es.po b/po/es.po index 305352b07..4f3a01d8d 100644 --- a/po/es.po +++ b/po/es.po @@ -4241,22 +4241,22 @@ msgstr " (%d) ECC (s?lo firmar)\n" #, fuzzy, c-format #| msgid " (%d) ECC (set your own capabilities)\n" msgid " (%d) ECC (set your own capabilities)%s\n" -msgstr " (%d) ECC (permite elegir capacidades)\n" +msgstr " (%d) ECC (permite elegir capacidades)\n" #, fuzzy, c-format #| msgid " (%d) ECC (encrypt only)\n" msgid " (%d) ECC (encrypt only)%s\n" -msgstr " (%d) ECC (s?lo cifrar)\n" +msgstr " (%d) ECC (s?lo cifrar)\n" #, fuzzy, c-format #| msgid " (%d) Existing key\n" msgid " (%d) Existing key%s\n" -msgstr " (%d) Clave existente\n" +msgstr " (%d) Clave existente\n" #, fuzzy, c-format #| msgid " (%d) Existing key from card\n" msgid " (%d) Existing key from card%s\n" -msgstr " (%d) Clave existente de la tarjeta\n" +msgstr " (%d) Clave existente de la tarjeta\n" msgid "Enter the keygrip: " msgstr "Introduzca keygrip: " diff --git a/po/et.po b/po/et.po index f35ad3c29..364f2abdf 100644 --- a/po/et.po +++ b/po/et.po @@ -4352,24 +4352,24 @@ msgstr " (vaikimisi)" #, fuzzy, c-format #| msgid " (%d) DSA (sign only)\n" msgid " (%d) ECC (sign only)\n" -msgstr " (%d) DSA (ainult allkirjastamiseks)\n" +msgstr " (%d) DSA (ainult allkirjastamiseks)\n" #, fuzzy, c-format msgid " (%d) ECC (set your own capabilities)%s\n" -msgstr " (%d) RSA (ainult kr?pteerimiseks)\n" +msgstr " (%d) RSA (ainult kr?pteerimiseks)\n" #, fuzzy, c-format #| msgid " (%d) RSA (encrypt only)\n" msgid " (%d) ECC (encrypt only)%s\n" -msgstr " (%d) RSA (ainult kr?pteerimiseks)\n" +msgstr " (%d) RSA (ainult kr?pteerimiseks)\n" #, fuzzy, c-format msgid " (%d) Existing key%s\n" -msgstr " (%d) RSA (ainult kr?pteerimiseks)\n" +msgstr " (%d) RSA (ainult kr?pteerimiseks)\n" #, fuzzy, c-format msgid " (%d) Existing key from card%s\n" -msgstr " (%d) RSA (ainult kr?pteerimiseks)\n" +msgstr " (%d) RSA (ainult kr?pteerimiseks)\n" #, fuzzy msgid "Enter the keygrip: " @@ -11034,7 +11034,7 @@ msgstr "" #, fuzzy #~ msgid " (%d) RSA (sign, encrypt and auth)\n" -#~ msgstr " (%d) RSA (allkirjastamiseks ja kr?ptimiseks)\n" +#~ msgstr " (%d) RSA (allkirjastamiseks ja kr?ptimiseks)\n" #~ msgid "%s: can't open: %s\n" #~ msgstr "%s: ei ?nnestu avada: %s\n" diff --git a/po/fi.po b/po/fi.po index b0f3069df..cade58fe9 100644 --- a/po/fi.po +++ b/po/fi.po @@ -4381,24 +4381,24 @@ msgstr " (oletusarvo)" #, fuzzy, c-format #| msgid " (%d) DSA (sign only)\n" msgid " (%d) ECC (sign only)\n" -msgstr " (%d) DSA (vain allekirjoitus)\n" +msgstr " (%d) DSA (vain allekirjoitus)\n" #, fuzzy, c-format msgid " (%d) ECC (set your own capabilities)%s\n" -msgstr " (%d) RSA (vain salaus)\n" +msgstr " (%d) RSA (vain salaus)\n" #, fuzzy, c-format #| msgid " (%d) RSA (encrypt only)\n" msgid " (%d) ECC (encrypt only)%s\n" -msgstr " (%d) RSA (vain salaus)\n" +msgstr " (%d) RSA (vain salaus)\n" #, fuzzy, c-format msgid " (%d) Existing key%s\n" -msgstr " (%d) RSA (vain salaus)\n" +msgstr " (%d) RSA (vain salaus)\n" #, fuzzy, c-format msgid " (%d) Existing key from card%s\n" -msgstr " (%d) RSA (vain salaus)\n" +msgstr " (%d) RSA (vain salaus)\n" #, fuzzy msgid "Enter the keygrip: " @@ -11140,7 +11140,7 @@ msgstr "" #, fuzzy #~ msgid " (%d) RSA (sign, encrypt and auth)\n" -#~ msgstr " (%d) RSA (salaus ja allekirjoitus)\n" +#~ msgstr " (%d) RSA (salaus ja allekirjoitus)\n" #~ msgid "%s: can't open: %s\n" #~ msgstr "%s: ei voida avata kohdetta: %s\n" diff --git a/po/fr.po b/po/fr.po index bff201c2a..979bb4f7c 100644 --- a/po/fr.po +++ b/po/fr.po @@ -4418,7 +4418,7 @@ msgstr " (%d) Clef existante\n" #, fuzzy, c-format #| msgid " (%d) Existing key from card\n" msgid " (%d) Existing key from card%s\n" -msgstr " (%d) Clef existante sur la carte\n" +msgstr " (%d) Clef existante sur la carte\n" msgid "Enter the keygrip: " msgstr "Entrez le keygrip?: " diff --git a/po/gl.po b/po/gl.po index d1b3decce..a18e61f4d 100644 --- a/po/gl.po +++ b/po/gl.po @@ -4388,24 +4388,24 @@ msgstr " (por defecto)" #, fuzzy, c-format #| msgid " (%d) DSA (sign only)\n" msgid " (%d) ECC (sign only)\n" -msgstr " (%d) DSA (s? asinar)\n" +msgstr " (%d) DSA (s? asinar)\n" #, fuzzy, c-format msgid " (%d) ECC (set your own capabilities)%s\n" -msgstr " (%d) RSA (s? cifrar)\n" +msgstr " (%d) RSA (s? cifrar)\n" #, fuzzy, c-format #| msgid " (%d) RSA (encrypt only)\n" msgid " (%d) ECC (encrypt only)%s\n" -msgstr " (%d) RSA (s? cifrar)\n" +msgstr " (%d) RSA (s? cifrar)\n" #, fuzzy, c-format msgid " (%d) Existing key%s\n" -msgstr " (%d) RSA (s? cifrar)\n" +msgstr " (%d) RSA (s? cifrar)\n" #, fuzzy, c-format msgid " (%d) Existing key from card%s\n" -msgstr " (%d) RSA (s? cifrar)\n" +msgstr " (%d) RSA (s? cifrar)\n" #, fuzzy msgid "Enter the keygrip: " @@ -11161,7 +11161,7 @@ msgstr "" #, fuzzy #~ msgid " (%d) RSA (sign, encrypt and auth)\n" -#~ msgstr " (%d) RSA (asinar e cifrar)\n" +#~ msgstr " (%d) RSA (asinar e cifrar)\n" #~ msgid "%s: can't open: %s\n" #~ msgstr "%s: non se pode abrir: %s\n" diff --git a/po/hu.po b/po/hu.po index c6fbbf11e..e44bb0b12 100644 --- a/po/hu.po +++ b/po/hu.po @@ -4358,24 +4358,24 @@ msgstr " (alap?rtelmez?s)" #, fuzzy, c-format #| msgid " (%d) DSA (sign only)\n" msgid " (%d) ECC (sign only)\n" -msgstr " (%d) DSA (csak al??r?s)\n" +msgstr " (%d) DSA (csak al??r?s)\n" #, fuzzy, c-format msgid " (%d) ECC (set your own capabilities)%s\n" -msgstr " (%d) RSA (csak titkos?t?s)\n" +msgstr " (%d) RSA (csak titkos?t?s)\n" #, fuzzy, c-format #| msgid " (%d) RSA (encrypt only)\n" msgid " (%d) ECC (encrypt only)%s\n" -msgstr " (%d) RSA (csak titkos?t?s)\n" +msgstr " (%d) RSA (csak titkos?t?s)\n" #, fuzzy, c-format msgid " (%d) Existing key%s\n" -msgstr " (%d) RSA (csak titkos?t?s)\n" +msgstr " (%d) RSA (csak titkos?t?s)\n" #, fuzzy, c-format msgid " (%d) Existing key from card%s\n" -msgstr " (%d) RSA (csak titkos?t?s)\n" +msgstr " (%d) RSA (csak titkos?t?s)\n" #, fuzzy msgid "Enter the keygrip: " @@ -11093,7 +11093,7 @@ msgstr "" #, fuzzy #~ msgid " (%d) RSA (sign, encrypt and auth)\n" -#~ msgstr " (%d) RSA (al??r?s ?s titkos?t?s)\n" +#~ msgstr " (%d) RSA (al??r?s ?s titkos?t?s)\n" #~ msgid "%s: can't open: %s\n" #~ msgstr "%s-t nem tudom megnyitni: %s.\n" diff --git a/po/id.po b/po/id.po index 3ff28dfae..1b090eb5b 100644 --- a/po/id.po +++ b/po/id.po @@ -1568,11 +1568,11 @@ msgstr "Silakan pilih kunci yang anda inginkan:\n" #, fuzzy, c-format msgid " (%d) RSA\n" -msgstr " (%d) RSA (hanya menandai)\n" +msgstr " (%d) RSA (hanya menandai)\n" #, fuzzy, c-format msgid " (%d) ECC\n" -msgstr " (%d) DSA dan ElGamal (baku)\n" +msgstr " (%d) DSA dan ElGamal (baku)\n" msgid "Invalid selection.\n" msgstr "Pilihan tidak valid.\n" @@ -4322,43 +4322,43 @@ msgstr "" #, fuzzy, c-format msgid " (%d) RSA and RSA%s\n" -msgstr " (%d) DSA dan ElGamal (baku)\n" +msgstr " (%d) DSA dan ElGamal (baku)\n" #, fuzzy, c-format msgid " (%d) DSA and Elgamal%s\n" -msgstr " (%d) DSA dan ElGamal (baku)\n" +msgstr " (%d) DSA dan ElGamal (baku)\n" #, fuzzy, c-format #| msgid " (%d) DSA (sign only)\n" msgid " (%d) DSA (sign only)%s\n" -msgstr " (%d) DSA (hanya menandai)\n" +msgstr " (%d) DSA (hanya menandai)\n" #, fuzzy, c-format #| msgid " (%d) RSA (sign only)\n" msgid " (%d) RSA (sign only)%s\n" -msgstr " (%d) RSA (hanya menandai)\n" +msgstr " (%d) RSA (hanya menandai)\n" #, fuzzy, c-format msgid " (%d) Elgamal (encrypt only)%s\n" -msgstr " (%d) ElGamal (hanya enkripsi)\n" +msgstr " (%d) ElGamal (hanya enkripsi)\n" #, fuzzy, c-format #| msgid " (%d) RSA (encrypt only)\n" msgid " (%d) RSA (encrypt only)%s\n" -msgstr " (%d) RSA (hanya enkripsi)\n" +msgstr " (%d) RSA (hanya enkripsi)\n" #, fuzzy, c-format msgid " (%d) DSA (set your own capabilities)%s\n" -msgstr " (%d) RSA (hanya enkripsi)\n" +msgstr " (%d) RSA (hanya enkripsi)\n" #, fuzzy, c-format msgid " (%d) RSA (set your own capabilities)%s\n" -msgstr " (%d) RSA (hanya enkripsi)\n" +msgstr " (%d) RSA (hanya enkripsi)\n" #, fuzzy, c-format #| msgid " (%d) ElGamal (sign and encrypt)\n" msgid " (%d) ECC (sign and encrypt)%s\n" -msgstr " (%d) ElGamal (tandai dan enkripsi)\n" +msgstr " (%d) ElGamal (tandai dan enkripsi)\n" #, fuzzy #| msgid " (default)" @@ -7415,7 +7415,7 @@ msgstr "" #, fuzzy, c-format msgid " (%d) Existing key\n" -msgstr " (%d) RSA (hanya enkripsi)\n" +msgstr " (%d) RSA (hanya enkripsi)\n" #, c-format msgid " (%d) Existing key from card\n" @@ -7431,11 +7431,11 @@ msgstr " (%d) RSA (tandai dan enkripsi)\n" #, fuzzy, c-format msgid " (%d) sign\n" -msgstr " (%d) DSA (hanya menandai)\n" +msgstr " (%d) DSA (hanya menandai)\n" #, fuzzy, c-format msgid " (%d) encrypt\n" -msgstr " (%d) RSA (hanya enkripsi)\n" +msgstr " (%d) RSA (hanya enkripsi)\n" msgid "Enter the X.509 subject name: " msgstr "" @@ -9440,7 +9440,7 @@ msgstr "" #, fuzzy #~ msgid " (%d) ECC and ECC\n" -#~ msgstr " (%d) DSA dan ElGamal (baku)\n" +#~ msgstr " (%d) DSA dan ElGamal (baku)\n" #, fuzzy #~ msgid "run without asking a user" @@ -11085,7 +11085,7 @@ msgstr "" #, fuzzy #~ msgid " (%d) RSA (auth only)\n" -#~ msgstr " (%d) RSA (hanya menandai)\n" +#~ msgstr " (%d) RSA (hanya menandai)\n" #, fuzzy #~ msgid " (%d) RSA (sign and auth)\n" @@ -11093,11 +11093,11 @@ msgstr "" #, fuzzy #~ msgid " (%d) RSA (encrypt and auth)\n" -#~ msgstr " (%d) RSA (hanya enkripsi)\n" +#~ msgstr " (%d) RSA (hanya enkripsi)\n" #, fuzzy #~ msgid " (%d) RSA (sign, encrypt and auth)\n" -#~ msgstr " (%d) RSA (tandai dan enkripsi)\n" +#~ msgstr " (%d) RSA (tandai dan enkripsi)\n" #~ msgid "%s: can't open: %s\n" #~ msgstr "%s: tidak dapat membuka: %s\n" diff --git a/po/it.po b/po/it.po index e9b974a3a..ac4166c96 100644 --- a/po/it.po +++ b/po/it.po @@ -4175,7 +4175,7 @@ msgstr " *predefinito*" #, c-format msgid " (%d) ECC (sign only)\n" -msgstr " (%d) DSA (firma solo)\n" +msgstr " (%d) DSA (firma solo)\n" #, c-format msgid " (%d) ECC (set your own capabilities)%s\n" @@ -7225,7 +7225,7 @@ msgstr "" #, c-format msgid " (%d) Existing key\n" -msgstr " (%d) Chiave esistente\n" +msgstr " (%d) Chiave esistente\n" #, c-format msgid " (%d) Existing key from card\n" @@ -7237,7 +7237,7 @@ msgstr "Azioni possibili per una chiave %s: \n" #, c-format msgid " (%d) sign, encrypt\n" -msgstr " (%d) segno, cifra\n" +msgstr " (%d) segno, cifra\n" #, c-format msgid " (%d) sign\n" diff --git a/po/nb.po b/po/nb.po index 3d54d7e28..43419f6fd 100644 --- a/po/nb.po +++ b/po/nb.po @@ -4235,7 +4235,7 @@ msgstr " (%d) N?kkel\n" #, fuzzy, c-format #| msgid " (%d) Existing key from card\n" msgid " (%d) Existing key from card%s\n" -msgstr " (%d) N?kkel fra kort\n" +msgstr " (%d) N?kkel fra kort\n" msgid "Enter the keygrip: " msgstr "Skriv inn n?kkelgrep: " diff --git a/po/pl.po b/po/pl.po index 509a9076f..818d97a0e 100644 --- a/po/pl.po +++ b/po/pl.po @@ -4224,22 +4224,22 @@ msgstr "" #, c-format msgid " (%d) ECC (sign only)\n" -msgstr " (%d) ECC (tylko do podpisywania)\n" +msgstr " (%d) ECC (tylko do podpisywania)\n" #, fuzzy, c-format #| msgid " (%d) ECC (set your own capabilities)\n" msgid " (%d) ECC (set your own capabilities)%s\n" -msgstr " (%d) ECC (mo?liwo?ci do ustawienia)\n" +msgstr " (%d) ECC (mo?liwo?ci do ustawienia)\n" #, fuzzy, c-format #| msgid " (%d) ECC (encrypt only)\n" msgid " (%d) ECC (encrypt only)%s\n" -msgstr " (%d) ECC (tylko do szyfrowania)\n" +msgstr " (%d) ECC (tylko do szyfrowania)\n" #, fuzzy, c-format #| msgid " (%d) Existing key\n" msgid " (%d) Existing key%s\n" -msgstr " (%d) Istniej?cy klucz\n" +msgstr " (%d) Istniej?cy klucz\n" #, fuzzy, c-format #| msgid " (%d) Existing key from card\n" diff --git a/po/pt.po b/po/pt.po index 2e6db3ad6..98f8ebd59 100644 --- a/po/pt.po +++ b/po/pt.po @@ -4366,24 +4366,24 @@ msgstr " (por omiss?o)" #, fuzzy, c-format #| msgid " (%d) DSA (sign only)\n" msgid " (%d) ECC (sign only)\n" -msgstr " (%d) DSA (apenas assinatura)\n" +msgstr " (%d) DSA (apenas assinatura)\n" #, fuzzy, c-format msgid " (%d) ECC (set your own capabilities)%s\n" -msgstr " (%d) RSA (apenas cifragem)\n" +msgstr " (%d) RSA (apenas cifragem)\n" #, fuzzy, c-format #| msgid " (%d) RSA (encrypt only)\n" msgid " (%d) ECC (encrypt only)%s\n" -msgstr " (%d) RSA (apenas cifragem)\n" +msgstr " (%d) RSA (apenas cifragem)\n" #, fuzzy, c-format msgid " (%d) Existing key%s\n" -msgstr " (%d) RSA (apenas cifragem)\n" +msgstr " (%d) RSA (apenas cifragem)\n" #, fuzzy, c-format msgid " (%d) Existing key from card%s\n" -msgstr " (%d) RSA (apenas cifragem)\n" +msgstr " (%d) RSA (apenas cifragem)\n" #, fuzzy msgid "Enter the keygrip: " @@ -11042,7 +11042,7 @@ msgstr "" #, fuzzy #~ msgid " (%d) RSA (sign, encrypt and auth)\n" -#~ msgstr " (%d) RSA (assinatura e cifragem)\n" +#~ msgstr " (%d) RSA (assinatura e cifragem)\n" #~ msgid "%s: can't open: %s\n" #~ msgstr "%s: imposs?vel abrir: %s\n" diff --git a/po/ro.po b/po/ro.po index f3071d966..50789a7cf 100644 --- a/po/ro.po +++ b/po/ro.po @@ -4424,17 +4424,17 @@ msgstr "(implicit)" #, fuzzy, c-format #| msgid " (%d) DSA (sign only)\n" msgid " (%d) ECC (sign only)\n" -msgstr " (%d) DSA (numai semnare)\n" +msgstr " (%d) DSA (numai semnare)\n" #, fuzzy, c-format #| msgid " (%d) DSA (set your own capabilities)\n" msgid " (%d) ECC (set your own capabilities)%s\n" -msgstr " (%d) DSA (seteaz? singur capabilit??ile)\n" +msgstr " (%d) DSA (seteaz? singur capabilit??ile)\n" #, fuzzy, c-format #| msgid " (%d) RSA (encrypt only)\n" msgid " (%d) ECC (encrypt only)%s\n" -msgstr " (%d) RSA (numai cifrare)\n" +msgstr " (%d) RSA (numai cifrare)\n" #, fuzzy, c-format msgid " (%d) Existing key%s\n" diff --git a/po/sk.po b/po/sk.po index 7ca5b6894..9a1c3fa5d 100644 --- a/po/sk.po +++ b/po/sk.po @@ -4378,24 +4378,24 @@ msgstr "de?ifrova? d?ta (implicitne)" #, fuzzy, c-format #| msgid " (%d) DSA (sign only)\n" msgid " (%d) ECC (sign only)\n" -msgstr " (%d) DSA (len na podpis)\n" +msgstr " (%d) DSA (len na podpis)\n" #, fuzzy, c-format msgid " (%d) ECC (set your own capabilities)%s\n" -msgstr " (%d) RSA (len na ?ifrovanie)\n" +msgstr " (%d) RSA (len na ?ifrovanie)\n" #, fuzzy, c-format #| msgid " (%d) RSA (encrypt only)\n" msgid " (%d) ECC (encrypt only)%s\n" -msgstr " (%d) RSA (len na ?ifrovanie)\n" +msgstr " (%d) RSA (len na ?ifrovanie)\n" #, fuzzy, c-format msgid " (%d) Existing key%s\n" -msgstr " (%d) RSA (len na ?ifrovanie)\n" +msgstr " (%d) RSA (len na ?ifrovanie)\n" #, fuzzy, c-format msgid " (%d) Existing key from card%s\n" -msgstr " (%d) RSA (len na ?ifrovanie)\n" +msgstr " (%d) RSA (len na ?ifrovanie)\n" #, fuzzy msgid "Enter the keygrip: " @@ -11124,7 +11124,7 @@ msgstr "" #, fuzzy #~ msgid " (%d) RSA (sign, encrypt and auth)\n" -#~ msgstr " (%d) RSA (pro ?ifrov?n? a podpis)\n" +#~ msgstr " (%d) RSA (pro ?ifrov?n? a podpis)\n" #~ msgid "%s: can't open: %s\n" #~ msgstr "%s: nem??em otvori?: %s\n" diff --git a/po/sv.po b/po/sv.po index d1db7ab78..adfd409c2 100644 --- a/po/sv.po +++ b/po/sv.po @@ -4578,27 +4578,27 @@ msgstr "" #, fuzzy, c-format #| msgid " (%d) DSA (sign only)\n" msgid " (%d) ECC (sign only)\n" -msgstr " (%d) DSA (endast signering)\n" +msgstr " (%d) DSA (endast signering)\n" #, fuzzy, c-format #| msgid " (%d) DSA (set your own capabilities)\n" msgid " (%d) ECC (set your own capabilities)%s\n" -msgstr " (%d) DSA (st?ll in dina egna f?rm?gor)\n" +msgstr " (%d) DSA (st?ll in dina egna f?rm?gor)\n" #, fuzzy, c-format #| msgid " (%d) RSA (encrypt only)\n" msgid " (%d) ECC (encrypt only)%s\n" -msgstr " (%d) RSA (endast kryptering)\n" +msgstr " (%d) RSA (endast kryptering)\n" #, fuzzy, c-format #| msgid " (%d) Existing key\n" msgid " (%d) Existing key%s\n" -msgstr " (%d) Befintlig nyckel\n" +msgstr " (%d) Befintlig nyckel\n" #, fuzzy, c-format #| msgid " (%d) Existing key from card\n" msgid " (%d) Existing key from card%s\n" -msgstr " (%d) Befintlig nyckel fr?n kort\n" +msgstr " (%d) Befintlig nyckel fr?n kort\n" msgid "Enter the keygrip: " msgstr "Ange nyckelhashen: " diff --git a/po/uk.po b/po/uk.po index 7c51ddb06..e5e06bb90 100644 --- a/po/uk.po +++ b/po/uk.po @@ -4288,12 +4288,12 @@ msgstr " (%d) ECC (???? ??????????)\n" #, fuzzy, c-format #| msgid " (%d) Existing key\n" msgid " (%d) Existing key%s\n" -msgstr " (%d) ??? ????????? ????\n" +msgstr " (%d) ??? ????????? ????\n" #, fuzzy, c-format #| msgid " (%d) Existing key from card\n" msgid " (%d) Existing key from card%s\n" -msgstr " (%d) ??? ????????? ???? ? ??????\n" +msgstr " (%d) ??? ????????? ???? ? ??????\n" msgid "Enter the keygrip: " msgstr "??????? keygrip: " diff --git a/po/zh_TW.po b/po/zh_TW.po index 5d0a120d0..6065872ce 100644 --- a/po/zh_TW.po +++ b/po/zh_TW.po @@ -4246,27 +4246,27 @@ msgstr "" #, c-format msgid " (%d) ECC (sign only)\n" -msgstr " (%d) ECC (??????)\n" +msgstr " (%d) ECC (??????)\n" #, fuzzy, c-format #| msgid " (%d) ECC (set your own capabilities)\n" msgid " (%d) ECC (set your own capabilities)%s\n" -msgstr " (%d) ECC (????????)\n" +msgstr " (%d) ECC (????????)\n" #, fuzzy, c-format #| msgid " (%d) ECC (encrypt only)\n" msgid " (%d) ECC (encrypt only)%s\n" -msgstr " (%d) ECC (??????)\n" +msgstr " (%d) ECC (??????)\n" #, fuzzy, c-format #| msgid " (%d) Existing key\n" msgid " (%d) Existing key%s\n" -msgstr " (%d) ?????\n" +msgstr " (%d) ?????\n" #, fuzzy, c-format #| msgid " (%d) Existing key from card\n" msgid " (%d) Existing key from card%s\n" -msgstr " (%d) ????????\n" +msgstr " (%d) ????????\n" msgid "Enter the keygrip: " msgstr "???????: " -- 2.37.3 From robbat2 at gentoo.org Sat Oct 22 00:58:51 2022 From: robbat2 at gentoo.org (Robin H. Johnson) Date: Fri, 21 Oct 2022 22:58:51 +0000 Subject: WKD & redirects: draft-koch-openpgp-webkey-service vs GnuPG Message-ID: gpg 2.3.8... Over at Gentoo we got this bug filed about the WKD setup: https://bugs.gentoo.org/877791 $ gpg -v --auto-key-locate wkd --locate-external-keys infrastructure at gentoo.org gpg: WARNING: unacceptable HTTP redirect from server was cleaned up gpg: (further info: changed from 'https://gentoo.org/.well-known/openpgpkey/hu/gzhmqtt9d5d1y1bw4ufs47npj5wn8pyx?l=infrastructure' to 'https://www.gentoo.org/.well-known/openpgpkey/hu/gzhmqtt9d5d1y1bw4ufs47npj5wn8pyx?l=infrastructure') We have a tiny anycast service at the Apex https://gentoo.org/ that redirects *everything* to www.gentoo.org; no exceptions possible. The draft RFC, at least as of version 14, doesn't say either way if redirects are permitted or forbidden. If they are indeed forbidden, can the RFC get updated to say as much? Otherwise, if Redirects aren't forbidden, I feel the warning should be removed for this case (and a note about how they are accepted should be added to the RFC). -- Robin Hugh Johnson Gentoo Linux: Dev, Infra Lead, Foundation Treasurer E-Mail : robbat2 at gentoo.org GnuPG FP : 11ACBA4F 4778E3F6 E4EDF38E B27B944E 34884E85 GnuPG FP : 7D0B3CEB E9B85B1F 825BCECF EE05E6F6 A48F6136 -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 1113 bytes Desc: not available URL: From bernhard at intevation.de Mon Oct 24 17:48:59 2022 From: bernhard at intevation.de (Bernhard Reiter) Date: Mon, 24 Oct 2022 17:48:59 +0200 Subject: WKD & redirects: draft-koch-openpgp-webkey-service vs GnuPG In-Reply-To: References: Message-ID: <202210241749.06266.bernhard@intevation.de> Hi Robin, Am Samstag 22 Oktober 2022 00:58:51 schrieb Robin H. Johnson via Gnupg-devel: > Over at Gentoo we got this bug filed about the WKD setup: > https://bugs.gentoo.org/877791 Using the advanced WKD detection method with openpgpkey.gentoo.org seems to be the way to go for from my view. As the advanced method is tried first, so this should just work. And Werner stated a preferrance for it in one email. > The draft RFC, at least as of version 14, doesn't say either way if > redirects are permitted or forbidden. https://datatracker.ietf.org/doc/html/draft-koch-openpgp-webkey-service-14#section-3.1 The HTTP GET method MUST return the binary representation of the OpenPGP key for the given mail address. this can be read as hint towards that no redirect is allowed (as GET would then return the redirection target URL). It is not very explicit, though. Thanks for your hint, I believe Werner will consider it, when updating the WKD specification the next time. Best Regards, Bernhard -- https://intevation.de/~bernhard ? +49 541 33 508 3-3 Intevation GmbH, Osnabr?ck, DE; Amtsgericht Osnabr?ck, HRB 18998 Gesch?ftsf?hrer Frank Koormann, Bernhard Reiter -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 659 bytes Desc: This is a digitally signed message part. URL: From bernhard at intevation.de Mon Oct 24 17:52:19 2022 From: bernhard at intevation.de (Bernhard Reiter) Date: Mon, 24 Oct 2022 17:52:19 +0200 Subject: [PATCH gnupg] po: Fix typo In-Reply-To: <20220926142915.5847-1-mario.haustein@hrz.tu-chemnitz.de> References: <20220926142915.5847-1-mario.haustein@hrz.tu-chemnitz.de> Message-ID: <202210241752.19494.bernhard@intevation.de> Am Montag 26 September 2022 16:29:15 schrieb Mario Haustein via Gnupg-devel: > The line break ends the message prematurely, so the fingerprint and the > filename are not shown in german environment. Thanks for the patch! Note for this and other patches, that Werner and the development team considers some patches on block if they are happen to work on the specific area. So it sometimes takes a while until you'll get feedback. :) Best Bernhard -- https://intevation.de/~bernhard ? +49 541 33 508 3-3 Intevation GmbH, Osnabr?ck, DE; Amtsgericht Osnabr?ck, HRB 18998 Gesch?ftsf?hrer Frank Koormann, Bernhard Reiter -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 659 bytes Desc: This is a digitally signed message part. URL: From wk at gnupg.org Mon Oct 24 17:53:15 2022 From: wk at gnupg.org (Werner Koch) Date: Mon, 24 Oct 2022 17:53:15 +0200 Subject: WKD & redirects: draft-koch-openpgp-webkey-service vs GnuPG In-Reply-To: (Robin H. Johnson via Gnupg-devel's message of "Fri, 21 Oct 2022 22:58:51 +0000") References: Message-ID: <87fsfd6wwk.fsf@wheatstone.g10code.de> On Fri, 21 Oct 2022 22:58, Robin H. Johnson said: > gpg 2.3.8... > > Over at Gentoo we got this bug filed about the WKD setup: > https://bugs.gentoo.org/877791 > > $ gpg -v --auto-key-locate wkd --locate-external-keys infrastructure at gentoo.org > gpg: WARNING: unacceptable HTTP redirect from server was cleaned up > gpg: (further info: changed from > 'https://gentoo.org/.well-known/openpgpkey/hu/gzhmqtt9d5d1y1bw4ufs47npj5wn8pyx?l=infrastructure' > to > 'https://www.gentoo.org/.well-known/openpgpkey/hu/gzhmqtt9d5d1y1bw4ufs47npj5wn8pyx?l=infrastructure') > > We have a tiny anycast service at the Apex https://gentoo.org/ that > redirects *everything* to www.gentoo.org; no exceptions possible. Which is quite common. Does this --8<---------------cut here---------------start------------->8--- diff --git a/dirmngr/http.c b/dirmngr/http.c index 20f71f61b..f11e7765b 100644 --- a/dirmngr/http.c +++ b/dirmngr/http.c @@ -3619,6 +3619,7 @@ same_host_p (parsed_uri_t a, parsed_uri_t b) }; static const char *subdomains[] = { + "www.", "openpgpkey." }; int i; --8<---------------cut here---------------end--------------->8--- untested patch help to silence the warning? > Otherwise, if Redirects aren't forbidden, I feel the warning should be removed > for this case (and a note about how they are accepted should be added to the Yep. However, I don't think this si something which needs specification. Implementaions are free to handle this on their own. Shalom-Salam, Werner -- The pioneers of a warless world are the youth that refuse military service. - A. Einstein -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 227 bytes Desc: not available URL: From demiobenour at gmail.com Tue Oct 25 06:11:46 2022 From: demiobenour at gmail.com (Demi Marie Obenour) Date: Tue, 25 Oct 2022 00:11:46 -0400 Subject: [PATCH GnuPG] Disallow compressed signatures and certificates In-Reply-To: <68f59ec8-9c74-0345-1a69-ee22709e4c84@gmail.com> References: <68f59ec8-9c74-0345-1a69-ee22709e4c84@gmail.com> Message-ID: On 10/9/22 20:10, Demi Marie Obenour wrote: > Compressed packets have significant attack surface, due to the potential > for both denial of service (zip bombs and the like) and for code > execution via memory corruption vulnerabilities in the decompressor. > Furthermore, I am not aware of any implementation that uses them in keys > or detached signatures. Therefore, disallow their use in such contexts > entirely. This includes signatures that are part of a cleartext-signed > message. > > When parsing detached signatures, forbid any packet that is not a > signature or marker packet. When parsing keys, return an error when > encountering a compressed packet, instead of decompressing the packet. > When parsing a cleartext-signed message, the signature (and any data > that follows it) is treated as a detached signature. > > Furthermore, certificates, keys, and signatures are not allowed to > contain partial-length or indeterminate-length packets. Reject those in > parse_packet, rather than activating the partial-length filter code. > > GnuPG-bug-id: T5993 > Signed-off-by: Demi Marie Obenour Would it be possible to review this patch, and (if possible) to merge it? This fixes a denial of service security vulnerability in some applications. -- Sincerely, Demi Marie Obenour (she/her/hers) -------------- next part -------------- A non-text attachment was scrubbed... Name: OpenPGP_0xB288B55FFF9C22C1.asc Type: application/pgp-keys Size: 4885 bytes Desc: OpenPGP public key URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: OpenPGP_signature Type: application/pgp-signature Size: 833 bytes Desc: OpenPGP digital signature URL: From gusnan at librem.one Tue Oct 25 12:03:11 2022 From: gusnan at librem.one (Andreas =?UTF-8?B?UsO2bm5xdWlzdA==?=) Date: Tue, 25 Oct 2022 12:03:11 +0200 Subject: [GPA] Port to GTK3 Message-ID: <20221025120311.63f13ce7@debian-i7> Hi I have managed to build GPA against GTK3 - is there any interest at all, or is GPA completely dead? It builds and runs fine in my minor testing. I am doing this because Debian is on the mission to remove GTK 2 sooner or later - it might take quite some time, but there have already been bugs reported to remind us Debian maintainers. (see the bug on gpa here [1]) I have made my fork available on github in the port-gtk3 branch [2], feel free to import it to the GnuPG git repositories. If you want the commits/changes in another way, please let me know. There are some places where I have removed some deprecated calls that doesn't have a simple replacement, which might change the experience some - see [3]. Also, I am not sure about the best way to handle the gtk_marshal stuff [4], some extra eyes would be greatly appreciated. As is overall testing, to see if behaviour has changed in unexpected ways. So far I have made it build, it needs way more work to remove all stuff that gets warnings during the build for use of deprecated functions. best /Andreas R?nnquist gusnan at librem.one 1: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=967447 2: https://github.com/gusnan/gpa 3: https://github.com/gusnan/gpa/commit/4031700ffd81613f8b985e6af8a80192d858364e 4: https://github.com/gusnan/gpa/commit/95e07080a2a08196cafb05b69345ea1d629424b1 From bernhard at intevation.de Tue Oct 25 17:23:09 2022 From: bernhard at intevation.de (Bernhard Reiter) Date: Tue, 25 Oct 2022 17:23:09 +0200 Subject: [GPA] Port to GTK3 In-Reply-To: <20221025120311.63f13ce7@debian-i7> References: <20221025120311.63f13ce7@debian-i7> Message-ID: <202210251723.09722.bernhard@intevation.de> Am Dienstag 25 Oktober 2022 12:03:11 schrieb Andreas R?nnquist via Gnupg-devel: > I have managed to build GPA against GTK3 - is there any interest at all, > or is GPA completely dead? Thanks for making your work public! I believe Werner also had part of an GTK3 port in the work (but not entirely ready). Focus has shifted away a bit from GPA, it is a component that is in need of a maintainer. The question is if there is enough interest and people are willing to help to develop and maintain GPA. In how far could you help with this and e.g. the GTK3 port? Best Regards Bernhard -- https://intevation.de/~bernhard ? +49 541 33 508 3-3 Intevation GmbH, Osnabr?ck, DE; Amtsgericht Osnabr?ck, HRB 18998 Gesch?ftsf?hrer Frank Koormann, Bernhard Reiter -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 659 bytes Desc: This is a digitally signed message part. URL: From gusnan at librem.one Sun Oct 30 21:56:34 2022 From: gusnan at librem.one (Andreas Ronnquist) Date: Sun, 30 Oct 2022 21:56:34 +0100 Subject: [GPA] Port to GTK3 In-Reply-To: <202210251723.09722.bernhard@intevation.de> References: <20221025120311.63f13ce7@debian-i7> <202210251723.09722.bernhard@intevation.de> Message-ID: <20221030215559.355e188e@debian-i7> On Tue, 25 Oct 2022 17:23:09 +0200 Bernhard Reiter wrote: >Am Dienstag 25 Oktober 2022 12:03:11 schrieb Andreas R?nnquist via >Gnupg-devel: >> I have managed to build GPA against GTK3 - is there any interest at all, >> or is GPA completely dead? > >Thanks for making your work public! > >I believe Werner also had part of an GTK3 port in the work (but not entirely >ready). Focus has shifted away a bit from GPA, it is a component >that is in need of a maintainer. > >The question is if there is enough interest and people are willing to >help to develop and maintain GPA. >In how far could you help with this and e.g. the GTK3 port? > I would love to be able to keep it maintained, but I don't want to do it on my own, more eyes equals better code, of course. I have managed now to not only build on GTK3, but I have also began to do actual required migration from GTK2 technologies to GTK3 ones - which would of course make it easier to an eventual upcoming GTK4 conversion. It looks like the first thing is to make it GtkApplication-based (which I have managed to do), and then in it's turn migrate the menus to GtkBuilder-based items. I would love some eyes on my code in the git repository, and would gladly accept merge requests there, both to further the conversion, but also if someone has better solutions to the changes I have done, I would also accept those. best /Andreas