From 456dc751a0c3d48476277c8cbca338715948f2f7 Mon Sep 17 00:00:00 2001 From: Federico Lucifredi Date: Sun, 20 Jan 2008 21:47:50 +0000 Subject: keytag generation (avahi_keytag()) and a few more constants for RRSIG generation. git-svn-id: file:///home/lennart/svn/public/avahi/branches/federico2@1732 941a03a8-eaeb-0310-b9a0-b1bbd8fe43fe --- avahi-core/domain-util.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'avahi-core/domain-util.c') diff --git a/avahi-core/domain-util.c b/avahi-core/domain-util.c index 0d6ba14..7f562db 100644 --- a/avahi-core/domain-util.c +++ b/avahi-core/domain-util.c @@ -237,4 +237,18 @@ uint8_t avahi_count_canonical_labels(const char* input){ } return count; -} \ No newline at end of file +} + +/* reference keytag generator from RFC 4034 */ +/* invoke with avahi_keytag(, ); */ +uint16_t avahi_keytag(uint8_t key[], uint16_t keysize){ + uint32_t ac; + int i; + + for (ac = 0, i = 0; i < keysize; ++i) + ac += (i & 1) ? key[i] : key[i] << 8; + + ac += (ac >> 16) & 0xFFFF; + + return ac & 0xFFFF; + } -- cgit