isc_buffer_t *newbuf = NULL;
dns_rdata_t *rdata = NULL;
isc_region_t r;
- unsigned char rdatabuf[DST_KEY_MAXSIZE];
+ unsigned char rdatabuf[DNS_RDATA_MAXLENGTH];
rdata = isc_mem_get(isc_g_mctx, sizeof(*rdata));
dns_rdata_init(rdata);
isc_region_t r;
isc_region_t rcds;
isc_stdtime_t pub = 0, del = 0;
- unsigned char kskbuf[DST_KEY_MAXSIZE];
- unsigned char cdnskeybuf[DST_KEY_MAXSIZE];
+ unsigned char rdatabuf[DNS_RDATA_MAXLENGTH];
unsigned char cdsbuf[DNS_DS_BUFFERSIZE];
/* KSK */
rdata = isc_mem_get(isc_g_mctx, sizeof(*rdata));
dns_rdata_init(rdata);
- isc_buffer_init(&buf, kskbuf, sizeof(kskbuf));
+ isc_buffer_init(&buf, rdatabuf, sizeof(rdatabuf));
CHECK(dst_key_todns(dk->key, &buf));
isc_buffer_usedregion(&buf, &r);
isc_buffer_allocate(isc_g_mctx, &newbuf, r.length);
rdata = isc_mem_get(isc_g_mctx, sizeof(*rdata));
dns_rdata_init(rdata);
- isc_buffer_init(&buf, cdnskeybuf, sizeof(cdnskeybuf));
+ isc_buffer_init(&buf, rdatabuf, sizeof(rdatabuf));
CHECK(dst_key_todns(dk->key, &buf));
isc_buffer_usedregion(&buf, &r);
isc_buffer_allocate(isc_g_mctx, &newbuf, r.length);
isc_region_t r;
isc_result_t result;
unsigned char dsbuf[DNS_DS_BUFFERSIZE];
- unsigned char keybuf[DST_KEY_MAXSIZE];
+ unsigned char keybuf[DNS_RDATA_MAXLENGTH];
unsigned int filenamelen;
const dns_master_style_t *style = (type == dns_rdatatype_dnskey)
? masterstyle
dns_ttl_t ttl, isc_mem_t *mctx,
void (*report)(const char *, ...) ISC_FORMAT_PRINTF(1, 2)) {
isc_result_t result = ISC_R_SUCCESS;
- unsigned char buf[DST_KEY_MAXSIZE];
+ unsigned char buf[DNS_RDATA_MAXLENGTH];
char keystr[DST_KEY_FORMATSIZE];
dns_rdata_t dnskey = DNS_RDATA_INIT;
dns_ttl_t ttl, isc_mem_t *mctx, const char *reason,
void (*report)(const char *, ...) ISC_FORMAT_PRINTF(1, 2)) {
isc_result_t result = ISC_R_SUCCESS;
- unsigned char buf[DST_KEY_MAXSIZE];
+ unsigned char buf[DNS_RDATA_MAXLENGTH];
dns_rdata_t dnskey = DNS_RDATA_INIT;
char alg[80];
char namebuf[DNS_NAME_FORMATSIZE];
isc_stdtime_t now, dns_kasp_digestlist_t *digests,
bool gencdnskey, dns_ttl_t ttl, dns_diff_t *diff,
isc_mem_t *mctx) {
- unsigned char keybuf[DST_KEY_MAXSIZE];
+ unsigned char keybuf[DNS_RDATA_MAXLENGTH];
isc_result_t result = DNS_R_UNCHANGED;
dns_ttl_t cdsttl = ttl;
dns_ttl_t cdnskeyttl = ttl;
static bool
pub_compare(const dst_key_t *key1, const dst_key_t *key2) {
isc_result_t result;
- unsigned char buf1[DST_KEY_MAXSIZE], buf2[DST_KEY_MAXSIZE];
+ unsigned char buf1[DNS_RDATA_MAXLENGTH], buf2[DNS_RDATA_MAXLENGTH];
isc_buffer_t b1, b2;
isc_region_t r1, r2;
isc_region_t r;
char tmpname[NAME_MAX];
char filename[NAME_MAX];
- unsigned char key_array[DST_KEY_MAXSIZE];
- char text_array[DST_KEY_MAXTEXTSIZE];
+ unsigned char key_array[DNS_RDATA_MAXLENGTH];
+ /*
+ * Big enough for the base64 expansion of the key data with
+ * whitespace separators, plus the other rdata fields.
+ */
+ char text_array[DNS_RDATA_MAXLENGTH * 2];
char class_array[10];
isc_result_t result;
dns_rdata_t rdata = DNS_RDATA_INIT;
static isc_result_t
computeid(dst_key_t *key) {
isc_buffer_t dnsbuf;
- unsigned char dns_array[DST_KEY_MAXSIZE];
+ unsigned char dns_array[DNS_RDATA_MAXLENGTH];
isc_region_t r;
isc_buffer_init(&dnsbuf, dns_array, sizeof(dns_array));
* Requires:
*\li 'key' is not NULL
*\li 'buf' is not NULL
- *\li 'bufsize' equals DST_KEY_MAXSIZE
+ *\li 'bufsize' is large enough to hold the DNSKEY rdata;
+ * DNS_RDATA_MAXLENGTH is always sufficient
*\li 'target' is not NULL
*
* Returns:
isc_result_t result;
dns_keynode_t *knode = NULL;
dns_rdata_t rdata = DNS_RDATA_INIT;
- unsigned char data[4096], digest[DNS_DS_BUFFERSIZE];
+ unsigned char data[DNS_RDATA_MAXLENGTH], digest[DNS_DS_BUFFERSIZE];
dns_rdata_ds_t ds;
isc_buffer_t b;
dns_qp_t *qp = NULL;
if (result == ISC_R_SUCCESS) {
if (dns_keynode_dsset(knode, &dsset)) {
dns_rdata_t rdata = DNS_RDATA_INIT;
- unsigned char data[4096], digest[DNS_DS_BUFFERSIZE];
+ unsigned char data[DNS_RDATA_MAXLENGTH];
+ unsigned char digest[DNS_DS_BUFFERSIZE];
dns_rdata_dnskey_t tmpkey = *dnskey;
dns_rdata_ds_t ds;
isc_buffer_t b;
ISC_LIST_FOREACH(*keylist, k, link) {
dns_rdata_t cdnskeyrdata = DNS_RDATA_INIT;
- unsigned char keybuf[DST_KEY_MAXSIZE];
+ unsigned char keybuf[DNS_RDATA_MAXLENGTH];
result = dns_dnssec_make_dnskey(k->key, keybuf, sizeof(keybuf),
&cdnskeyrdata);
ISC_LIST_FOREACH(*keylist, k, link) {
dns_rdata_t dnskey = DNS_RDATA_INIT;
dns_rdata_t cdsrdata = DNS_RDATA_INIT;
- unsigned char keybuf[DST_KEY_MAXSIZE];
+ unsigned char keybuf[DNS_RDATA_MAXLENGTH];
unsigned char cdsbuf[DNS_DS_BUFFERSIZE];
if (dst_key_id(k->key) != cds.key_tag ||
dns_rdata_t rdata = DNS_RDATA_INIT;
isc_result_t r;
unsigned char dsbuf[DNS_DS_BUFFERSIZE];
- unsigned char keybuf[DST_KEY_MAXSIZE];
+ unsigned char keybuf[DNS_RDATA_MAXLENGTH];
dns_rdataset_current(ds_rrset, &rdata);
r = dns_rdata_tostruct(&rdata, &ds, NULL);