/* 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);
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;
}
if (!k) {
return NULL;
}
- /* todo: set the keytag
- * calculate keytag from ldns_key struct */
-
switch(alg) {
case LDNS_SIGN_RSAMD5:
case LDNS_SIGN_RSASHA1:
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;
}
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;
}
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);