From 78660a58940d42126106e9c8e26243e3c4412d49 Mon Sep 17 00:00:00 2001 From: mdw Date: Wed, 14 Sep 2005 14:31:42 +0000 Subject: [PATCH] Incompatibly fix fingerprinting again. Sigh. --- key-misc.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/key-misc.c b/key-misc.c index 37027c0..54fdc89 100644 --- a/key-misc.c +++ b/key-misc.c @@ -1,6 +1,6 @@ /* -*-c-*- * - * $Id: key-misc.c,v 1.5 2004/04/08 01:36:15 mdw Exp $ + * $Id$ * * Simple key management * @@ -371,13 +371,15 @@ int key_fingerprint(key *k, ghash *h, const key_filter *kf) dstr d = DSTR_INIT; int rc = 0; key_attr *a, **v; - size_t n, i, len; - octet b[2]; + size_t n, i; sym_iter ai; if (!key_encode(&k->k, &d, kf)) goto done; rc = 1; + GH_HASHSTR(h, "catacomb-key-fingerprint:"); + GH_HASHU32(h, k->id); + GH_HASHSTR8(h, k->type); GH_HASH(h, d.buf, d.len); for (n = 0, sym_mkiter(&ai, &k->a); (a = sym_next(&ai)) != 0; n++); if (n) { @@ -385,14 +387,9 @@ int key_fingerprint(key *k, ghash *h, const key_filter *kf) for (i = 0, sym_mkiter(&ai, &k->a); (a = sym_next(&ai)) != 0; i++) v[i] = a; qsort(v, n, sizeof(*v), abyname); - len = strlen(k->type); STORE8(b, len); - GH_HASH(h, b, 1); GH_HASH(h, k->type, len); for (i = 0; i < n; i++) { - a = v[i]; - len = strlen(SYM_NAME(a)); STORE8(b, len); - GH_HASH(h, b, 1); GH_HASH(h, SYM_NAME(a), len); - len = strlen(a->p); STORE16(b, len); - GH_HASH(h, b, 2); GH_HASH(h, a->p, len); + GH_HASHSTR8(h, SYM_NAME(v[i])); + GH_HASHSTR16(h, v[i]->p); } xfree(v); } -- 2.11.0