From 6fcd179ecd7cd04a6170458e964d1ffd8e41a86d Mon Sep 17 00:00:00 2001 From: Federico Lucifredi Date: Mon, 28 Jan 2008 01:53:45 +0000 Subject: importing code to append SEC signatures to records, part II. git-svn-id: file:///home/lennart/svn/public/avahi/branches/federico2@1745 941a03a8-eaeb-0310-b9a0-b1bbd8fe43fe --- avahi-core/query-sched.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/avahi-core/query-sched.c b/avahi-core/query-sched.c index 3a363f2..e6b2613 100644 --- a/avahi-core/query-sched.c +++ b/avahi-core/query-sched.c @@ -237,6 +237,7 @@ static void append_known_answers_and_send(AvahiQueryScheduler *s, AvahiDnsPacket FILE *fp; /* used to load the private keys */ EVP_PKEY *private_key; /* key used in signing */ AvahiRecord *r; /* used to handle records */ + AvahiRecord *s; /* used to handle signatures */ assert(s); assert(p); @@ -269,7 +270,7 @@ static void append_known_answers_and_send(AvahiQueryScheduler *s, AvahiDnsPacket r = avahi_get_local_zsk_pubkey(ka->record->ttl); printf("appended to record type %d named %s at entrypoint\n", ka->record->key->type, ka->record->key->name); - /*append the public key record */ + /*append the public key record DNSKEY RR */ result = avahi_dns_packet_append_record(p, r, 0, 0); if (!result) { @@ -292,6 +293,19 @@ static void append_known_answers_and_send(AvahiQueryScheduler *s, AvahiDnsPacket fclose(fp); + /* generate RRSIG record for transitive trust */ + s = avahi_dnssec_sign_record(r, ka->record->ttl, private_key) + + /*append the transitive trust record RRSIG RR */ + result = avahi_dns_packet_append_record(p, s, 0, 0); + + if (!result) { + avahi_log_error("appending of rdata failed."); + assert(result); + } + + avahi_dns_packet_set_field(p, AVAHI_DNS_FIELD_ARCOUNT, 2); /*increment record count for ARCOUNT */ + avahi_interface_send_packet(s->interface, p); avahi_dns_packet_free(p); -- cgit