From: Miek Gieben Date: Wed, 23 Mar 2005 10:52:41 +0000 (+0000) Subject: some keytag weirdness X-Git-Tag: release-0.50~202 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2089e423de5cbc911f505e50e5eef371736c905e;p=thirdparty%2Fldns.git some keytag weirdness most of the stuff seems to be working inception/expiration is on the todo --- diff --git a/dnssec.c b/dnssec.c index 8ddfcb40..1f67953d 100644 --- a/dnssec.c +++ b/dnssec.c @@ -38,6 +38,9 @@ ldns_calc_keytag(ldns_rr *key) /* rdata to buf - only put the rdata in a buffer */ /* XXX waaayyy too much */ keybuf = ldns_buffer_new(MAX_PACKETLEN); + if (!keybuf) { + return 0; + } (void)ldns_rr_rdata2buffer_wire(keybuf, key); /* the current pos in the buffer is the keysize */ keysize= ldns_buffer_position(keybuf); diff --git a/keys.c b/keys.c index a6d70a8e..40bbec63 100644 --- a/keys.c +++ b/keys.c @@ -44,6 +44,9 @@ ldns_key_new() if (!newkey) { return NULL; } else { + ldns_key_set_flags(newkey, 256); + ldns_key_set_inception(newkey, 0); + ldns_key_set_expiration(newkey, 0); ldns_key_set_pubkey_owner(newkey, NULL); return newkey; } @@ -63,9 +66,6 @@ ldns_key_new_frm_algorithm(ldns_signing_algorithm alg, uint16_t size) if (!k) { return NULL; } - /* todo: set the keytag - * calculate keytag from ldns_key struct */ - switch(alg) { case LDNS_SIGN_RSAMD5: case LDNS_SIGN_RSASHA1: @@ -88,6 +88,11 @@ ldns_key_new_frm_algorithm(ldns_signing_algorithm alg, uint16_t size) ldns_key_set_algorithm(k, alg); /* some defaults - not sure wether to this there or not */ ldns_key_set_flags(k, 256); + ldns_key_set_inception(k, 0); + ldns_key_set_expiration(k, 0); + ldns_key_set_keytag(k, + ldns_key_calc_keytag(k)); + printf("keytag %d\n", ldns_key_calc_keytag(k)); return k; } @@ -412,5 +417,12 @@ ldns_key2rr(ldns_key *k) uint16_t ldns_key_calc_keytag(ldns_key *k) { - return 0; + ldns_rr *keyrr; + uint16_t tag; + + keyrr = ldns_key2rr(k); + + tag = ldns_calc_keytag(keyrr); + ldns_rr_free(keyrr); + return tag; } diff --git a/run-test18.c b/run-test18.c index b24fceef..184a3d5f 100644 --- a/run-test18.c +++ b/run-test18.c @@ -40,7 +40,6 @@ main(int argc, char *argv[]) owner = ldns_dname_new_frm_str("miek.nl"); ldns_key_set_pubkey_owner(privkey, owner); - ldns_key_set_flags(privkey, 256); ldns_key_list_push_key(keys, privkey); ldns_rr_list_push_rr(rrs, rr);