* rndc.conf and named.conf.
*/
void
-makesafe_keyname(const char *keyname, char *namebuf, size_t length) {
+makesafe_keyname(const char *keyname, char *namebuf, size_t length,
+ bool *wildcard) {
dns_fixedname_t fixed;
dns_name_t *name = dns_fixedname_initname(&fixed);
isc_result_t result;
fatal("invalid key name: %s", isc_result_totext(result));
}
+ SET_IF_NOT_NULL(wildcard, dns_name_iswildcard(name));
+
isc_buffer_init(&b, namebuf, length);
result = dns_name_totext(name, DNS_NAME_QUOTED | DNS_NAME_OMITFINALDOT,
&b);
#include <dns/secalg.h>
void
-makesafe_keyname(const char *keyname, char *namebuf, size_t length);
+makesafe_keyname(const char *keyname, char *namebuf, size_t length,
+ bool *wildcard);
void
generate_key(isc_mem_t *mctx, dns_secalg_t alg, int keysize,
usage(EXIT_FAILURE);
}
- makesafe_keyname(keyname, namebuf, sizeof(namebuf));
+ makesafe_keyname(keyname, namebuf, sizeof(namebuf), NULL);
if (alg == DST_ALG_HMACMD5) {
fprintf(stderr, "warning: use of hmac-md5 for RNDC keys "
int keysize = 256;
int len = 0;
int ch;
+ bool wildcard;
isc_commandline_init(argc, argv);
}
}
- makesafe_keyname(keyname, namebuf, sizeof(namebuf));
+ makesafe_keyname(keyname, namebuf, sizeof(namebuf), &wildcard);
isc_buffer_init(&key_txtbuffer, &key_txtsecret, sizeof(key_txtsecret));
namebuf, algname, (int)isc_buffer_usedlength(&key_txtbuffer),
(char *)isc_buffer_base(&key_txtbuffer));
- if (!quiet) {
+ if (wildcard && !quiet) {
+ printf("\n\
+# This is a wildcard key, and should not be used in an update-policy.\n");
+ } else if (!quiet) {
if (self_domain != NULL) {
printf("\n\
# Then, in the \"zone\" statement for the zone containing the\n\