LDNS_STATUS_OK) {
ldns_key_set_pubkey_owner(key, ldns_rdf_clone(ldns_rr_owner(pubkey)));
ldns_key_set_flags(key, ldns_rdf2native_int16(ldns_rr_rdf(pubkey, 0)));
+ ldns_key_set_keytag(key, ldns_calc_keytag(pubkey));
}
ldns_key_list_push_key(keys, key);
ldns_zone_push_rr(orig_zone, ldns_rr_clone(pubkey));
}
key_rr = ldns_key2rr(k);
-
ldns_key_set_keytag(k, ldns_calc_keytag(key_rr));
ldns_rr_free(key_rr);
if (key) {
status = LDNS_STATUS_ERR;
break;
}
- if (LDNS_STATUS_OK != status) {
+ if (LDNS_STATUS_OK != status || !rdf) {
return NULL;
} else {
ldns_rdf_set_type(rdf, type);
return LDNS_STATUS_MEM_ERR;
}
- if (line_nr) {
- *line_nr = *line_nr + 1;
- }
-
/* read an entire line in from the file */
if ((size = ldns_fget_token_l(fp, line, LDNS_PARSE_SKIP_SPACE, LDNS_MAX_LINELEN, line_nr)) == -1) {
LDNS_FREE(line);
{
ldns_lookup_table *lt;
ldns_status st;
- uint8_t id = 0;
+ uint8_t idd[2];
lt = ldns_lookup_by_name(ldns_cert_algorithms, str);
st = LDNS_STATUS_OK;
if (lt) {
- id = (uint8_t) lt->id;
- /* it was given as a integer */
+ ldns_write_uint16(idd, (uint16_t) lt->id);
*rd = ldns_rdf_new_frm_data(
- LDNS_RDF_TYPE_INT8, sizeof(uint8_t), &id);
+ LDNS_RDF_TYPE_INT16, sizeof(uint16_t), idd);
if (!*rd) {
st = LDNS_STATUS_ERR;
}
} else {
/* try as-is (a number) */
- st = ldns_str2rdf_int8(rd, str);
- }
- if (ldns_rdf2native_int8(*rd) == 0) {
- st = LDNS_STATUS_CERT_BAD_ALGORITHM;
+ st = ldns_str2rdf_int16(rd, str);
+ if (st = LDNS_STATUS_OK &&
+ ldns_rdf2native_int16(*rd) == 0) {
+ st = LDNS_STATUS_CERT_BAD_ALGORITHM;
+ }
}
+
return st;
}