summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFederico Lucifredi <flucifredi@acm.org>2008-01-13 00:25:45 +0000
committerFederico Lucifredi <flucifredi@acm.org>2008-01-13 00:25:45 +0000
commitb0efd52f0322605c198c403e8e98af0a4323c787 (patch)
tree9b2e116a8abca64f3478adaa6fbd72dc72b39546
parent53a8c75d30ae26483d907bb680120e0aded60668 (diff)
correcting byte order in keyed hash generation.
git-svn-id: file:///home/lennart/svn/public/avahi/branches/federico@1695 941a03a8-eaeb-0310-b9a0-b1bbd8fe43fe
-rw-r--r--avahi-core/dns.c1
-rw-r--r--avahi-core/domain-util.c12
-rw-r--r--avahi-core/domain-util.h8
-rw-r--r--avahi-core/wide-area.c16
4 files changed, 19 insertions, 18 deletions
diff --git a/avahi-core/dns.c b/avahi-core/dns.c
index 7be1800..e4c40ad 100644
--- a/avahi-core/dns.c
+++ b/avahi-core/dns.c
@@ -776,6 +776,7 @@ static int append_rdata(AvahiDnsPacket *p, AvahiRecord *r) {
printf("---mark--- (6)\n");
+ /* map time to uint48 - needs checking on 64bit archs */
if (!avahi_dns_packet_append_uint16(p,0)||(!avahi_dns_packet_append_uint32(p, r->data.tsig.time_signed)))
return -1;
diff --git a/avahi-core/domain-util.c b/avahi-core/domain-util.c
index 60dc9ee..5aa4e20 100644
--- a/avahi-core/domain-util.c
+++ b/avahi-core/domain-util.c
@@ -189,7 +189,7 @@ int avahi_domain_ends_with(const char *domain, const char *suffix) {
}
/*todo: revise location of this function in this file vs domain.c (and.h) */
-unsigned char * c_to_canonical_string(const char* input)
+unsigned char * avahi_c_to_canonical_string(const char* input)
{
char *label = avahi_malloc(AVAHI_LABEL_MAX);
char *retval = avahi_malloc(AVAHI_DOMAIN_NAME_MAX);
@@ -224,7 +224,7 @@ unsigned char * c_to_canonical_string(const char* input)
return retval;
}
-unsigned char * uint16_to_canonical_string(uint16_t v) {
+unsigned char * avahi_uint16_to_canonical_string(uint16_t v) {
uint8_t *c = avahi_malloc(2);
c[0] = (uint8_t) (v >> 8);
@@ -232,7 +232,7 @@ unsigned char * uint16_to_canonical_string(uint16_t v) {
return c;
}
-unsigned char * uint32_to_canonical_string(uint32_t v) {
+unsigned char * avahi_uint32_to_canonical_string(uint32_t v) {
uint8_t *c = avahi_malloc(4);
c[0] = (uint8_t) (v >> 24);
@@ -243,11 +243,11 @@ unsigned char * uint32_to_canonical_string(uint32_t v) {
return c;
}
-unsigned char * time_t_to_canonical_string(time_t v) {
+unsigned char * avahi_time_t_to_canonical_string(time_t v) {
uint8_t *c = avahi_malloc(6);
- c[0] = (uint8_t) (v >> 40);
- c[1] = (uint8_t) (v >> 32);
+ c[0] = (uint8_t) 0;
+ c[1] = (uint8_t) 0;
c[2] = (uint8_t) (v >> 24);
c[3] = (uint8_t) (v >> 16);
c[4] = (uint8_t) (v >> 8);
diff --git a/avahi-core/domain-util.h b/avahi-core/domain-util.h
index 75a5321..e4c1f72 100644
--- a/avahi-core/domain-util.h
+++ b/avahi-core/domain-util.h
@@ -43,16 +43,16 @@ int avahi_binary_domain_cmp(const char *a, const char *b);
int avahi_domain_ends_with(const char *domain, const char *suffix);
/** returns canonical DNS representation of C string representing a domain */
-unsigned char * c_to_canonical_string(const char* input);
+unsigned char * avahi_c_to_canonical_string(const char* input);
/** returns canonical wire representation of uint16 */
-unsigned char * uint16_to_canonical_string(uint16_t v);
+unsigned char * avahi_uint16_to_canonical_string(uint16_t v);
/** returns canonical wire representation of uint32 */
-unsigned char * uint32_to_canonical_string(uint32_t v);
+unsigned char * avahi_uint32_to_canonical_string(uint32_t v);
/** returns canonical wire representation of time_t as an uint48 */
-unsigned char * time_t_to_canonical_string(time_t v);
+unsigned char * avahi_time_t_to_canonical_string(time_t v);
AVAHI_C_DECL_END
diff --git a/avahi-core/wide-area.c b/avahi-core/wide-area.c
index 996da94..1a4fa38 100644
--- a/avahi-core/wide-area.c
+++ b/avahi-core/wide-area.c
@@ -773,27 +773,27 @@ AvahiRecord* avahi_tsig_sign_packet(const unsigned char* keyname, const unsigned
printf("---mark--- (3b)\n");
- canonic = c_to_canonical_string(keyname); /* key name in canonical wire format (DNS labels) */
+ canonic = avahi_c_to_canonical_string(keyname); /* key name in canonical wire format (DNS labels) */
HMAC_Update(&ctx, canonic, strlen(canonic) +1);
printf("---mark--- (3c)\n");
- HMAC_Update(&ctx, uint16_to_canonical_string(AVAHI_DNS_CLASS_ANY), 2); /* class - always ANY for TSIG*/
+ HMAC_Update(&ctx, avahi_uint16_to_canonical_string(AVAHI_DNS_CLASS_ANY), 2); /* class - always ANY for TSIG*/
- HMAC_Update(&ctx, uint32_to_canonical_string(0), 4); /* TTL - always 0 for TSIG */
+ HMAC_Update(&ctx, avahi_uint32_to_canonical_string(0), 4); /* TTL - always 0 for TSIG */
- canonic = c_to_canonical_string(r->data.tsig.algorithm_name); /* IANA algorithm name in canonical wire format (DNS labels)*/
+ canonic = avahi_c_to_canonical_string(r->data.tsig.algorithm_name); /* IANA algorithm name in canonical wire format (DNS labels)*/
HMAC_Update(&ctx, canonic, strlen(canonic) +1);
printf("---mark--- (3d)\n");
- HMAC_Update(&ctx, time_t_to_canonical_string(r->data.tsig.time_signed), 6); /*uint48 representation of unix time */
+ HMAC_Update(&ctx, avahi_time_t_to_canonical_string(r->data.tsig.time_signed), 6); /*uint48 representation of unix time */
- HMAC_Update(&ctx, uint16_to_canonical_string(r->data.tsig.fudge), 2);
+ HMAC_Update(&ctx, avahi_uint16_to_canonical_string(r->data.tsig.fudge), 2);
- HMAC_Update(&ctx, uint16_to_canonical_string(r->data.tsig.error), 2);
+ HMAC_Update(&ctx, avahi_uint16_to_canonical_string(r->data.tsig.error), 2);
- HMAC_Update(&ctx, uint16_to_canonical_string(r->data.tsig.other_len), 2);
+ HMAC_Update(&ctx, avahi_uint16_to_canonical_string(r->data.tsig.other_len), 2);
HMAC_Update(&ctx, r->data.tsig.other_data, r->data.tsig.other_len); /* should still work if other_len =0 can be passed to the HMAC */
/* but no standard cypher uses this to date */