]> git.ipfire.org Git - thirdparty/ldns.git/commitdiff
some keytag weirdness
authorMiek Gieben <miekg@NLnetLabs.nl>
Wed, 23 Mar 2005 10:52:41 +0000 (10:52 +0000)
committerMiek Gieben <miekg@NLnetLabs.nl>
Wed, 23 Mar 2005 10:52:41 +0000 (10:52 +0000)
most of the stuff seems to be working
inception/expiration is on the todo

dnssec.c
keys.c
run-test18.c

index 8ddfcb40eef9406e99a23bbde4ad447375903214..1f67953d2e8d7070e752694b28101ea4be12cc25 100644 (file)
--- 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 a6d70a8e5c0bc4a953acb0767bb26392e3ab6df1..40bbec633bb8bed85171492c3f9eb480b1ef983a 100644 (file)
--- 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;
 }
index b24fceefe92b7d5a52942f30ed6b8175be2e0b44..184a3d5f356e97415e84bf62a37746e8fffe26e5 100644 (file)
@@ -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);