1
0
mirror of git://git.gnupg.org/gnupg.git synced 2024-09-25 15:41:41 +02:00

kbx: Make user id and signature data optional for OpenPGP.

* kbx/keybox-blob.c (_keybox_create_openpgp_blob): Remove restriction.
--

Although self-signature and key binding signatures are required by
OpenPGP, we should not enforce that in the storage backend.
This commit is contained in:
Werner Koch 2014-08-18 12:55:29 +02:00
parent 57df1121c1
commit e4aa006e48

View File

@ -702,9 +702,6 @@ _keybox_create_openpgp_blob (KEYBOXBLOB *r_blob,
*r_blob = NULL; *r_blob = NULL;
if (!info->nuids || !info->nsigs)
return gpg_error (GPG_ERR_BAD_PUBKEY);
/* If we have a signature status vector, check that the number of /* If we have a signature status vector, check that the number of
elements matches the actual number of signatures. */ elements matches the actual number of signatures. */
if (sigstatus && sigstatus[0] != info->nsigs) if (sigstatus && sigstatus[0] != info->nsigs)
@ -721,20 +718,28 @@ _keybox_create_openpgp_blob (KEYBOXBLOB *r_blob,
err = gpg_error_from_syserror (); err = gpg_error_from_syserror ();
goto leave; goto leave;
} }
blob->nuids = info->nuids; blob->nuids = info->nuids;
if (blob->nuids)
{
blob->uids = xtrycalloc (blob->nuids, sizeof *blob->uids ); blob->uids = xtrycalloc (blob->nuids, sizeof *blob->uids );
if (!blob->uids) if (!blob->uids)
{ {
err = gpg_error_from_syserror (); err = gpg_error_from_syserror ();
goto leave; goto leave;
} }
}
blob->nsigs = info->nsigs; blob->nsigs = info->nsigs;
if (blob->nsigs)
{
blob->sigs = xtrycalloc (blob->nsigs, sizeof *blob->sigs ); blob->sigs = xtrycalloc (blob->nsigs, sizeof *blob->sigs );
if (!blob->sigs) if (!blob->sigs)
{ {
err = gpg_error_from_syserror (); err = gpg_error_from_syserror ();
goto leave; goto leave;
} }
}
err = pgp_create_key_part (blob, info); err = pgp_create_key_part (blob, info);
if (err) if (err)