aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--agent/command.c10
-rw-r--r--agent/keyformat.txt5
2 files changed, 9 insertions, 6 deletions
diff --git a/agent/command.c b/agent/command.c
index 8642498d6..145c9595a 100644
--- a/agent/command.c
+++ b/agent/command.c
@@ -1030,9 +1030,13 @@ cmd_readkey (assuan_context_t ctx, char *line)
goto leave;
}
- rc = agent_write_shadow_key (grip, serialno, keyid, pkbuf, 0);
- if (rc)
- goto leave;
+ if (agent_key_available (grip))
+ {
+ /* (Shadow)-key is not available in our key storage. */
+ rc = agent_write_shadow_key (grip, serialno, keyid, pkbuf, 0);
+ if (rc)
+ goto leave;
+ }
rc = assuan_send_data (ctx, pkbuf, pkbuflen);
}
diff --git a/agent/keyformat.txt b/agent/keyformat.txt
index 24d742048..259166aba 100644
--- a/agent/keyformat.txt
+++ b/agent/keyformat.txt
@@ -44,9 +44,8 @@ convention. Example (here indented with two spaces):
(#D2760001240102000005000011730000# OPENPGP.1)
)))
-GnuPG 2.2 is able to read and update keys using the new format, but
-will not create new files using the new format. Furthermore, it only
-makes use of the value stored under the name 'Key:'.
+GnuPG 2.2 is also able to read and write keys using the new format
+However, it only makes use of the value stored under the name 'Key:'.
Keys in the extended format can be recognized by looking at the first
byte of the file. If it starts with a '(' it is a naked S-expression,