Allow retrieval of key by full fingerprint
[onak.git] / onak.c
diff --git a/onak.c b/onak.c
index b295fea2126ca772fc96869d59bd180cdd7b8f31..e4f3105ec9f4fd5e45b740b40f7d20e0e8f9af94 100644 (file)
--- a/onak.c
+++ b/onak.c
@@ -288,7 +288,17 @@ int main(int argc, char *argv[])
                }
        } else if ((argc - optind) == 2) {
                search = argv[optind+1];
-               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 = strtoul(search, &end, 16);
                        if (*search != 0 &&
                                        end != NULL &&