X-Git-Url: http://the.earth.li/gitweb/?a=blobdiff_plain;f=keyid.c;h=5db10f6d9c03b1aa10dc652e63cc2d1ef5cc8c70;hb=ff3b87253171dc8b76ec26b70ba738a2d3a603ac;hp=6a9b5580c34fa1c6a9df2100f565fd117ce382dc;hpb=5cb3cfdb9d8caa6d7a4a1979c50c46896957b934;p=onak.git diff --git a/keyid.c b/keyid.c index 6a9b558..5db10f6 100644 --- a/keyid.c +++ b/keyid.c @@ -38,6 +38,19 @@ #include "sha1.h" #endif +uint64_t fingerprint2keyid(struct openpgp_fingerprint *fingerprint) +{ + uint64_t keyid; + int i; + + for (keyid = 0, i = 12; i < 20; i++) { + keyid <<= 8; + keyid += fingerprint->fp[i]; + } + + return keyid; +} + /** * get_keyid - Given a public key returns the keyid. @@ -159,11 +172,9 @@ onak_status_t get_packetid(struct openpgp_packet *packet, uint64_t *keyid) ripemd160_digest(&ripemd160_context, RIPEMD160_DIGEST_SIZE, fingerprint.fp); + fingerprint.length = RIPEMD160_DIGEST_SIZE; - for (*keyid = 0, i = 12; i < 20; i++) { - *keyid <<= 8; - *keyid += fingerprint.fp[i]; - } + *keyid = fingerprint2keyid(&fingerprint); return ONAK_E_OK; } @@ -194,11 +205,8 @@ onak_status_t get_packetid(struct openpgp_packet *packet, uint64_t *keyid) break; case 4: get_fingerprint(packet, &fingerprint); - - for (*keyid = 0, i = 12; i < 20; i++) { - *keyid <<= 8; - *keyid += fingerprint.fp[i]; - } + + *keyid = fingerprint2keyid(&fingerprint); break; default: