* @publickey: A pointer to a structure to return the key in.
* @intrans: If we're already in a transaction.
*/
-static int fs_fetch_key(uint64_t keyid, struct openpgp_publickey **publickey,
+static int fs_fetch_key_id(uint64_t keyid,
+ struct openpgp_publickey **publickey,
bool intrans)
{
static char buffer[PATH_MAX];
uint32_t hashid;
int i = 0;
- get_keyid(publickey, &keyid);
+ if (get_keyid(publickey, &keyid) != ONAK_E_OK) {
+ logthing(LOGTHING_ERROR, "Couldn't find key ID for key.");
+ return 0;
+ }
if (!intrans)
fs_starttrans();
if (!intrans)
fs_starttrans();
- ret = fs_fetch_key(keyid, &pk, true);
+ ret = fs_fetch_key_id(keyid, &pk, true);
if (ret) {
logthing(LOGTHING_DEBUG, "Wordlist for key %016" PRIX64,
while (wl) {
logthing(LOGTHING_DEBUG, "Adding key: %s", wl->object);
addedkeys +=
- fs_fetch_key(strtoull(wl->object, NULL, 16), publickey,
+ fs_fetch_key_id(strtoull(wl->object, NULL, 16), publickey,
false);
if (addedkeys >= config.maxkeys)
break;
#define NEED_KEYID2UID 1
#define NEED_GETKEYSIGS 1
#define NEED_UPDATEKEYS 1
+#define NEED_GET_FP 1
#include "keydb.c"
struct dbfuncs keydb_fs_funcs = {
.cleanupdb = fs_cleanupdb,
.starttrans = fs_starttrans,
.endtrans = fs_endtrans,
- .fetch_key = fs_fetch_key,
+ .fetch_key_id = fs_fetch_key_id,
+ .fetch_key_fp = generic_fetch_key_fp,
.fetch_key_text = fs_fetch_key_text,
.fetch_key_skshash = fs_fetch_key_skshash,
.store_key = fs_store_key,