*/
static const char *
keymgr_keyrole(dst_key_t *key) {
- bool ksk, zsk;
- dst_key_getbool(key, DST_BOOL_KSK, &ksk);
- dst_key_getbool(key, DST_BOOL_ZSK, &zsk);
+ bool ksk = false, zsk = false;
+ isc_result_t ret;
+ ret = dst_key_getbool(key, DST_BOOL_KSK, &ksk);
+ if (ret != ISC_R_SUCCESS) {
+ return ("UNKNOWN");
+ }
+ ret = dst_key_getbool(key, DST_BOOL_ZSK, &zsk);
+ if (ret != ISC_R_SUCCESS) {
+ return ("UNKNOWN");
+ }
if (ksk && zsk) {
return ("CSK");
} else if (ksk) {
}
}
+ /*
+ * Not sure what to do when dst_key_getbool() fails here. Extending
+ * the prepublication time anyway is arguably the safest thing to do,
+ * so ignore the result code.
+ */
(void)dst_key_getbool(key->key, DST_BOOL_ZSK, &zsk);
if (!zsk && ksk) {
/*
isc_result_t ret;
isc_stdtime_t retire;
dst_key_state_t s;
- bool ksk, zsk;
+ bool ksk = false, zsk = false;
REQUIRE(key != NULL);
REQUIRE(key->key != NULL);
dst_key_settime(key->key, DST_TIME_DNSKEY, now);
}
- (void)dst_key_getbool(key->key, DST_BOOL_KSK, &ksk);
- if (ksk) {
+ ret = dst_key_getbool(key->key, DST_BOOL_KSK, &ksk);
+ if (ret == ISC_R_SUCCESS && ksk) {
if (dst_key_getstate(key->key, DST_KEY_KRRSIG, &s) !=
ISC_R_SUCCESS) {
dst_key_setstate(key->key, DST_KEY_KRRSIG, OMNIPRESENT);
dst_key_settime(key->key, DST_TIME_DS, now);
}
}
- (void)dst_key_getbool(key->key, DST_BOOL_ZSK, &zsk);
- if (zsk) {
+ ret = dst_key_getbool(key->key, DST_BOOL_ZSK, &zsk);
+ if (ret == ISC_R_SUCCESS && zsk) {
if (dst_key_getstate(key->key, DST_KEY_ZRRSIG, &s) !=
ISC_R_SUCCESS) {
dst_key_setstate(key->key, DST_KEY_ZRRSIG, OMNIPRESENT);
{
char algstr[DNS_NAME_FORMATSIZE];
bool ksk = false, zsk = false;
+ isc_result_t ret;
if (dst_key_is_unused(dkey->key)) {
continue;
}
// key data
- dst_key_getbool(dkey->key, DST_BOOL_KSK, &ksk);
- dst_key_getbool(dkey->key, DST_BOOL_ZSK, &zsk);
dns_secalg_format((dns_secalg_t)dst_key_alg(dkey->key), algstr,
sizeof(algstr));
isc_buffer_printf(&buf, "\nkey: %d (%s), %s\n",
DST_TIME_PUBLISH);
// signing status
- if (ksk) {
+ ret = dst_key_getbool(dkey->key, DST_BOOL_KSK, &ksk);
+ if (ret == ISC_R_SUCCESS && ksk) {
keytime_status(dkey->key, now, &buf,
" key signing: ", DST_KEY_KRRSIG,
DST_TIME_PUBLISH);
}
- if (zsk) {
+ ret = dst_key_getbool(dkey->key, DST_BOOL_ZSK, &zsk);
+ if (ret == ISC_R_SUCCESS && zsk) {
keytime_status(dkey->key, now, &buf,
" zone signing: ", DST_KEY_ZRRSIG,
DST_TIME_ACTIVATE);