diff options
author | Federico Lucifredi <flucifredi@acm.org> | 2007-12-27 09:12:42 +0000 |
---|---|---|
committer | Federico Lucifredi <flucifredi@acm.org> | 2007-12-27 09:12:42 +0000 |
commit | 04a12e4c8b75b68ff137eafdbe50f5354f17b4e9 (patch) | |
tree | 81cfeed8c37eb5465b50dd8f37dfd81d7f4a6bc9 /avahi-core/wide-area.c | |
parent | 0c05ad822bb8fe4cd640c64819b16a2b82ae79a2 (diff) |
added uint16_to_canonical_string()
git-svn-id: file:///home/lennart/svn/public/avahi/branches/federico@1657 941a03a8-eaeb-0310-b9a0-b1bbd8fe43fe
Diffstat (limited to 'avahi-core/wide-area.c')
-rw-r--r-- | avahi-core/wide-area.c | 14 |
1 files changed, 11 insertions, 3 deletions
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, <data/>, <length/>);*/ - 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); |