summaryrefslogtreecommitdiffstats
path: root/g10/tdbio.c
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>2024-03-04 14:22:42 +0100
committerWerner Koch <wk@gnupg.org>2024-03-04 14:22:42 +0100
commit74e4dd3668b3a737eb7929da5f5de2f12f6ca9b8 (patch)
tree9dbdd3dc1a64d0aa861013a9448c4c5d099b3aca /g10/tdbio.c
parentbuild: Extend getswdb.sh to allow a verified download (diff)
downloadgnupg2-74e4dd3668b3a737eb7929da5f5de2f12f6ca9b8.tar.xz
gnupg2-74e4dd3668b3a737eb7929da5f5de2f12f6ca9b8.zip
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.
Diffstat (limited to 'g10/tdbio.c')
-rw-r--r--g10/tdbio.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/g10/tdbio.c b/g10/tdbio.c
index 1b68f772f..7ee62fca0 100644
--- a/g10/tdbio.c
+++ b/g10/tdbio.c
@@ -1864,13 +1864,21 @@ cmp_trec_fpr ( const void *fpr, const TRUSTREC *rec )
* Return: 0 if found, GPG_ERR_NOT_FOUND, or another error code.
*/
gpg_error_t
-tdbio_search_trust_byfpr (ctrl_t ctrl, const byte *fingerprint, TRUSTREC *rec)
+tdbio_search_trust_byfpr (ctrl_t ctrl, const byte *fpr, unsigned int fprlen,
+ TRUSTREC *rec)
{
int rc;
+ byte fingerprint[20];
+
+ if (fprlen != 20)
+ {
+ fpr20_from_fpr (fpr, fprlen, fingerprint);
+ fpr = fingerprint;
+ }
/* Locate the trust record using the hash table */
- rc = lookup_hashtable (get_trusthashrec (ctrl), fingerprint, 20,
- cmp_trec_fpr, fingerprint, rec );
+ rc = lookup_hashtable (get_trusthashrec (ctrl), fpr, 20,
+ cmp_trec_fpr, fpr, rec);
return rc;
}
@@ -1887,7 +1895,7 @@ tdbio_search_trust_bypk (ctrl_t ctrl, PKT_public_key *pk, TRUSTREC *rec)
byte fingerprint[20];
fpr20_from_pk (pk, fingerprint);
- return tdbio_search_trust_byfpr (ctrl, fingerprint, rec);
+ return tdbio_search_trust_byfpr (ctrl, fingerprint, 20, rec);
}