#include <isc/types.h>
#include <dns/db.h>
+#include <dns/nsec.h>
#include <dns/types.h>
+/*
+ * The private record has one extra byte, containing a 0, in front of
+ * an NSEC3PARAM record.
+ */
+#define DNS_PRIVATE_BUFFERSIZE (DNS_NSEC3PARAM_BUFFERSIZE + 1)
+
#pragma once
isc_result_t
#include <dns/fixedname.h>
#include <dns/nsec.h>
#include <dns/nsec3.h>
+#include <dns/private.h>
#include <dns/rdata.h>
#include <dns/rdatalist.h>
#include <dns/rdataset.h>
dns_rdataset_t rdataset;
bool flag;
isc_result_t result = ISC_R_SUCCESS;
- unsigned char buf[DNS_NSEC3PARAM_BUFFERSIZE + 1];
+ unsigned char buf[DNS_PRIVATE_BUFFERSIZE];
dns_name_t *origin = dns_zone_getorigin(zone);
dns_rdatatype_t privatetype = dns_zone_getprivatetype(zone);
isc_result_t result = ISC_R_SUCCESS;
dns_difftuple_t *newtuple = NULL;
dns_rdata_t rdata = DNS_RDATA_INIT;
- unsigned char buf[DNS_NSEC3PARAM_BUFFERSIZE + 1];
+ unsigned char buf[DNS_PRIVATE_BUFFERSIZE];
dns_diff_t temp_diff;
dns_diffop_t op;
bool flag;
static void
make_nsec3(nsec3_testcase_t *testcase, dns_rdata_t *private,
- unsigned char *pbuf) {
+ unsigned char *pbuf, size_t pbufsize) {
isc_result_t result;
dns_rdata_nsec3param_t params;
dns_rdata_t nsec3param = DNS_RDATA_INIT;
dns_rdata_init(private);
dns_nsec3param_toprivate(&nsec3param, private, privatetype, pbuf,
- DNS_NSEC3PARAM_BUFFERSIZE + 1);
+ pbufsize);
}
/* convert private signing records to text */
UNUSED(state);
for (i = 0; i < ncases; i++) {
- unsigned char data[DNS_NSEC3PARAM_BUFFERSIZE + 1];
+ unsigned char data[DNS_PRIVATE_BUFFERSIZE];
char output[BUFSIZ];
isc_buffer_t buf;
isc_buffer_init(&buf, output, sizeof(output));
- make_nsec3(&testcases[i], &private, data);
+ make_nsec3(&testcases[i], &private, data, sizeof(data));
dns_private_totext(&private, &buf);
assert_string_equal(output, results[i]);
}