mirror of
git://git.gnupg.org/gnupg.git
synced 2025-01-21 14:47:03 +01:00
gpg: Report STATUS_NO_SECKEY when it is examined.
* g10/packet.h (struct pubkey_enc_list): Add result. * g10/mainproc.c (proc_pubkey_enc): Initialize ->result. (proc_encrypted): Report STATUS_NO_SECKEY status. * g10/pubkey-enc.c (get_session_key): Set ->result. -- This change is for GPGME compatibility. Before this change, gpgme/tests/json/t-json failed with t-decrypt-verify. Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
This commit is contained in:
parent
6c000d4b78
commit
dafffa95b2
@ -481,6 +481,7 @@ proc_pubkey_enc (CTX c, PACKET *pkt)
|
||||
x->keyid[0] = enc->keyid[0];
|
||||
x->keyid[1] = enc->keyid[1];
|
||||
x->pubkey_algo = enc->pubkey_algo;
|
||||
x->result = -1;
|
||||
x->data[0] = x->data[1] = NULL;
|
||||
if (enc->data[0])
|
||||
{
|
||||
@ -577,22 +578,21 @@ proc_encrypted (CTX c, PACKET *pkt)
|
||||
{
|
||||
c->dek = xmalloc_secure_clear (sizeof *c->dek);
|
||||
result = get_session_key (c->ctrl, c->pkenc_list, c->dek);
|
||||
if (result == GPG_ERR_NO_SECKEY)
|
||||
if (is_status_enabled ())
|
||||
{
|
||||
if (is_status_enabled ())
|
||||
{
|
||||
struct pubkey_enc_list *list;
|
||||
struct pubkey_enc_list *list;
|
||||
|
||||
for (list = c->pkenc_list; list; list = list->next)
|
||||
{
|
||||
char buf[20];
|
||||
snprintf (buf, sizeof buf, "%08lX%08lX",
|
||||
(ulong)list->keyid[0], (ulong)list->keyid[1]);
|
||||
write_status_text (STATUS_NO_SECKEY, buf);
|
||||
}
|
||||
}
|
||||
for (list = c->pkenc_list; list; list = list->next)
|
||||
if (list->result == GPG_ERR_NO_SECKEY)
|
||||
{
|
||||
char buf[20];
|
||||
snprintf (buf, sizeof buf, "%08lX%08lX",
|
||||
(ulong)list->keyid[0], (ulong)list->keyid[1]);
|
||||
write_status_text (STATUS_NO_SECKEY, buf);
|
||||
}
|
||||
}
|
||||
else if (result)
|
||||
|
||||
if (result)
|
||||
{
|
||||
log_info (_("public key decryption failed: %s\n"),
|
||||
gpg_strerror (result));
|
||||
|
@ -137,6 +137,7 @@ struct pubkey_enc_list
|
||||
struct pubkey_enc_list *next;
|
||||
u32 keyid[2];
|
||||
int pubkey_algo;
|
||||
int result;
|
||||
gcry_mpi_t data[PUBKEY_MAX_NENC];
|
||||
};
|
||||
|
||||
|
@ -132,6 +132,8 @@ get_session_key (ctrl_t ctrl, struct pubkey_enc_list *list, DEK *dek)
|
||||
if (openpgp_pk_test_algo2 (k->pubkey_algo, PUBKEY_USAGE_ENC))
|
||||
continue;
|
||||
|
||||
k->result = GPG_ERR_NO_SECKEY;
|
||||
|
||||
if (sk->pubkey_algo != k->pubkey_algo)
|
||||
continue;
|
||||
|
||||
@ -155,6 +157,7 @@ get_session_key (ctrl_t ctrl, struct pubkey_enc_list *list, DEK *dek)
|
||||
rc = get_it (ctrl, k, dek, sk, keyid);
|
||||
if (!rc)
|
||||
{
|
||||
k->result = 0;
|
||||
if (!opt.quiet && !k->keyid[0] && !k->keyid[1])
|
||||
log_info (_("okay, we are the anonymous recipient.\n"));
|
||||
search_for_secret_keys = 0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user