X-Git-Url: http://the.earth.li/gitweb/?a=blobdiff_plain;f=keydb_fs.c;h=26eb99e70ea98d70dd7a76becd6fca719078d016;hb=23f086c85c5d2db35e9ce76cf0bbf72200b4dc42;hp=67bfc62f58c87890ddffd5a3758661cadb7ed223;hpb=ba236fc3d763f23987f70f15ba43ac3667f2d08c;p=onak.git diff --git a/keydb_fs.c b/keydb_fs.c index 67bfc62..26eb99e 100644 --- a/keydb_fs.c +++ b/keydb_fs.c @@ -300,7 +300,7 @@ static int fs_store_key(struct onak_dbctx *dbctx, uint64_t keyid; struct ll *wordlist = NULL, *wl = NULL; struct skshash hash; - uint64_t *subkeyids = NULL; + struct openpgp_fingerprint *subkeyids = NULL; uint32_t hashid; int i = 0; @@ -348,12 +348,14 @@ static int fs_store_key(struct onak_dbctx *dbctx, subkeyids = keysubkeys(publickey); i = 0; - while (subkeyids != NULL && subkeyids[i] != 0) { - prove_path_to(subkeyids[i], "subkeys"); + while (subkeyids != NULL && subkeyids[i].length != 0) { + keyid = fingerprint2keyid(&subkeyids[i]); - subkeydir(wbuffer, sizeof(wbuffer), subkeyids[i]); + prove_path_to(keyid, "subkeys"); + + subkeydir(wbuffer, sizeof(wbuffer), keyid); mkdir(wbuffer, 0777); - subkeypath(wbuffer, sizeof(wbuffer), subkeyids[i]); + subkeypath(wbuffer, sizeof(wbuffer), keyid); link(buffer, wbuffer); i++; @@ -388,7 +390,8 @@ static int fs_delete_key(struct onak_dbctx *dbctx, uint64_t keyid, bool intrans) struct openpgp_publickey *pk = NULL; struct skshash hash; struct ll *wordlist = NULL, *wl = NULL; - uint64_t *subkeyids = NULL; + struct openpgp_fingerprint *subkeyids = NULL; + uint64_t subkeyid; int i = 0; if ((keyid >> 32) == 0) @@ -418,10 +421,11 @@ static int fs_delete_key(struct onak_dbctx *dbctx, uint64_t keyid, bool intrans) subkeyids = keysubkeys(pk); i = 0; - while (subkeyids != NULL && subkeyids[i] != 0) { - prove_path_to(subkeyids[i], "subkeys"); + while (subkeyids != NULL && subkeyids[i].length != 0) { + subkeyid = fingerprint2keyid(&subkeyids[i]); + prove_path_to(subkeyid, "subkeys"); - subkeypath(buffer, sizeof(buffer), subkeyids[i]); + subkeypath(buffer, sizeof(buffer), subkeyid); unlink(buffer); i++;