X-Git-Url: https://git.sommitrealweird.co.uk/onak.git/blobdiff_plain/8fc32ce43451185ca899b65ceec273425a358f00..b7a8b5277d37b289361ff0cc881632f527e4d5db:/lookup.c?ds=sidebyside diff --git a/lookup.c b/lookup.c index 9a9ccbd..9af11d9 100644 --- a/lookup.c +++ b/lookup.c @@ -1,9 +1,20 @@ /* * lookup.c - CGI to lookup keys. * - * Jonathan McDowell + * Copyright 2002-2005,2007-2009,2011 Jonathan McDowell * - * Copyright 2002 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 @@ -112,7 +123,17 @@ int main(int argc, char *argv[]) } else if (!strcmp(params[i], "search")) { search = params[i+1]; params[i+1] = NULL; - if (search != NULL) { + if (search != NULL && strlen(search) == 42 && + search[0] == '0' && search[1] == 'x') { + /* + * Fingerprint. Truncate to last 64 bits for + * now. + */ + keyid = strtoull(&search[26], &end, 16); + if (end != NULL && *end == 0) { + ishex = true; + } + } else if (search != NULL) { keyid = strtoull(search, &end, 16); if (*search != 0 && end != NULL && @@ -224,7 +245,7 @@ int main(int argc, char *argv[]) size_t length = 0; if (getphoto(publickey, indx, &photo, - &length)) { + &length) == ONAK_E_OK) { fwrite(photo, 1, length,