]> the.earth.li Git - onak.git/blobdiff - keyd.c
Introduce and use a structure to hold OpenPGP fingerprints
[onak.git] / keyd.c
diff --git a/keyd.c b/keyd.c
index 5cd7b57564968e68680b3562103959638c025ef1..b8b8ad37e6bf1eff136eb089807687cc51650958 100644 (file)
--- a/keyd.c
+++ b/keyd.c
@@ -155,13 +155,13 @@ int sock_do(struct onak_dbctx *dbctx, int fd)
        ssize_t  count = 0;
        int      ret = 0;
        uint64_t keyid = 0;
-       uint8_t  fp[MAX_FINGERPRINT_LEN];
        char     *search = NULL;
        struct openpgp_publickey *key = NULL;
        struct openpgp_packet_list *packets = NULL;
        struct openpgp_packet_list *list_end = NULL;
        struct buffer_ctx storebuf;
        struct skshash hash;
+       struct openpgp_fingerprint fingerprint;
 
        /*
         * Get the command from the client.
@@ -242,7 +242,8 @@ int sock_do(struct onak_dbctx *dbctx, int fd)
                        if (bytes > MAX_FINGERPRINT_LEN) {
                                ret = 1;
                        } else {
-                               read(fd, fp, bytes);
+                               fingerprint.length = bytes;
+                               read(fd, fingerprint.fp, bytes);
                        }
                        storebuf.offset = 0;
                        if (ret == 0) {
@@ -250,7 +251,7 @@ int sock_do(struct onak_dbctx *dbctx, int fd)
                                                "Fetching by fingerprint"
                                                ", result: %d",
                                                dbctx->fetch_key_fp(dbctx,
-                                                       fp, bytes,
+                                                       &fingerprint,
                                                        &key, false));
                                if (key != NULL) {
                                        storebuf.size = 8192;