diff options
author | Werner Koch <[email protected]> | 2002-03-12 13:36:29 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2002-03-12 13:36:29 +0000 |
commit | 83374554830904dfc6f2010e3fcdd9a1a864a2e6 (patch) | |
tree | 7323408f5ce8764ed3fa1dae665b6f8b23f8c1bb /sm/verify.c | |
parent | * server.c (cmd_listkeys, cmd_listsecretkeys): Divert to (diff) | |
download | gnupg-83374554830904dfc6f2010e3fcdd9a1a864a2e6.tar.gz gnupg-83374554830904dfc6f2010e3fcdd9a1a864a2e6.zip |
* verify.c (gpgsm_verify): Detect certs-only message.
Diffstat (limited to '')
-rw-r--r-- | sm/verify.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/sm/verify.c b/sm/verify.c index 6ff1cafaa..69e18ac25 100644 --- a/sm/verify.c +++ b/sm/verify.c @@ -201,12 +201,10 @@ gpgsm_verify (CTRL ctrl, int in_fd, int data_fd, FILE *out_fp) if (is_detached) { if (data_fd == -1) - { - log_error ("detached signature but no data given\n"); - rc = GNUPG_Bad_Signature; - goto leave; - } - hash_data (data_fd, data_md); + log_info ("detached signature w/o data " + "- assuming certs-only\n"); + else + hash_data (data_fd, data_md); } else { @@ -259,6 +257,12 @@ gpgsm_verify (CTRL ctrl, int in_fd, int data_fd, FILE *out_fp) size_t msgdigestlen; err = ksba_cms_get_issuer_serial (cms, signer, &issuer, &serial); + if (!signer && err == KSBA_No_Data && data_fd == -1 && is_detached) + { + log_info ("certs-only message accepted\n"); + err = 0; + break; + } if (err) break; log_debug ("signer %d - issuer: `%s'\n", signer, issuer? issuer:"[NONE]"); @@ -424,3 +428,4 @@ gpgsm_verify (CTRL ctrl, int in_fd, int data_fd, FILE *out_fp) fclose (fp); return rc; } + |