Compare commits
No commits in common. 'cs10' and 'c9' have entirely different histories.
@ -1,2 +1,2 @@
|
|||||||
SOURCES/gnupg-2.4.5.tar.bz2
|
SOURCES/gnupg-2.3.3.tar.bz2
|
||||||
SOURCES/gnupg-2.4.5.tar.bz2.sig
|
SOURCES/gnupg-2.3.3.tar.bz2.sig
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
ae0935ead29a2dfa34d6b48d70808652bc3ca73b SOURCES/gnupg-2.4.5.tar.bz2
|
b19a407076424704f1b00e8265254de1b3061659 SOURCES/gnupg-2.3.3.tar.bz2
|
||||||
408af6802382e453953dac599f851c5c1415fa9b SOURCES/gnupg-2.4.5.tar.bz2.sig
|
38fed91a8c4b3ba09977ab06567395448b6f1242 SOURCES/gnupg-2.3.3.tar.bz2.sig
|
||||||
|
@ -0,0 +1,50 @@
|
|||||||
|
From 34c649b3601383cd11dbc76221747ec16fd68e1b Mon Sep 17 00:00:00 2001
|
||||||
|
From: Werner Koch <wk@gnupg.org>
|
||||||
|
Date: Tue, 14 Jun 2022 11:33:27 +0200
|
||||||
|
Subject: [PATCH GnuPG] 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
|
||||||
|
---
|
||||||
|
g10/cpr.c | 13 ++++---------
|
||||||
|
1 file changed, 4 insertions(+), 9 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/g10/cpr.c b/g10/cpr.c
|
||||||
|
index 9bfdd3c34..fa8005d6f 100644
|
||||||
|
--- a/g10/cpr.c
|
||||||
|
+++ b/g10/cpr.c
|
||||||
|
@@ -372,20 +372,15 @@ write_status_text_and_buffer (int no, const char *string,
|
||||||
|
}
|
||||||
|
first = 0;
|
||||||
|
}
|
||||||
|
- for (esc=0, s=buffer, n=len; n && !esc; s++, n--)
|
||||||
|
+ for (esc=0, s=buffer, n=len; n; s++, n--)
|
||||||
|
{
|
||||||
|
if (*s == '%' || *(const byte*)s <= lower_limit
|
||||||
|
|| *(const byte*)s == 127 )
|
||||||
|
esc = 1;
|
||||||
|
if (wrap && ++count > wrap)
|
||||||
|
- {
|
||||||
|
- dowrap=1;
|
||||||
|
- break;
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
- if (esc)
|
||||||
|
- {
|
||||||
|
- s--; n++;
|
||||||
|
+ dowrap=1;
|
||||||
|
+ if (esc || dowrap)
|
||||||
|
+ break;
|
||||||
|
}
|
||||||
|
if (s != buffer)
|
||||||
|
es_fwrite (buffer, s-buffer, 1, statusfp);
|
||||||
|
--
|
||||||
|
2.37.1
|
||||||
|
|
@ -0,0 +1,30 @@
|
|||||||
|
commit eadf12a52c2e230174e076a0dcae68132094cefe
|
||||||
|
Author: Jakub Jelen <jjelen@redhat.com>
|
||||||
|
Date: Thu Feb 24 09:02:53 2022 +0100
|
||||||
|
|
||||||
|
sign: Construct valid AEAD packets.
|
||||||
|
|
||||||
|
* g10/sign.c (sign_symencrypt_file): Insert correct version and AEAD
|
||||||
|
information into symkey packet.
|
||||||
|
|
||||||
|
--
|
||||||
|
|
||||||
|
GnuPG-bug-id: 5856
|
||||||
|
Signed-off-by: Jakub Jelen <jjelen@redhat.com>
|
||||||
|
|
||||||
|
diff --git a/g10/sign.c b/g10/sign.c
|
||||||
|
index bbcfabdb7..2ab76c99b 100644
|
||||||
|
--- a/g10/sign.c
|
||||||
|
+++ b/g10/sign.c
|
||||||
|
@@ -1660,8 +1660,9 @@ sign_symencrypt_file (ctrl_t ctrl, const char *fname, strlist_t locusr)
|
||||||
|
{
|
||||||
|
PKT_symkey_enc *enc = xmalloc_clear( sizeof *enc );
|
||||||
|
|
||||||
|
- enc->version = 4;
|
||||||
|
+ enc->version = cfx.dek->use_aead ? 5 : 4;
|
||||||
|
enc->cipher_algo = cfx.dek->algo;
|
||||||
|
+ enc->aead_algo = cfx.dek->use_aead;
|
||||||
|
enc->s2k = *s2k;
|
||||||
|
pkt.pkttype = PKT_SYMKEY_ENC;
|
||||||
|
pkt.pkt.symkey_enc = enc;
|
||||||
|
|
@ -0,0 +1,42 @@
|
|||||||
|
From c4436ebfa58f219190f1244928001b4293293343 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jakub Jelen <jjelen@redhat.com>
|
||||||
|
Date: Tue, 12 Apr 2022 16:26:58 +0200
|
||||||
|
Subject: [PATCH GnuPG] agent: Ignore MD5 Fingerprints for ssh keys
|
||||||
|
|
||||||
|
--
|
||||||
|
* agent/command-ssh.c (add_control_entry): Ignore failure of the MD5
|
||||||
|
digest
|
||||||
|
|
||||||
|
Signed-off-by: Jakub Jelen <jjelen@redhat.com>
|
||||||
|
---
|
||||||
|
agent/command-ssh.c | 6 ++++--
|
||||||
|
1 file changed, 4 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/agent/command-ssh.c b/agent/command-ssh.c
|
||||||
|
index a7784e728..46821e3c8 100644
|
||||||
|
--- a/agent/command-ssh.c
|
||||||
|
+++ b/agent/command-ssh.c
|
||||||
|
@@ -1095,8 +1095,9 @@ add_control_entry (ctrl_t ctrl, ssh_key_type_spec_t *spec,
|
||||||
|
time_t atime = time (NULL);
|
||||||
|
|
||||||
|
err = ssh_get_fingerprint_string (key, GCRY_MD_MD5, &fpr_md5);
|
||||||
|
+ /* ignore the errors as MD5 is not available in FIPS mode */
|
||||||
|
if (err)
|
||||||
|
- goto out;
|
||||||
|
+ fpr_md5 = NULL;
|
||||||
|
|
||||||
|
err = ssh_get_fingerprint_string (key, GCRY_MD_SHA256, &fpr_sha256);
|
||||||
|
if (err)
|
||||||
|
@@ -1113,7 +1114,8 @@ add_control_entry (ctrl_t ctrl, ssh_key_type_spec_t *spec,
|
||||||
|
spec->name,
|
||||||
|
1900+tp->tm_year, tp->tm_mon+1, tp->tm_mday,
|
||||||
|
tp->tm_hour, tp->tm_min, tp->tm_sec,
|
||||||
|
- fpr_md5, fpr_sha256, hexgrip, ttl, confirm? " confirm":"");
|
||||||
|
+ fpr_md5? fpr_md5:"", fpr_sha256, hexgrip, ttl,
|
||||||
|
+ confirm? " confirm":"");
|
||||||
|
|
||||||
|
}
|
||||||
|
out:
|
||||||
|
--
|
||||||
|
2.39.2
|
||||||
|
|
@ -1,275 +0,0 @@
|
|||||||
From eae28f1bd4a5632e8f8e85b7248d1c4d4a10a5ed Mon Sep 17 00:00:00 2001
|
|
||||||
From: Werner Koch <wk@gnupg.org>
|
|
||||||
Date: Mon, 23 Jan 2023 16:34:19 +0100
|
|
||||||
Subject: [PATCH] doc: Remove profile and systemd example files.
|
|
||||||
|
|
||||||
--
|
|
||||||
|
|
||||||
The profiles are not any longer useful because global options are way
|
|
||||||
more powerful (/etc/gnupg/gpg.conf et al.). The use of systemd is
|
|
||||||
deprecated because of additional complexity and the race between
|
|
||||||
systemd based autolaunching and the explicit gnupg based and lockfile
|
|
||||||
protected autolaunching.
|
|
||||||
|
|
||||||
GnuPG-bug-id: 6336
|
|
||||||
---
|
|
||||||
diff --git b/doc/Makefile.am a/doc/Makefile.am
|
|
||||||
index 390153c76..0093c43a8 100644
|
|
||||||
--- b/doc/Makefile.am
|
|
||||||
+++ a/doc/Makefile.am
|
|
||||||
@@ -22,6 +22,14 @@ AM_CPPFLAGS =
|
|
||||||
examples/qualified.txt \
|
|
||||||
examples/common.conf \
|
|
||||||
examples/gpgconf.rnames examples/gpgconf.conf \
|
|
||||||
+ examples/systemd-user/README \
|
|
||||||
+ examples/systemd-user/dirmngr.service \
|
|
||||||
+ examples/systemd-user/dirmngr.socket \
|
|
||||||
+ examples/systemd-user/gpg-agent.service \
|
|
||||||
+ examples/systemd-user/gpg-agent.socket \
|
|
||||||
+ examples/systemd-user/gpg-agent-ssh.socket \
|
|
||||||
+ examples/systemd-user/gpg-agent-browser.socket \
|
|
||||||
+ examples/systemd-user/gpg-agent-extra.socket \
|
|
||||||
examples/pwpattern.list
|
|
||||||
|
|
||||||
helpfiles = help.txt help.be.txt help.ca.txt help.cs.txt \
|
|
||||||
diff --git b/doc/Makefile.in a/doc/Makefile.in
|
|
||||||
index 390153c76..0093c43a8 100644
|
|
||||||
--- b/doc/Makefile.in
|
|
||||||
+++ a/doc/Makefile.in
|
|
||||||
@@ -475,6 +475,14 @@ AM_CPPFLAGS =
|
|
||||||
examples/qualified.txt \
|
|
||||||
examples/common.conf \
|
|
||||||
examples/gpgconf.rnames examples/gpgconf.conf \
|
|
||||||
+ examples/systemd-user/README \
|
|
||||||
+ examples/systemd-user/dirmngr.service \
|
|
||||||
+ examples/systemd-user/dirmngr.socket \
|
|
||||||
+ examples/systemd-user/gpg-agent.service \
|
|
||||||
+ examples/systemd-user/gpg-agent.socket \
|
|
||||||
+ examples/systemd-user/gpg-agent-ssh.socket \
|
|
||||||
+ examples/systemd-user/gpg-agent-browser.socket \
|
|
||||||
+ examples/systemd-user/gpg-agent-extra.socket \
|
|
||||||
examples/pwpattern.list
|
|
||||||
|
|
||||||
helpfiles = help.txt help.be.txt help.ca.txt help.cs.txt \
|
|
||||||
diff --git b/doc/examples/README a/doc/examples/README
|
|
||||||
index cd341ab57..67508c471 100644
|
|
||||||
--- b/doc/examples/README
|
|
||||||
+++ a/doc/examples/README
|
|
||||||
@@ -8,6 +8,8 @@ trustlist.txt A list of trustworthy root certificates
|
|
||||||
|
|
||||||
gpgconf.conf A sample configuration file for gpgconf.
|
|
||||||
|
|
||||||
+systemd-user Sample files for a Linux-only init system.
|
|
||||||
+
|
|
||||||
qualified.txt Sample file for qualified.txt.
|
|
||||||
|
|
||||||
common.conf Sample file for common options.
|
|
||||||
diff --git b/doc/examples/gpgconf.conf a/doc/examples/gpgconf.conf
|
|
||||||
index 314b955b9..a61d4d453 100644
|
|
||||||
--- b/doc/examples/gpgconf.conf
|
|
||||||
+++ a/doc/examples/gpgconf.conf
|
|
||||||
@@ -1,9 +1,5 @@
|
|
||||||
# gpgconf.conf - configuration for gpgconf
|
|
||||||
#----------------------------------------------------------------------
|
|
||||||
-#
|
|
||||||
-# === The use of this feature is deprecated ===
|
|
||||||
-# == Please use the more powerful global options. ==
|
|
||||||
-#
|
|
||||||
# This file is read by gpgconf(1) to setup defaults for all or
|
|
||||||
# specified users and groups. It may be used to change the hardwired
|
|
||||||
# defaults in gpgconf and to enforce certain values for the various
|
|
||||||
diff --git b/doc/examples/systemd-user/README a/doc/examples/systemd-user/README
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000..43122f568
|
|
||||||
--- /dev/null
|
|
||||||
+++ a/doc/examples/systemd-user/README
|
|
||||||
@@ -0,0 +1,66 @@
|
|
||||||
+Socket-activated dirmngr and gpg-agent with systemd
|
|
||||||
+===================================================
|
|
||||||
+
|
|
||||||
+When used on a GNU/Linux system supervised by systemd, you can ensure
|
|
||||||
+that the GnuPG daemons dirmngr and gpg-agent are launched
|
|
||||||
+automatically the first time they're needed, and shut down cleanly at
|
|
||||||
+session logout. This is done by enabling user services via
|
|
||||||
+socket-activation.
|
|
||||||
+
|
|
||||||
+System distributors
|
|
||||||
+-------------------
|
|
||||||
+
|
|
||||||
+The *.service and *.socket files (from this directory) should be
|
|
||||||
+placed in /usr/lib/systemd/user/ alongside other user-session services
|
|
||||||
+and sockets.
|
|
||||||
+
|
|
||||||
+To enable socket-activated dirmngr for all accounts on the system,
|
|
||||||
+use:
|
|
||||||
+
|
|
||||||
+ systemctl --user --global enable dirmngr.socket
|
|
||||||
+
|
|
||||||
+To enable socket-activated gpg-agent for all accounts on the system,
|
|
||||||
+use:
|
|
||||||
+
|
|
||||||
+ systemctl --user --global enable gpg-agent.socket
|
|
||||||
+
|
|
||||||
+Additionally, you can enable socket-activated gpg-agent ssh-agent
|
|
||||||
+emulation for all accounts on the system with:
|
|
||||||
+
|
|
||||||
+ systemctl --user --global enable gpg-agent-ssh.socket
|
|
||||||
+
|
|
||||||
+You can also enable restricted ("--extra-socket"-style) gpg-agent
|
|
||||||
+sockets for all accounts on the system with:
|
|
||||||
+
|
|
||||||
+ systemctl --user --global enable gpg-agent-extra.socket
|
|
||||||
+
|
|
||||||
+Individual users
|
|
||||||
+----------------
|
|
||||||
+
|
|
||||||
+A user on a system with systemd where this has not been installed
|
|
||||||
+system-wide can place these files in ~/.config/systemd/user/ to make
|
|
||||||
+them available.
|
|
||||||
+
|
|
||||||
+If a given service isn't installed system-wide, or if it's installed
|
|
||||||
+system-wide but not globally enabled, individual users will still need
|
|
||||||
+to enable them. For example, to enable socket-activated dirmngr for
|
|
||||||
+all future sessions:
|
|
||||||
+
|
|
||||||
+ systemctl --user enable dirmngr.socket
|
|
||||||
+
|
|
||||||
+To enable socket-activated gpg-agent with ssh support, do:
|
|
||||||
+
|
|
||||||
+ systemctl --user enable gpg-agent.socket gpg-agent-ssh.socket
|
|
||||||
+
|
|
||||||
+These changes won't take effect until your next login after you've
|
|
||||||
+fully logged out (be sure to terminate any running daemons before
|
|
||||||
+logging out).
|
|
||||||
+
|
|
||||||
+If you'd rather try a socket-activated GnuPG daemon in an
|
|
||||||
+already-running session without logging out (with or without enabling
|
|
||||||
+it for all future sessions), kill any existing daemon and start the
|
|
||||||
+user socket directly. For example, to set up socket-activated dirmgnr
|
|
||||||
+in the current session:
|
|
||||||
+
|
|
||||||
+ gpgconf --kill dirmngr
|
|
||||||
+ systemctl --user start dirmngr.socket
|
|
||||||
diff --git b/doc/examples/systemd-user/dirmngr.service a/doc/examples/systemd-user/dirmngr.service
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000..3c060cde5
|
|
||||||
--- /dev/null
|
|
||||||
+++ a/doc/examples/systemd-user/dirmngr.service
|
|
||||||
@@ -0,0 +1,8 @@
|
|
||||||
+[Unit]
|
|
||||||
+Description=GnuPG network certificate management daemon
|
|
||||||
+Documentation=man:dirmngr(8)
|
|
||||||
+Requires=dirmngr.socket
|
|
||||||
+
|
|
||||||
+[Service]
|
|
||||||
+ExecStart=/usr/bin/dirmngr --supervised
|
|
||||||
+ExecReload=/usr/bin/gpgconf --reload dirmngr
|
|
||||||
diff --git b/doc/examples/systemd-user/dirmngr.socket a/doc/examples/systemd-user/dirmngr.socket
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000..ebabf896a
|
|
||||||
--- /dev/null
|
|
||||||
+++ a/doc/examples/systemd-user/dirmngr.socket
|
|
||||||
@@ -0,0 +1,11 @@
|
|
||||||
+[Unit]
|
|
||||||
+Description=GnuPG network certificate management daemon
|
|
||||||
+Documentation=man:dirmngr(8)
|
|
||||||
+
|
|
||||||
+[Socket]
|
|
||||||
+ListenStream=%t/gnupg/S.dirmngr
|
|
||||||
+SocketMode=0600
|
|
||||||
+DirectoryMode=0700
|
|
||||||
+
|
|
||||||
+[Install]
|
|
||||||
+WantedBy=sockets.target
|
|
||||||
diff --git b/doc/examples/systemd-user/gpg-agent-browser.socket a/doc/examples/systemd-user/gpg-agent-browser.socket
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000..bc8d344e1
|
|
||||||
--- /dev/null
|
|
||||||
+++ a/doc/examples/systemd-user/gpg-agent-browser.socket
|
|
||||||
@@ -0,0 +1,13 @@
|
|
||||||
+[Unit]
|
|
||||||
+Description=GnuPG cryptographic agent and passphrase cache (access for web browsers)
|
|
||||||
+Documentation=man:gpg-agent(1)
|
|
||||||
+
|
|
||||||
+[Socket]
|
|
||||||
+ListenStream=%t/gnupg/S.gpg-agent.browser
|
|
||||||
+FileDescriptorName=browser
|
|
||||||
+Service=gpg-agent.service
|
|
||||||
+SocketMode=0600
|
|
||||||
+DirectoryMode=0700
|
|
||||||
+
|
|
||||||
+[Install]
|
|
||||||
+WantedBy=sockets.target
|
|
||||||
diff --git b/doc/examples/systemd-user/gpg-agent-extra.socket a/doc/examples/systemd-user/gpg-agent-extra.socket
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000..5b87d09df
|
|
||||||
--- /dev/null
|
|
||||||
+++ a/doc/examples/systemd-user/gpg-agent-extra.socket
|
|
||||||
@@ -0,0 +1,13 @@
|
|
||||||
+[Unit]
|
|
||||||
+Description=GnuPG cryptographic agent and passphrase cache (restricted)
|
|
||||||
+Documentation=man:gpg-agent(1)
|
|
||||||
+
|
|
||||||
+[Socket]
|
|
||||||
+ListenStream=%t/gnupg/S.gpg-agent.extra
|
|
||||||
+FileDescriptorName=extra
|
|
||||||
+Service=gpg-agent.service
|
|
||||||
+SocketMode=0600
|
|
||||||
+DirectoryMode=0700
|
|
||||||
+
|
|
||||||
+[Install]
|
|
||||||
+WantedBy=sockets.target
|
|
||||||
diff --git b/doc/examples/systemd-user/gpg-agent-ssh.socket a/doc/examples/systemd-user/gpg-agent-ssh.socket
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000..798c1d967
|
|
||||||
--- /dev/null
|
|
||||||
+++ a/doc/examples/systemd-user/gpg-agent-ssh.socket
|
|
||||||
@@ -0,0 +1,13 @@
|
|
||||||
+[Unit]
|
|
||||||
+Description=GnuPG cryptographic agent (ssh-agent emulation)
|
|
||||||
+Documentation=man:gpg-agent(1) man:ssh-add(1) man:ssh-agent(1) man:ssh(1)
|
|
||||||
+
|
|
||||||
+[Socket]
|
|
||||||
+ListenStream=%t/gnupg/S.gpg-agent.ssh
|
|
||||||
+FileDescriptorName=ssh
|
|
||||||
+Service=gpg-agent.service
|
|
||||||
+SocketMode=0600
|
|
||||||
+DirectoryMode=0700
|
|
||||||
+
|
|
||||||
+[Install]
|
|
||||||
+WantedBy=sockets.target
|
|
||||||
diff --git b/doc/examples/systemd-user/gpg-agent.service a/doc/examples/systemd-user/gpg-agent.service
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000..a050fccdc
|
|
||||||
--- /dev/null
|
|
||||||
+++ a/doc/examples/systemd-user/gpg-agent.service
|
|
||||||
@@ -0,0 +1,8 @@
|
|
||||||
+[Unit]
|
|
||||||
+Description=GnuPG cryptographic agent and passphrase cache
|
|
||||||
+Documentation=man:gpg-agent(1)
|
|
||||||
+Requires=gpg-agent.socket
|
|
||||||
+
|
|
||||||
+[Service]
|
|
||||||
+ExecStart=/usr/bin/gpg-agent --supervised
|
|
||||||
+ExecReload=/usr/bin/gpgconf --reload gpg-agent
|
|
||||||
diff --git b/doc/examples/systemd-user/gpg-agent.socket a/doc/examples/systemd-user/gpg-agent.socket
|
|
||||||
new file mode 100644
|
|
||||||
index 000000000..4257c2c80
|
|
||||||
--- /dev/null
|
|
||||||
+++ a/doc/examples/systemd-user/gpg-agent.socket
|
|
||||||
@@ -0,0 +1,12 @@
|
|
||||||
+[Unit]
|
|
||||||
+Description=GnuPG cryptographic agent and passphrase cache
|
|
||||||
+Documentation=man:gpg-agent(1)
|
|
||||||
+
|
|
||||||
+[Socket]
|
|
||||||
+ListenStream=%t/gnupg/S.gpg-agent
|
|
||||||
+FileDescriptorName=std
|
|
||||||
+SocketMode=0600
|
|
||||||
+DirectoryMode=0700
|
|
||||||
+
|
|
||||||
+[Install]
|
|
||||||
+WantedBy=sockets.target
|
|
||||||
--
|
|
||||||
2.41.0
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
@ -1,200 +0,0 @@
|
|||||||
From 1e4f1550996334d2a631a5d769e937d29ace47bb Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jakub Jelen <jjelen@redhat.com>
|
|
||||||
Date: Thu, 9 Feb 2023 16:38:58 +0100
|
|
||||||
Subject: [PATCH gnupg] Revert the introduction of the RFC4880bis draft into
|
|
||||||
defaults
|
|
||||||
|
|
||||||
This reverts commit 4583f4fe2 (gpg: Merge --rfc4880bis features into
|
|
||||||
--gnupg, 2022-10-31).
|
|
||||||
---
|
|
||||||
g10/gpg.c | 35 ++++++++++++++++++++++++++++++++---
|
|
||||||
g10/keygen.c | 30 ++++++++++++++++++------------
|
|
||||||
2 files changed, 50 insertions(+), 15 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/g10/gpg.c b/g10/gpg.c
|
|
||||||
index dcab0a11a..796888013 100644
|
|
||||||
--- a/g10/gpg.c
|
|
||||||
+++ b/g10/gpg.c
|
|
||||||
@@ -247,6 +247,7 @@ enum cmd_and_opt_values
|
|
||||||
oGnuPG,
|
|
||||||
oRFC2440,
|
|
||||||
oRFC4880,
|
|
||||||
+ oRFC4880bis,
|
|
||||||
oOpenPGP,
|
|
||||||
oPGP7,
|
|
||||||
oPGP8,
|
|
||||||
@@ -636,6 +637,7 @@ static gpgrt_opt_t opts[] = {
|
|
||||||
ARGPARSE_s_n (oGnuPG, "no-pgp8", "@"),
|
|
||||||
ARGPARSE_s_n (oRFC2440, "rfc2440", "@"),
|
|
||||||
ARGPARSE_s_n (oRFC4880, "rfc4880", "@"),
|
|
||||||
+ ARGPARSE_s_n (oRFC4880bis, "rfc4880bis", "@"),
|
|
||||||
ARGPARSE_s_n (oOpenPGP, "openpgp", N_("use strict OpenPGP behavior")),
|
|
||||||
ARGPARSE_s_n (oPGP7, "pgp6", "@"),
|
|
||||||
ARGPARSE_s_n (oPGP7, "pgp7", "@"),
|
|
||||||
@@ -978,7 +980,6 @@ static gpgrt_opt_t opts[] = {
|
|
||||||
ARGPARSE_s_n (oNoop, "no-allow-multiple-messages", "@"),
|
|
||||||
ARGPARSE_s_s (oNoop, "aead-algo", "@"),
|
|
||||||
ARGPARSE_s_s (oNoop, "personal-aead-preferences","@"),
|
|
||||||
- ARGPARSE_s_n (oNoop, "rfc4880bis", "@"),
|
|
||||||
ARGPARSE_s_n (oNoop, "override-compliance-check", "@"),
|
|
||||||
|
|
||||||
|
|
||||||
@@ -2227,7 +2228,7 @@ static struct gnupg_compliance_option compliance_options[] =
|
|
||||||
{
|
|
||||||
{ "gnupg", oGnuPG },
|
|
||||||
{ "openpgp", oOpenPGP },
|
|
||||||
- { "rfc4880bis", oGnuPG },
|
|
||||||
+ { "rfc4880bis", oRFC4880bis },
|
|
||||||
{ "rfc4880", oRFC4880 },
|
|
||||||
{ "rfc2440", oRFC2440 },
|
|
||||||
{ "pgp6", oPGP7 },
|
|
||||||
@@ -2243,8 +2244,28 @@ static struct gnupg_compliance_option compliance_options[] =
|
|
||||||
static void
|
|
||||||
set_compliance_option (enum cmd_and_opt_values option)
|
|
||||||
{
|
|
||||||
+ opt.flags.rfc4880bis = 0; /* Clear because it is initially set. */
|
|
||||||
+
|
|
||||||
switch (option)
|
|
||||||
{
|
|
||||||
+ case oRFC4880bis:
|
|
||||||
+ opt.flags.rfc4880bis = 1;
|
|
||||||
+ opt.compliance = CO_RFC4880;
|
|
||||||
+ opt.flags.dsa2 = 1;
|
|
||||||
+ opt.flags.require_cross_cert = 1;
|
|
||||||
+ opt.rfc2440_text = 0;
|
|
||||||
+ opt.allow_non_selfsigned_uid = 1;
|
|
||||||
+ opt.allow_freeform_uid = 1;
|
|
||||||
+ opt.escape_from = 1;
|
|
||||||
+ opt.not_dash_escaped = 0;
|
|
||||||
+ opt.def_cipher_algo = 0;
|
|
||||||
+ opt.def_digest_algo = 0;
|
|
||||||
+ opt.cert_digest_algo = 0;
|
|
||||||
+ opt.compress_algo = -1;
|
|
||||||
+ opt.s2k_mode = 3; /* iterated+salted */
|
|
||||||
+ opt.s2k_digest_algo = DIGEST_ALGO_SHA256;
|
|
||||||
+ opt.s2k_cipher_algo = CIPHER_ALGO_AES256;
|
|
||||||
+ break;
|
|
||||||
case oOpenPGP:
|
|
||||||
case oRFC4880:
|
|
||||||
/* This is effectively the same as RFC2440, but with
|
|
||||||
@@ -2288,6 +2309,7 @@ set_compliance_option (enum cmd_and_opt_values option)
|
|
||||||
case oPGP8: opt.compliance = CO_PGP8; break;
|
|
||||||
case oGnuPG:
|
|
||||||
opt.compliance = CO_GNUPG;
|
|
||||||
+ opt.flags.rfc4880bis = 1;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case oDE_VS:
|
|
||||||
@@ -2491,6 +2513,7 @@ main (int argc, char **argv)
|
|
||||||
opt.emit_version = 0;
|
|
||||||
opt.weak_digests = NULL;
|
|
||||||
opt.compliance = CO_GNUPG;
|
|
||||||
+ opt.flags.rfc4880bis = 1;
|
|
||||||
|
|
||||||
/* Check special options given on the command line. */
|
|
||||||
orig_argc = argc;
|
|
||||||
@@ -3033,6 +3056,7 @@ main (int argc, char **argv)
|
|
||||||
case oOpenPGP:
|
|
||||||
case oRFC2440:
|
|
||||||
case oRFC4880:
|
|
||||||
+ case oRFC4880bis:
|
|
||||||
case oPGP7:
|
|
||||||
case oPGP8:
|
|
||||||
case oGnuPG:
|
|
||||||
@@ -3862,6 +3886,11 @@ main (int argc, char **argv)
|
|
||||||
if( may_coredump && !opt.quiet )
|
|
||||||
log_info(_("WARNING: program may create a core file!\n"));
|
|
||||||
|
|
||||||
+ if (!opt.flags.rfc4880bis)
|
|
||||||
+ {
|
|
||||||
+ opt.mimemode = 0; /* This will use text mode instead. */
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
if (eyes_only) {
|
|
||||||
if (opt.set_filename)
|
|
||||||
log_info(_("WARNING: %s overrides %s\n"),
|
|
||||||
@@ -4078,7 +4107,7 @@ main (int argc, char **argv)
|
|
||||||
/* Check our chosen algorithms against the list of legal
|
|
||||||
algorithms. */
|
|
||||||
|
|
||||||
- if(!GNUPG)
|
|
||||||
+ if(!GNUPG && !opt.flags.rfc4880bis)
|
|
||||||
{
|
|
||||||
const char *badalg=NULL;
|
|
||||||
preftype_t badtype=PREFTYPE_NONE;
|
|
||||||
diff --git a/g10/keygen.c b/g10/keygen.c
|
|
||||||
index a2cfe3ccf..2a1dd1f81 100644
|
|
||||||
--- a/g10/keygen.c
|
|
||||||
+++ b/g10/keygen.c
|
|
||||||
@@ -404,7 +404,7 @@ keygen_set_std_prefs (const char *string,int personal)
|
|
||||||
strcat(dummy_string,"S7 ");
|
|
||||||
strcat(dummy_string,"S2 "); /* 3DES */
|
|
||||||
|
|
||||||
- if (!openpgp_aead_test_algo (AEAD_ALGO_OCB))
|
|
||||||
+ if (opt.flags.rfc4880bis && !openpgp_aead_test_algo (AEAD_ALGO_OCB))
|
|
||||||
strcat(dummy_string,"A2 ");
|
|
||||||
|
|
||||||
if (personal)
|
|
||||||
@@ -889,7 +889,7 @@ keygen_upd_std_prefs (PKT_signature *sig, void *opaque)
|
|
||||||
/* Make sure that the MDC feature flag is set if needed. */
|
|
||||||
add_feature_mdc (sig,mdc_available);
|
|
||||||
add_feature_aead (sig, aead_available);
|
|
||||||
- add_feature_v5 (sig, 1);
|
|
||||||
+ add_feature_v5 (sig, opt.flags.rfc4880bis);
|
|
||||||
add_keyserver_modify (sig,ks_modify);
|
|
||||||
keygen_add_keyserver_url(sig,NULL);
|
|
||||||
|
|
||||||
@@ -3382,7 +3382,10 @@ parse_key_parameter_part (ctrl_t ctrl,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (!ascii_strcasecmp (s, "v5"))
|
|
||||||
- keyversion = 5;
|
|
||||||
+ {
|
|
||||||
+ if (opt.flags.rfc4880bis)
|
|
||||||
+ keyversion = 5;
|
|
||||||
+ }
|
|
||||||
else if (!ascii_strcasecmp (s, "v4"))
|
|
||||||
keyversion = 4;
|
|
||||||
else
|
|
||||||
@@ -3641,7 +3644,7 @@ parse_key_parameter_part (ctrl_t ctrl,
|
|
||||||
* ecdsa := Use algorithm ECDSA.
|
|
||||||
* eddsa := Use algorithm EdDSA.
|
|
||||||
* ecdh := Use algorithm ECDH.
|
|
||||||
- * v5 := Create version 5 key
|
|
||||||
+ * v5 := Create version 5 key (requires option --rfc4880bis)
|
|
||||||
*
|
|
||||||
* There are several defaults and fallbacks depending on the
|
|
||||||
* algorithm. PART can be used to select which part of STRING is
|
|
||||||
@@ -4513,9 +4516,9 @@ read_parameter_file (ctrl_t ctrl, const char *fname )
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- if ((keywords[i].key == pVERSION
|
|
||||||
- || keywords[i].key == pSUBVERSION))
|
|
||||||
- ; /* Ignore version. */
|
|
||||||
+ if (!opt.flags.rfc4880bis && (keywords[i].key == pVERSION
|
|
||||||
+ || keywords[i].key == pSUBVERSION))
|
|
||||||
+ ; /* Ignore version unless --rfc4880bis is active. */
|
|
||||||
else
|
|
||||||
{
|
|
||||||
r = xmalloc_clear( sizeof *r + strlen( value ) );
|
|
||||||
@@ -4610,11 +4613,14 @@ quickgen_set_para (struct para_data_s *para, int for_subkey,
|
|
||||||
para = r;
|
|
||||||
}
|
|
||||||
|
|
||||||
- r = xmalloc_clear (sizeof *r + 20);
|
|
||||||
- r->key = for_subkey? pSUBVERSION : pVERSION;
|
|
||||||
- snprintf (r->u.value, 20, "%d", version);
|
|
||||||
- r->next = para;
|
|
||||||
- para = r;
|
|
||||||
+ if (opt.flags.rfc4880bis)
|
|
||||||
+ {
|
|
||||||
+ r = xmalloc_clear (sizeof *r + 20);
|
|
||||||
+ r->key = for_subkey? pSUBVERSION : pVERSION;
|
|
||||||
+ snprintf (r->u.value, 20, "%d", version);
|
|
||||||
+ r->next = para;
|
|
||||||
+ para = r;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
if (keytime)
|
|
||||||
{
|
|
@ -1,86 +0,0 @@
|
|||||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
|
||||||
|
|
||||||
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
|
|
||||||
eiInsGZ/+h5XYrpXTgA=
|
|
||||||
=4+Sn
|
|
||||||
-----END PGP PUBLIC KEY BLOCK-----
|
|
Loading…
Reference in new issue