aboutsummaryrefslogtreecommitdiffstats
path: root/sm/verify.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2002-03-12 13:36:29 +0000
committerWerner Koch <[email protected]>2002-03-12 13:36:29 +0000
commit83374554830904dfc6f2010e3fcdd9a1a864a2e6 (patch)
tree7323408f5ce8764ed3fa1dae665b6f8b23f8c1bb /sm/verify.c
parent* server.c (cmd_listkeys, cmd_listsecretkeys): Divert to (diff)
downloadgnupg-83374554830904dfc6f2010e3fcdd9a1a864a2e6.tar.gz
gnupg-83374554830904dfc6f2010e3fcdd9a1a864a2e6.zip
* verify.c (gpgsm_verify): Detect certs-only message.
Diffstat (limited to '')
-rw-r--r--sm/verify.c17
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;
}
+