X-Git-Url: https://git.sommitrealweird.co.uk/onak.git/blobdiff_plain/7f046503b8b8dcec51c1f7752e87ba0ba0af0631..6bcfac5f53de9dff2f646da360b7da1a6e3aa7c1:/onak.c?ds=sidebyside diff --git a/onak.c b/onak.c index 7748ed2..2a0376e 100644 --- a/onak.c +++ b/onak.c @@ -7,7 +7,7 @@ * * Copyright 2002 Project Purple * - * $Id: onak.c,v 1.18 2003/10/15 21:15:21 noodles Exp $ + * $Id: onak.c,v 1.21 2004/05/27 21:58:18 noodles Exp $ */ #include @@ -26,6 +26,7 @@ #include "merge.h" #include "onak-conf.h" #include "parsekey.h" +#include "photoid.h" void find_keys(char *search, uint64_t keyid, bool ishex, bool fingerprint, bool exact, bool verbose) @@ -111,7 +112,7 @@ int main(int argc, char *argv[]) if ((argc - optind) < 1) { usage(); } else if (!strcmp("dump", argv[optind])) { - initdb(); + initdb(true); dumpdb("keydump"); cleanupdb(); } else if (!strcmp("add", argv[optind])) { @@ -130,7 +131,7 @@ int main(int argc, char *argv[]) logthing(LOGTHING_INFO, "Finished reading %d keys.", result); - initdb(); + initdb(false); logthing(LOGTHING_NOTICE, "Got %d new keys.", update_keys(&keys)); if (keys != NULL && update) { @@ -166,13 +167,32 @@ int main(int argc, char *argv[]) ishex = true; } } - initdb(); + initdb(false); if (!strcmp("index", argv[optind])) { find_keys(search, keyid, ishex, fingerprint, false, false); } else if (!strcmp("vindex", argv[optind])) { find_keys(search, keyid, ishex, fingerprint, false, true); + } else if (!strcmp("getphoto", argv[optind])) { + if (!ishex) { + puts("Can't get a key on uid text." + " You must supply a keyid."); + } else if (fetch_key(keyid, &keys, false)) { + unsigned char *photo = NULL; + size_t length = 0; + + if (getphoto(keys, 0, &photo, &length)) { + fwrite(photo, + 1, + length, + stdout); + } + free_publickey(keys); + keys = NULL; + } else { + puts("Key not found"); + } } else if (!strcmp("delete", argv[optind])) { delete_key(getfullkeyid(keyid), false); } else if (!strcmp("get", argv[optind])) {