From 04a12e4c8b75b68ff137eafdbe50f5354f17b4e9 Mon Sep 17 00:00:00 2001 From: Federico Lucifredi Date: Thu, 27 Dec 2007 09:12:42 +0000 Subject: added uint16_to_canonical_string() git-svn-id: file:///home/lennart/svn/public/avahi/branches/federico@1657 941a03a8-eaeb-0310-b9a0-b1bbd8fe43fe --- avahi-core/wide-area.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'avahi-core/wide-area.c') diff --git a/avahi-core/wide-area.c b/avahi-core/wide-area.c index 6195a03..b134018 100644 --- a/avahi-core/wide-area.c +++ b/avahi-core/wide-area.c @@ -731,10 +731,12 @@ int avahi_wide_area_has_servers(AvahiWideAreaLookupEngine *e) { AvahiRecord* tsig_sign_packet(const char* keyname, const char* key, unsigned keylength, AvahiDnsPacket *p, unsigned algorithm) { AvahiRecord *r; - unsigned char keyed_hash[EVP_MAX_MD_SIZE]; + unsigned char keyed_hash[EVP_MAX_MD_SIZE]; /*used for signing */ HMAC_CTX ctx; unsigned hash_length; + char canonic[AVAHI_DOMAIN_NAME_MAX]; /*used in conversions */ + r = avahi_record_new_full(keyname, AVAHI_DNS_CLASS_ANY, AVAHI_DNS_TYPE_TSIG, 0); if (!r) { @@ -802,8 +804,14 @@ AvahiRecord* tsig_sign_packet(const char* keyname, const char* key, unsigned key /*feed all the data to be hashed in */ /*HMAC_Update(&ctx, , );*/ - HMAC_Update(&ctx, p->data, p->size); - /* HMAC_Update(&ctx, CONTINUE */ + HMAC_Update(&ctx, p->data, p->size); /*packet in wire format*/ + + canonic = c_to_canonical_string(keyname); + HMAC_Update(&ctx, canonic, strlen(canonic) +1); /* key name in canonical wire format */ + + HMAC_Update(&ctx, uint16_to_canonical_string(AVAHI_DNS_CLASS_ANY), 2); /* class */ +/* HMAC_Update(&ctx, + HMAC_Update(&ctx, */ HMAC_Final(&ctx, keyed_hash, &hash_length); HMAC_cleanup(&ctx); -- cgit