mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-03 22:56:33 +02:00
* verify.c (gpgsm_verify): Detect certs-only message.
This commit is contained in:
parent
c1791a8d15
commit
8337455483
11 changed files with 120 additions and 41 deletions
17
sm/verify.c
17
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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue