DBT key, data;
DBC *cursor = NULL;
uint32_t shortkeyid = 0;
- uint64_t *subkeyids = NULL;
+ struct openpgp_fingerprint *subkeyids = NULL;
int ret = 0;
int i;
char **uids = NULL;
struct ll *curword = NULL;
bool deadlock = false;
struct skshash hash;
+ uint64_t subkeyid;
if (!intrans) {
db4_starttrans(dbctx);
subkeyids = keysubkeys(publickey);
i = 0;
- while (subkeyids != NULL && subkeyids[i] != 0) {
+ while (subkeyids != NULL && subkeyids[i].length != 0) {
+ subkeyid = fingerprint2keyid(&subkeyids[i]);
memset(&key, 0, sizeof(key));
- key.data = &subkeyids[i];
- key.size = sizeof(subkeyids[i]);
+ key.data = &subkeyid;
+ key.size = sizeof(subkeyid);
privctx->subkeydb->del(privctx->subkeydb,
privctx->txn, &key, 0);
if (ret != 0) {
}
}
- shortkeyid = subkeyids[i++] & 0xFFFFFFFF;
+ shortkeyid = subkeyid & 0xFFFFFFFF;
memset(&key, 0, sizeof(key));
memset(&data, 0, sizeof(data));
deadlock = true;
}
}
+ i++;
}
if (subkeyids != NULL) {
free(subkeyids);
DBT data;
uint64_t keyid = 0;
uint32_t shortkeyid = 0;
- uint64_t *subkeyids = NULL;
+ struct openpgp_fingerprint *subkeyids = NULL;
char **uids = NULL;
char *primary = NULL;
unsigned char worddb_data[12];
struct ll *curword = NULL;
bool deadlock = false;
struct skshash hash;
+ uint64_t subkeyid;
if (get_keyid(publickey, &keyid) != ONAK_E_OK) {
logthing(LOGTHING_ERROR, "Couldn't find key ID for key.");
if (!deadlock) {
subkeyids = keysubkeys(publickey);
i = 0;
- while (subkeyids != NULL && subkeyids[i] != 0) {
+ while (subkeyids != NULL && subkeyids[i].length != 0) {
+ subkeyid = fingerprint2keyid(&subkeyids[i]);
/* Store the subkey ID -> main key ID mapping */
memset(&key, 0, sizeof(key));
memset(&data, 0, sizeof(data));
- key.data = &subkeyids[i];
- key.size = sizeof(subkeyids[i]);
+ key.data = &subkeyid;
+ key.size = sizeof(subkeyid);
data.data = &keyid;
data.size = sizeof(keyid);
}
/* Store the short subkey ID -> main key ID mapping */
- shortkeyid = subkeyids[i++] & 0xFFFFFFFF;
+ shortkeyid = subkeyid & 0xFFFFFFFF;
memset(&key, 0, sizeof(key));
memset(&data, 0, sizeof(data));
deadlock = true;
}
}
+ i++;
}
if (subkeyids != NULL) {
free(subkeyids);