X-Git-Url: http://the.earth.li/gitweb/?a=blobdiff_plain;f=onak.c;h=b69c594f527445525c2113ea98411d914873ca8f;hb=156fd1c31592b821c170b5567b2fc81060359232;hp=220483d196e211dc14ce4211cbaf122dbb384604;hpb=41c69dd1e5d7a3ff7543f9848bb2de9236528243;p=onak.git diff --git a/onak.c b/onak.c index 220483d..b69c594 100644 --- a/onak.c +++ b/onak.c @@ -6,6 +6,8 @@ * Jonathan McDowell * * Copyright 2002 Project Purple + * + * $Id: onak.c,v 1.16 2003/09/30 17:15:39 noodles Exp $ */ #include @@ -14,6 +16,7 @@ #include #include "armor.h" +#include "charfuncs.h" #include "keydb.h" #include "keyid.h" #include "keyindex.h" @@ -24,28 +27,6 @@ #include "onak-conf.h" #include "parsekey.h" -int stdin_getchar(void *ctx, size_t count, unsigned char *c) -{ - int ic; - - do { - ic = getchar(); - *c = ic; - c++; - } while ((ic != EOF) && (--count > 0)); - return (ic == EOF); -} - -int stdout_putchar(void *ctx, size_t count, unsigned char *c) -{ - int i; - - for (i = 0; i < count; i++) { - putchar(c[i]); - } - return 0; -} - void find_keys(char *search, uint64_t keyid, bool ishex, bool fingerprint, bool exact, bool verbose) { @@ -191,11 +172,15 @@ int main(int argc, char *argv[]) } else if (!strcmp("delete", argv[optind])) { delete_key(getfullkeyid(keyid), false); } else if (!strcmp("get", argv[optind])) { - if (fetch_key(keyid, &keys, false)) { + if (!ishex) { + puts("Can't get a key on uid text." + " You must supply a keyid."); + } else if (fetch_key(keyid, &keys, false)) { logthing(LOGTHING_INFO, "Got key."); flatten_publickey(keys, &packets, &list_end); + free_publickey(keys); armor_openpgp_stream(stdout_putchar, NULL, packets);