]> the.earth.li Git - onak.git/blobdiff - keydb_fs.c
Add support for displaying EC/ECDSA key types
[onak.git] / keydb_fs.c
index 02adf6bae1972b069c393581f92fcea3fde1ee1d..b7117bebab4ffeda8f4bf36a2b650eb3c600a256 100644 (file)
@@ -1,9 +1,20 @@
 /*
- * keydb.h - Routines to store and fetch keys.
+ * keydb_fs.c - Routines to store and fetch keys in a filesystem hierarchy.
  *
- * Daniel Silverstone <dsilvers@digital-scurf.org>
+ * Copyright 2004 Daniel Silverstone <dsilvers@digital-scurf.org>
  *
- * Copyright 2004 Daniel Silverstone and Project Purple
+ * This program is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc., 51
+ * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  */
 
 #include <sys/types.h>
@@ -318,13 +329,17 @@ static int fs_store_key(struct openpgp_publickey *publickey, bool intrans,
        struct openpgp_packet_list *packets = NULL;
        struct openpgp_packet_list *list_end = NULL;
        struct openpgp_publickey *next = NULL;
-       uint64_t keyid = get_keyid(publickey);
+       uint64_t keyid;
        struct ll *wordlist = NULL, *wl = NULL;
        struct skshash hash;
        uint64_t *subkeyids = NULL;
        uint32_t hashid;
        int i = 0;
 
+       if (get_keyid(publickey, &keyid) != ONAK_E_OK) {
+               logthing(LOGTHING_ERROR, "Couldn't find key ID for key.");
+               return 0;
+       }
 
        if (!intrans)
                fs_starttrans();