dns_rdata_ds_t ds;
dns_rdata_t dsrdata = DNS_RDATA_INIT;
dns_rdata_t newdsrdata = DNS_RDATA_INIT;
- dns_rdatatype_t keytype;
bool c;
dns_rdataset_current(dsset, &dsrdata);
continue;
}
- /* allow for both DNSKEY and CDNSKEY */
- keytype = ki->rdata.type;
- ki->rdata.type = dns_rdatatype_dnskey;
result = dns_ds_buildrdata(name, &ki->rdata, ds.digest_type,
dsbuf, &newdsrdata);
- ki->rdata.type = keytype;
if (result != ISC_R_SUCCESS) {
vbprintf(3, "dns_ds_buildrdata("
"keytag=%d, algo=%d, digest=%d): %s\n",
return (ISC_R_NOSPACE);
}
- cdnskey->type = dns_rdatatype_dnskey;
rdata = rdata_get();
result = dns_ds_buildrdata(name, cdnskey, dtype[i],
r.base, rdata);
#endif
REQUIRE(key != NULL);
- REQUIRE(key->type == dns_rdatatype_dnskey);
+ REQUIRE(key->type == dns_rdatatype_dnskey ||
+ key->type == dns_rdatatype_cdnskey);
if (!dst_ds_digest_supported(digest_type))
return (ISC_R_NOTIMPLEMENTED);
* Build the rdata of a DS record.
*
* Requires:
- *\li key Points to a valid DNS KEY record.
+ *\li key Points to a valid DNSKEY or CDNSKEY record.
*\li buffer Points to a temporary buffer of at least
* #DNS_DS_BUFFERSIZE bytes.
*\li rdata Points to an initialized dns_rdata_t.