mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-03 22:56:33 +02:00
gpg: Prepare for a new export option export-realclean.
* g10/options.h (EXPORT_REALCLEAN): New. Also re-assign other values to keep them more in sync with the corresponding import values. * g10/export.c (parse_export_options): Add "export-realclean". (do_export_stream): Call clean_all_uids directly with the options arg. * g10/import.c (import_one_real): Change for direct use of options in clean_all_uids. * g10/key-clean.c (is_trusted_key_sig): New. Stub for now. (clean_sigs_from_uid): Re-purpose self_only to a general options arg. Implement EXPORT_REALCLEAN code path. (clean_one_uid): Re-purpose self_only to a general options arg. (clean_all_uids): Ditto. * g10/keyedit.c (keyedit_menu): Use EXPORT_MINIMAL instead of a simple flag. (menu_clean): Re-purpose self_only to a general options arg. * g10/keyid.c (fpr20_from_pk): Factor code out to .... (fpr20_from_fpr): new. Remove useless case for ARRAY being NULL. * g10/tdbio.c (tdbio_search_trust_byfpr): Add arg fprlen and use fpr20_from_fpr if needed. (tdbio_search_trust_bypk): Pass 20 for the fingerprint length. -- Note that this code has no function yet. Another patch will follow to extract the trusted-keys flag from the trustdb.
This commit is contained in:
parent
233bf39323
commit
74e4dd3668
11 changed files with 105 additions and 46 deletions
40
g10/keyid.c
40
g10/keyid.c
|
@ -1050,6 +1050,32 @@ v5_fingerprint_from_pk (PKT_public_key *pk, byte *array, size_t *ret_len)
|
|||
}
|
||||
|
||||
|
||||
/*
|
||||
* This is the core of fpr20_from_pk which directly takes a
|
||||
* fingerprint and its length instead of the public key. See below
|
||||
* for details.
|
||||
*/
|
||||
void
|
||||
fpr20_from_fpr (const byte *fpr, unsigned int fprlen, byte array[20])
|
||||
{
|
||||
if (fprlen >= 32) /* v5 fingerprint (or larger) */
|
||||
{
|
||||
memcpy (array + 0, fpr + 20, 4);
|
||||
memcpy (array + 4, fpr + 24, 4);
|
||||
memcpy (array + 8, fpr + 28, 4);
|
||||
memcpy (array + 12, fpr + 0, 4); /* kid[0] */
|
||||
memcpy (array + 16, fpr + 4, 4); /* kid[1] */
|
||||
}
|
||||
else if (fprlen == 20) /* v4 fingerprint */
|
||||
memcpy (array, fpr, 20);
|
||||
else /* v3 or too short: fill up with zeroes. */
|
||||
{
|
||||
memset (array, 0, 20);
|
||||
memcpy (array, fpr, fprlen);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Get FPR20 for the given PK/SK into ARRAY.
|
||||
*
|
||||
|
@ -1066,19 +1092,7 @@ fpr20_from_pk (PKT_public_key *pk, byte array[20])
|
|||
if (!pk->fprlen)
|
||||
compute_fingerprint (pk);
|
||||
|
||||
if (!array)
|
||||
array = xmalloc (pk->fprlen);
|
||||
|
||||
if (pk->fprlen == 32) /* v5 fingerprint */
|
||||
{
|
||||
memcpy (array + 0, pk->fpr + 20, 4);
|
||||
memcpy (array + 4, pk->fpr + 24, 4);
|
||||
memcpy (array + 8, pk->fpr + 28, 4);
|
||||
memcpy (array + 12, pk->fpr + 0, 4); /* kid[0] */
|
||||
memcpy (array + 16, pk->fpr + 4, 4); /* kid[1] */
|
||||
}
|
||||
else /* v4 fingerprint */
|
||||
memcpy (array, pk->fpr, 20);
|
||||
fpr20_from_fpr (pk->fpr, pk->fprlen, array);
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue