mirror of
https://github.com/isc-projects/bind9.git
synced 2026-06-03 22:08:25 -04:00
[9.20] chg: dev: Minor refactor of dst code
Convert the defines to enums. Initialize the tags more explicitly and less ugly. Backport of MR !11000 Merge branch 'backport-matthijs-ugly-kid-joe-9.20' into 'bind-9.20' See merge request isc-projects/bind9!11038
This commit is contained in:
commit
c6acbaa020
6 changed files with 166 additions and 123 deletions
|
|
@ -99,30 +99,44 @@
|
|||
goto cleanup; \
|
||||
}
|
||||
|
||||
#define NUMERIC_NTAGS (DST_MAX_NUMERIC + 1)
|
||||
static const char *numerictags[NUMERIC_NTAGS] = {
|
||||
"Predecessor:", "Successor:", "MaxTTL:", "RollPeriod:",
|
||||
"Lifetime:", "DSPubCount:", "DSRemCount:"
|
||||
static const char *numerictags[DST_MAX_NUMERIC] = {
|
||||
[DST_NUM_PREDECESSOR] = "Predecessor:",
|
||||
[DST_NUM_SUCCESSOR] = "Successor:",
|
||||
[DST_NUM_MAXTTL] = "MaxTTL:",
|
||||
[DST_NUM_ROLLPERIOD] = "RollPeriod:",
|
||||
[DST_NUM_LIFETIME] = "Lifetime:",
|
||||
[DST_NUM_DSPUBCOUNT] = "DSPubCount:",
|
||||
[DST_NUM_DSDELCOUNT] = "DSRemCount:",
|
||||
};
|
||||
|
||||
#define BOOLEAN_NTAGS (DST_MAX_BOOLEAN + 1)
|
||||
static const char *booleantags[BOOLEAN_NTAGS] = { "KSK:", "ZSK:" };
|
||||
|
||||
#define TIMING_NTAGS (DST_MAX_TIMES + 1)
|
||||
static const char *timingtags[TIMING_NTAGS] = {
|
||||
"Generated:", "Published:", "Active:", "Revoked:",
|
||||
"Retired:", "Removed:",
|
||||
|
||||
"DSPublish:", "SyncPublish:", "SyncDelete:",
|
||||
|
||||
"DNSKEYChange:", "ZRRSIGChange:", "KRRSIGChange:", "DSChange:",
|
||||
|
||||
"DSRemoved:", "ZRRSIGPublish", "ZRRSIGRemoved"
|
||||
static const char *booleantags[DST_MAX_BOOLEAN] = {
|
||||
[DST_BOOL_KSK] = "KSK:",
|
||||
[DST_BOOL_ZSK] = "ZSK:",
|
||||
};
|
||||
|
||||
#define KEYSTATES_NTAGS (DST_MAX_KEYSTATES + 1)
|
||||
static const char *keystatestags[KEYSTATES_NTAGS] = {
|
||||
"DNSKEYState:", "ZRRSIGState:", "KRRSIGState:", "DSState:", "GoalState:"
|
||||
static const char *timingtags[DST_MAX_TIMES] = {
|
||||
[DST_TIME_CREATED] = "Generated:",
|
||||
[DST_TIME_PUBLISH] = "Published:",
|
||||
[DST_TIME_ACTIVATE] = "Active:",
|
||||
[DST_TIME_REVOKE] = "Revoked:",
|
||||
[DST_TIME_INACTIVE] = "Retired:",
|
||||
[DST_TIME_DELETE] = "Removed:",
|
||||
[DST_TIME_DSPUBLISH] = "DSPublish:",
|
||||
[DST_TIME_SYNCPUBLISH] = "SyncPublish:",
|
||||
[DST_TIME_SYNCDELETE] = "SyncDelete:",
|
||||
[DST_TIME_DNSKEY] = "DNSKEYChange:",
|
||||
[DST_TIME_ZRRSIG] = "ZRRSIGChange:",
|
||||
[DST_TIME_KRRSIG] = "KRRSIGChange:",
|
||||
[DST_TIME_DS] = "DSChange:",
|
||||
[DST_TIME_DSDELETE] = "DSRemoved:",
|
||||
[DST_TIME_SIGPUBLISH] = "ZRRSIGPublish:",
|
||||
[DST_TIME_SIGDELETE] = "ZZRRSIGDelete:",
|
||||
};
|
||||
|
||||
static const char *keystatestags[DST_MAX_KEYSTATES] = {
|
||||
[DST_KEY_DNSKEY] = "DNSKEYState:", [DST_KEY_ZRRSIG] = "ZRRSIGState:",
|
||||
[DST_KEY_KRRSIG] = "KRRSIGState:", [DST_KEY_DS] = "DSState:",
|
||||
[DST_KEY_GOAL] = "GoalState:",
|
||||
};
|
||||
|
||||
#define KEYSTATES_NVALUES 4
|
||||
|
|
@ -1089,7 +1103,7 @@ isc_result_t
|
|||
dst_key_getbool(const dst_key_t *key, int type, bool *valuep) {
|
||||
REQUIRE(VALID_KEY(key));
|
||||
REQUIRE(valuep != NULL);
|
||||
REQUIRE(type <= DST_MAX_BOOLEAN);
|
||||
REQUIRE(type < DST_MAX_BOOLEAN);
|
||||
|
||||
isc_mutex_lock(&(((dst_key_t *)key)->mdlock));
|
||||
if (!key->boolset[type]) {
|
||||
|
|
@ -1105,7 +1119,7 @@ dst_key_getbool(const dst_key_t *key, int type, bool *valuep) {
|
|||
void
|
||||
dst_key_setbool(dst_key_t *key, int type, bool value) {
|
||||
REQUIRE(VALID_KEY(key));
|
||||
REQUIRE(type <= DST_MAX_BOOLEAN);
|
||||
REQUIRE(type < DST_MAX_BOOLEAN);
|
||||
|
||||
isc_mutex_lock(&key->mdlock);
|
||||
key->modified = key->modified || !key->boolset[type] ||
|
||||
|
|
@ -1118,7 +1132,7 @@ dst_key_setbool(dst_key_t *key, int type, bool value) {
|
|||
void
|
||||
dst_key_unsetbool(dst_key_t *key, int type) {
|
||||
REQUIRE(VALID_KEY(key));
|
||||
REQUIRE(type <= DST_MAX_BOOLEAN);
|
||||
REQUIRE(type < DST_MAX_BOOLEAN);
|
||||
|
||||
isc_mutex_lock(&key->mdlock);
|
||||
key->modified = key->modified || key->boolset[type];
|
||||
|
|
@ -1130,7 +1144,7 @@ isc_result_t
|
|||
dst_key_getnum(const dst_key_t *key, int type, uint32_t *valuep) {
|
||||
REQUIRE(VALID_KEY(key));
|
||||
REQUIRE(valuep != NULL);
|
||||
REQUIRE(type <= DST_MAX_NUMERIC);
|
||||
REQUIRE(type < DST_MAX_NUMERIC);
|
||||
|
||||
isc_mutex_lock(&(((dst_key_t *)key)->mdlock));
|
||||
if (!key->numset[type]) {
|
||||
|
|
@ -1146,7 +1160,7 @@ dst_key_getnum(const dst_key_t *key, int type, uint32_t *valuep) {
|
|||
void
|
||||
dst_key_setnum(dst_key_t *key, int type, uint32_t value) {
|
||||
REQUIRE(VALID_KEY(key));
|
||||
REQUIRE(type <= DST_MAX_NUMERIC);
|
||||
REQUIRE(type < DST_MAX_NUMERIC);
|
||||
|
||||
isc_mutex_lock(&key->mdlock);
|
||||
key->modified = key->modified || !key->numset[type] ||
|
||||
|
|
@ -1159,7 +1173,7 @@ dst_key_setnum(dst_key_t *key, int type, uint32_t value) {
|
|||
void
|
||||
dst_key_unsetnum(dst_key_t *key, int type) {
|
||||
REQUIRE(VALID_KEY(key));
|
||||
REQUIRE(type <= DST_MAX_NUMERIC);
|
||||
REQUIRE(type < DST_MAX_NUMERIC);
|
||||
|
||||
isc_mutex_lock(&key->mdlock);
|
||||
key->modified = key->modified || key->numset[type];
|
||||
|
|
@ -1171,7 +1185,7 @@ isc_result_t
|
|||
dst_key_gettime(const dst_key_t *key, int type, isc_stdtime_t *timep) {
|
||||
REQUIRE(VALID_KEY(key));
|
||||
REQUIRE(timep != NULL);
|
||||
REQUIRE(type <= DST_MAX_TIMES);
|
||||
REQUIRE(type < DST_MAX_TIMES);
|
||||
|
||||
isc_mutex_lock(&(((dst_key_t *)key)->mdlock));
|
||||
if (!key->timeset[type]) {
|
||||
|
|
@ -1186,7 +1200,7 @@ dst_key_gettime(const dst_key_t *key, int type, isc_stdtime_t *timep) {
|
|||
void
|
||||
dst_key_settime(dst_key_t *key, int type, isc_stdtime_t when) {
|
||||
REQUIRE(VALID_KEY(key));
|
||||
REQUIRE(type <= DST_MAX_TIMES);
|
||||
REQUIRE(type < DST_MAX_TIMES);
|
||||
|
||||
isc_mutex_lock(&key->mdlock);
|
||||
key->modified = key->modified || !key->timeset[type] ||
|
||||
|
|
@ -1199,7 +1213,7 @@ dst_key_settime(dst_key_t *key, int type, isc_stdtime_t when) {
|
|||
void
|
||||
dst_key_unsettime(dst_key_t *key, int type) {
|
||||
REQUIRE(VALID_KEY(key));
|
||||
REQUIRE(type <= DST_MAX_TIMES);
|
||||
REQUIRE(type < DST_MAX_TIMES);
|
||||
|
||||
isc_mutex_lock(&key->mdlock);
|
||||
key->modified = key->modified || key->timeset[type];
|
||||
|
|
@ -1211,7 +1225,7 @@ isc_result_t
|
|||
dst_key_getstate(const dst_key_t *key, int type, dst_key_state_t *statep) {
|
||||
REQUIRE(VALID_KEY(key));
|
||||
REQUIRE(statep != NULL);
|
||||
REQUIRE(type <= DST_MAX_KEYSTATES);
|
||||
REQUIRE(type < DST_MAX_KEYSTATES);
|
||||
|
||||
isc_mutex_lock(&(((dst_key_t *)key)->mdlock));
|
||||
if (!key->keystateset[type]) {
|
||||
|
|
@ -1227,7 +1241,7 @@ dst_key_getstate(const dst_key_t *key, int type, dst_key_state_t *statep) {
|
|||
void
|
||||
dst_key_setstate(dst_key_t *key, int type, dst_key_state_t state) {
|
||||
REQUIRE(VALID_KEY(key));
|
||||
REQUIRE(type <= DST_MAX_KEYSTATES);
|
||||
REQUIRE(type < DST_MAX_KEYSTATES);
|
||||
|
||||
isc_mutex_lock(&key->mdlock);
|
||||
key->modified = key->modified || !key->keystateset[type] ||
|
||||
|
|
@ -1240,7 +1254,7 @@ dst_key_setstate(dst_key_t *key, int type, dst_key_state_t state) {
|
|||
void
|
||||
dst_key_unsetstate(dst_key_t *key, int type) {
|
||||
REQUIRE(VALID_KEY(key));
|
||||
REQUIRE(type <= DST_MAX_KEYSTATES);
|
||||
REQUIRE(type < DST_MAX_KEYSTATES);
|
||||
|
||||
isc_mutex_lock(&key->mdlock);
|
||||
key->modified = key->modified || key->keystateset[type];
|
||||
|
|
@ -1751,22 +1765,22 @@ find_metadata(const char *s, const char *tags[], int ntags) {
|
|||
|
||||
static int
|
||||
find_numericdata(const char *s) {
|
||||
return find_metadata(s, numerictags, NUMERIC_NTAGS);
|
||||
return find_metadata(s, numerictags, DST_MAX_NUMERIC);
|
||||
}
|
||||
|
||||
static int
|
||||
find_booleandata(const char *s) {
|
||||
return find_metadata(s, booleantags, BOOLEAN_NTAGS);
|
||||
return find_metadata(s, booleantags, DST_MAX_BOOLEAN);
|
||||
}
|
||||
|
||||
static int
|
||||
find_timingdata(const char *s) {
|
||||
return find_metadata(s, timingtags, TIMING_NTAGS);
|
||||
return find_metadata(s, timingtags, DST_MAX_TIMES);
|
||||
}
|
||||
|
||||
static int
|
||||
find_keystatedata(const char *s) {
|
||||
return find_metadata(s, keystatestags, KEYSTATES_NTAGS);
|
||||
return find_metadata(s, keystatestags, DST_MAX_KEYSTATES);
|
||||
}
|
||||
|
||||
static isc_result_t
|
||||
|
|
@ -1858,7 +1872,7 @@ dst_key_read_state(const char *filename, isc_mem_t *mctx, dst_key_t **keyp) {
|
|||
/* Numeric metadata */
|
||||
tag = find_numericdata(DST_AS_STR(token));
|
||||
if (tag >= 0) {
|
||||
INSIST(tag < NUMERIC_NTAGS);
|
||||
INSIST(tag < DST_MAX_NUMERIC);
|
||||
|
||||
NEXTTOKEN(lex, opt | ISC_LEXOPT_NUMBER, &token);
|
||||
if (token.type != isc_tokentype_number) {
|
||||
|
|
@ -1872,7 +1886,7 @@ dst_key_read_state(const char *filename, isc_mem_t *mctx, dst_key_t **keyp) {
|
|||
/* Boolean metadata */
|
||||
tag = find_booleandata(DST_AS_STR(token));
|
||||
if (tag >= 0) {
|
||||
INSIST(tag < BOOLEAN_NTAGS);
|
||||
INSIST(tag < DST_MAX_BOOLEAN);
|
||||
|
||||
NEXTTOKEN(lex, opt, &token);
|
||||
if (token.type != isc_tokentype_string) {
|
||||
|
|
@ -1894,7 +1908,7 @@ dst_key_read_state(const char *filename, isc_mem_t *mctx, dst_key_t **keyp) {
|
|||
if (tag >= 0) {
|
||||
uint32_t when;
|
||||
|
||||
INSIST(tag < TIMING_NTAGS);
|
||||
INSIST(tag < DST_MAX_TIMES);
|
||||
|
||||
NEXTTOKEN(lex, opt, &token);
|
||||
if (token.type != isc_tokentype_string) {
|
||||
|
|
@ -1915,7 +1929,7 @@ dst_key_read_state(const char *filename, isc_mem_t *mctx, dst_key_t **keyp) {
|
|||
if (tag >= 0) {
|
||||
dst_key_state_t state;
|
||||
|
||||
INSIST(tag < KEYSTATES_NTAGS);
|
||||
INSIST(tag < DST_MAX_KEYSTATES);
|
||||
|
||||
NEXTTOKEN(lex, opt, &token);
|
||||
if (token.type != isc_tokentype_string) {
|
||||
|
|
@ -2422,7 +2436,7 @@ dst_key_is_unused(const dst_key_t *key) {
|
|||
* None of the key timing metadata, except Created, may be set. Key
|
||||
* state times may be set only if their respective state is HIDDEN.
|
||||
*/
|
||||
for (int i = 0; i < DST_MAX_TIMES + 1; i++) {
|
||||
for (int i = 0; i < DST_MAX_TIMES; i++) {
|
||||
state_type_set = false;
|
||||
|
||||
switch (i) {
|
||||
|
|
@ -2743,7 +2757,7 @@ dst_key_copy_metadata(dst_key_t *to, dst_key_t *from) {
|
|||
REQUIRE(VALID_KEY(to));
|
||||
REQUIRE(VALID_KEY(from));
|
||||
|
||||
for (int i = 0; i < DST_MAX_TIMES + 1; i++) {
|
||||
for (int i = 0; i < DST_MAX_TIMES; i++) {
|
||||
result = dst_key_gettime(from, i, &when);
|
||||
if (result == ISC_R_SUCCESS) {
|
||||
dst_key_settime(to, i, when);
|
||||
|
|
@ -2752,7 +2766,7 @@ dst_key_copy_metadata(dst_key_t *to, dst_key_t *from) {
|
|||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < DST_MAX_NUMERIC + 1; i++) {
|
||||
for (int i = 0; i < DST_MAX_NUMERIC; i++) {
|
||||
result = dst_key_getnum(from, i, &num);
|
||||
if (result == ISC_R_SUCCESS) {
|
||||
dst_key_setnum(to, i, num);
|
||||
|
|
@ -2761,7 +2775,7 @@ dst_key_copy_metadata(dst_key_t *to, dst_key_t *from) {
|
|||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < DST_MAX_BOOLEAN + 1; i++) {
|
||||
for (int i = 0; i < DST_MAX_BOOLEAN; i++) {
|
||||
result = dst_key_getbool(from, i, &yesno);
|
||||
if (result == ISC_R_SUCCESS) {
|
||||
dst_key_setbool(to, i, yesno);
|
||||
|
|
@ -2770,7 +2784,7 @@ dst_key_copy_metadata(dst_key_t *to, dst_key_t *from) {
|
|||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < DST_MAX_KEYSTATES + 1; i++) {
|
||||
for (int i = 0; i < DST_MAX_KEYSTATES; i++) {
|
||||
result = dst_key_getstate(from, i, &state);
|
||||
if (result == ISC_R_SUCCESS) {
|
||||
dst_key_setstate(to, i, state);
|
||||
|
|
|
|||
|
|
@ -104,21 +104,20 @@ struct dst_key {
|
|||
} pkeypair;
|
||||
} keydata; /*%< pointer to key in crypto pkg fmt */
|
||||
|
||||
isc_stdtime_t times[DST_MAX_TIMES + 1]; /*%< timing metadata */
|
||||
bool timeset[DST_MAX_TIMES + 1]; /*%< data set? */
|
||||
isc_stdtime_t times[DST_MAX_TIMES]; /*%< timing metadata */
|
||||
bool timeset[DST_MAX_TIMES]; /*%< data set? */
|
||||
|
||||
uint32_t nums[DST_MAX_NUMERIC + 1]; /*%< numeric metadata
|
||||
* */
|
||||
bool numset[DST_MAX_NUMERIC + 1]; /*%< data set? */
|
||||
uint32_t nums[DST_MAX_NUMERIC]; /*%< numeric metadata
|
||||
* */
|
||||
bool numset[DST_MAX_NUMERIC]; /*%< data set? */
|
||||
|
||||
bool bools[DST_MAX_BOOLEAN + 1]; /*%< boolean metadata
|
||||
* */
|
||||
bool boolset[DST_MAX_BOOLEAN + 1]; /*%< data set? */
|
||||
bool bools[DST_MAX_BOOLEAN]; /*%< boolean metadata
|
||||
* */
|
||||
bool boolset[DST_MAX_BOOLEAN]; /*%< data set? */
|
||||
|
||||
dst_key_state_t keystates[DST_MAX_KEYSTATES + 1]; /*%< key states
|
||||
* */
|
||||
bool keystateset[DST_MAX_KEYSTATES + 1]; /*%< data
|
||||
* set? */
|
||||
dst_key_state_t keystates[DST_MAX_KEYSTATES]; /*%< key states
|
||||
* */
|
||||
bool keystateset[DST_MAX_KEYSTATES]; /*%< data set? */
|
||||
|
||||
bool kasp; /*%< key has kasp state */
|
||||
bool inactive; /*%< private key not present as it is
|
||||
|
|
|
|||
|
|
@ -52,16 +52,33 @@
|
|||
#define PRIVATE_KEY_STR "Private-key-format:"
|
||||
#define ALGORITHM_STR "Algorithm:"
|
||||
|
||||
#define TIMING_NTAGS (DST_MAX_TIMES + 1)
|
||||
static const char *timetags[TIMING_NTAGS] = {
|
||||
"Created:", "Publish:", "Activate:", "Revoke:", "Inactive:",
|
||||
"Delete:", "DSPublish:", "SyncPublish:", "SyncDelete:", NULL,
|
||||
NULL, NULL, NULL, NULL, NULL
|
||||
static const char *timetags[DST_MAX_TIMES] = {
|
||||
[DST_TIME_CREATED] = "Created:",
|
||||
[DST_TIME_PUBLISH] = "Publish:",
|
||||
[DST_TIME_ACTIVATE] = "Activate:",
|
||||
[DST_TIME_REVOKE] = "Revoke:",
|
||||
[DST_TIME_INACTIVE] = "Inactive:",
|
||||
[DST_TIME_DELETE] = "Delete:",
|
||||
[DST_TIME_DSPUBLISH] = "DSPublish:",
|
||||
[DST_TIME_SYNCPUBLISH] = "SyncPublish:",
|
||||
[DST_TIME_SYNCDELETE] = "SyncDelete:",
|
||||
[DST_TIME_DNSKEY] = NULL,
|
||||
[DST_TIME_ZRRSIG] = NULL,
|
||||
[DST_TIME_KRRSIG] = NULL,
|
||||
[DST_TIME_DS] = NULL,
|
||||
[DST_TIME_DSDELETE] = NULL,
|
||||
[DST_TIME_SIGPUBLISH] = NULL,
|
||||
[DST_TIME_SIGDELETE] = NULL,
|
||||
};
|
||||
|
||||
#define NUMERIC_NTAGS (DST_MAX_NUMERIC + 1)
|
||||
static const char *numerictags[NUMERIC_NTAGS] = {
|
||||
"Predecessor:", "Successor:", "MaxTTL:", "RollPeriod:", NULL, NULL, NULL
|
||||
static const char *numerictags[DST_MAX_NUMERIC] = {
|
||||
[DST_NUM_PREDECESSOR] = "Predecessor:",
|
||||
[DST_NUM_SUCCESSOR] = "Successor:",
|
||||
[DST_NUM_MAXTTL] = "MaxTTL:",
|
||||
[DST_NUM_ROLLPERIOD] = "RollPeriod:",
|
||||
[DST_NUM_LIFETIME] = NULL,
|
||||
[DST_NUM_DSPUBCOUNT] = NULL,
|
||||
[DST_NUM_DSDELCOUNT] = NULL,
|
||||
};
|
||||
|
||||
struct parse_map {
|
||||
|
|
@ -151,12 +168,12 @@ find_metadata(const char *s, const char *tags[], int ntags) {
|
|||
|
||||
static int
|
||||
find_timedata(const char *s) {
|
||||
return find_metadata(s, timetags, TIMING_NTAGS);
|
||||
return find_metadata(s, timetags, DST_MAX_TIMES);
|
||||
}
|
||||
|
||||
static int
|
||||
find_numericdata(const char *s) {
|
||||
return find_metadata(s, numerictags, NUMERIC_NTAGS);
|
||||
return find_metadata(s, numerictags, DST_MAX_NUMERIC);
|
||||
}
|
||||
|
||||
static int
|
||||
|
|
@ -489,7 +506,7 @@ dst__privstruct_parse(dst_key_t *key, unsigned int alg, isc_lex_t *lex,
|
|||
/* Numeric metadata */
|
||||
tag = find_numericdata(DST_AS_STR(token));
|
||||
if (tag >= 0) {
|
||||
INSIST(tag < NUMERIC_NTAGS);
|
||||
INSIST(tag < DST_MAX_NUMERIC);
|
||||
|
||||
NEXTTOKEN(lex, opt | ISC_LEXOPT_NUMBER, &token);
|
||||
if (token.type != isc_tokentype_number) {
|
||||
|
|
@ -504,7 +521,7 @@ dst__privstruct_parse(dst_key_t *key, unsigned int alg, isc_lex_t *lex,
|
|||
/* Timing metadata */
|
||||
tag = find_timedata(DST_AS_STR(token));
|
||||
if (tag >= 0) {
|
||||
INSIST(tag < TIMING_NTAGS);
|
||||
INSIST(tag < DST_MAX_TIMES);
|
||||
|
||||
NEXTTOKEN(lex, opt, &token);
|
||||
if (token.type != isc_tokentype_string) {
|
||||
|
|
@ -721,7 +738,7 @@ dst__privstruct_writefile(const dst_key_t *key, const dst_private_t *priv,
|
|||
|
||||
/* Add the metadata tags */
|
||||
if (major > 1 || (major == 1 && minor >= 3)) {
|
||||
for (i = 0; i < NUMERIC_NTAGS; i++) {
|
||||
for (i = 0; i < DST_MAX_NUMERIC; i++) {
|
||||
result = dst_key_getnum(key, i, &value);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
continue;
|
||||
|
|
@ -730,7 +747,7 @@ dst__privstruct_writefile(const dst_key_t *key, const dst_private_t *priv,
|
|||
fprintf(fp, "%s %u\n", numerictags[i], value);
|
||||
}
|
||||
}
|
||||
for (i = 0; i < TIMING_NTAGS; i++) {
|
||||
for (i = 0; i < DST_MAX_TIMES; i++) {
|
||||
result = dst_key_gettime(key, i, &when);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
continue;
|
||||
|
|
|
|||
|
|
@ -133,46 +133,58 @@ typedef enum dst_algorithm {
|
|||
#define DST_TYPE_TEMPLATE 0x10000000
|
||||
|
||||
/* Key timing metadata definitions */
|
||||
#define DST_TIME_CREATED 0
|
||||
#define DST_TIME_PUBLISH 1
|
||||
#define DST_TIME_ACTIVATE 2
|
||||
#define DST_TIME_REVOKE 3
|
||||
#define DST_TIME_INACTIVE 4
|
||||
#define DST_TIME_DELETE 5
|
||||
#define DST_TIME_DSPUBLISH 6
|
||||
#define DST_TIME_SYNCPUBLISH 7
|
||||
#define DST_TIME_SYNCDELETE 8
|
||||
#define DST_TIME_DNSKEY 9
|
||||
#define DST_TIME_ZRRSIG 10
|
||||
#define DST_TIME_KRRSIG 11
|
||||
#define DST_TIME_DS 12
|
||||
#define DST_TIME_DSDELETE 13
|
||||
#define DST_TIME_SIGPUBLISH 14
|
||||
#define DST_TIME_SIGDELETE 15
|
||||
#define DST_MAX_TIMES 15
|
||||
enum {
|
||||
DST_TIME_CREATED = 0,
|
||||
DST_TIME_PUBLISH = 1,
|
||||
DST_TIME_ACTIVATE = 2,
|
||||
DST_TIME_REVOKE = 3,
|
||||
DST_TIME_INACTIVE = 4,
|
||||
DST_TIME_DELETE = 5,
|
||||
DST_TIME_DSPUBLISH = 6,
|
||||
DST_TIME_SYNCPUBLISH = 7,
|
||||
DST_TIME_SYNCDELETE = 8,
|
||||
DST_TIME_DNSKEY = 9,
|
||||
DST_TIME_ZRRSIG = 10,
|
||||
DST_TIME_KRRSIG = 11,
|
||||
DST_TIME_DS = 12,
|
||||
DST_TIME_DSDELETE = 13,
|
||||
DST_TIME_SIGPUBLISH = 14,
|
||||
DST_TIME_SIGDELETE = 15,
|
||||
|
||||
DST_MAX_TIMES = 16 /* MUST BE LAST */
|
||||
};
|
||||
|
||||
/* Numeric metadata definitions */
|
||||
#define DST_NUM_PREDECESSOR 0
|
||||
#define DST_NUM_SUCCESSOR 1
|
||||
#define DST_NUM_MAXTTL 2
|
||||
#define DST_NUM_ROLLPERIOD 3
|
||||
#define DST_NUM_LIFETIME 4
|
||||
#define DST_NUM_DSPUBCOUNT 5
|
||||
#define DST_NUM_DSDELCOUNT 6
|
||||
#define DST_MAX_NUMERIC 6
|
||||
enum {
|
||||
DST_NUM_PREDECESSOR = 0,
|
||||
DST_NUM_SUCCESSOR = 1,
|
||||
DST_NUM_MAXTTL = 2,
|
||||
DST_NUM_ROLLPERIOD = 3,
|
||||
DST_NUM_LIFETIME = 4,
|
||||
DST_NUM_DSPUBCOUNT = 5,
|
||||
DST_NUM_DSDELCOUNT = 6,
|
||||
|
||||
DST_MAX_NUMERIC = 7 /* MUST BE LAST */
|
||||
};
|
||||
|
||||
/* Boolean metadata definitions */
|
||||
#define DST_BOOL_KSK 0
|
||||
#define DST_BOOL_ZSK 1
|
||||
#define DST_MAX_BOOLEAN 1
|
||||
enum {
|
||||
DST_BOOL_KSK = 0,
|
||||
DST_BOOL_ZSK = 1,
|
||||
|
||||
DST_MAX_BOOLEAN = 2 /* MUST BE LAST */
|
||||
};
|
||||
|
||||
/* Key state metadata definitions */
|
||||
#define DST_KEY_DNSKEY 0
|
||||
#define DST_KEY_ZRRSIG 1
|
||||
#define DST_KEY_KRRSIG 2
|
||||
#define DST_KEY_DS 3
|
||||
#define DST_KEY_GOAL 4
|
||||
#define DST_MAX_KEYSTATES 4
|
||||
enum {
|
||||
DST_KEY_DNSKEY = 0,
|
||||
DST_KEY_ZRRSIG = 1,
|
||||
DST_KEY_KRRSIG = 2,
|
||||
DST_KEY_DS = 3,
|
||||
DST_KEY_GOAL = 4,
|
||||
|
||||
DST_MAX_KEYSTATES = 5 /* MUST BE LAST */
|
||||
};
|
||||
|
||||
/*
|
||||
* Current format version number of the private key parser.
|
||||
|
|
@ -907,7 +919,7 @@ dst_key_getbool(const dst_key_t *key, int type, bool *valuep);
|
|||
*
|
||||
* Requires:
|
||||
* "key" is a valid key.
|
||||
* "type" is no larger than DST_MAX_BOOLEAN
|
||||
* "type" is smaller than DST_MAX_BOOLEAN
|
||||
* "valuep" is not null.
|
||||
*/
|
||||
|
||||
|
|
@ -918,7 +930,7 @@ dst_key_setbool(dst_key_t *key, int type, bool value);
|
|||
*
|
||||
* Requires:
|
||||
* "key" is a valid key.
|
||||
* "type" is no larger than DST_MAX_BOOLEAN
|
||||
* "type" is smaller than DST_MAX_BOOLEAN
|
||||
*/
|
||||
|
||||
void
|
||||
|
|
@ -928,7 +940,7 @@ dst_key_unsetbool(dst_key_t *key, int type);
|
|||
*
|
||||
* Requires:
|
||||
* "key" is a valid key.
|
||||
* "type" is no larger than DST_MAX_BOOLEAN
|
||||
* "type" is smaller than DST_MAX_BOOLEAN
|
||||
*/
|
||||
|
||||
isc_result_t
|
||||
|
|
@ -938,7 +950,7 @@ dst_key_getnum(const dst_key_t *key, int type, uint32_t *valuep);
|
|||
*
|
||||
* Requires:
|
||||
* "key" is a valid key.
|
||||
* "type" is no larger than DST_MAX_NUMERIC
|
||||
* "type" is smaller than DST_MAX_NUMERIC
|
||||
* "valuep" is not null.
|
||||
*/
|
||||
|
||||
|
|
@ -949,7 +961,7 @@ dst_key_setnum(dst_key_t *key, int type, uint32_t value);
|
|||
*
|
||||
* Requires:
|
||||
* "key" is a valid key.
|
||||
* "type" is no larger than DST_MAX_NUMERIC
|
||||
* "type" is smaller than DST_MAX_NUMERIC
|
||||
*/
|
||||
|
||||
void
|
||||
|
|
@ -959,7 +971,7 @@ dst_key_unsetnum(dst_key_t *key, int type);
|
|||
*
|
||||
* Requires:
|
||||
* "key" is a valid key.
|
||||
* "type" is no larger than DST_MAX_NUMERIC
|
||||
* "type" is smaller than DST_MAX_NUMERIC
|
||||
*/
|
||||
|
||||
isc_result_t
|
||||
|
|
@ -969,7 +981,7 @@ dst_key_gettime(const dst_key_t *key, int type, isc_stdtime_t *timep);
|
|||
*
|
||||
* Requires:
|
||||
* "key" is a valid key.
|
||||
* "type" is no larger than DST_MAX_TIMES
|
||||
* "type" is smaller than DST_MAX_TIMES
|
||||
* "timep" is not null.
|
||||
*/
|
||||
|
||||
|
|
@ -980,7 +992,7 @@ dst_key_settime(dst_key_t *key, int type, isc_stdtime_t when);
|
|||
*
|
||||
* Requires:
|
||||
* "key" is a valid key.
|
||||
* "type" is no larger than DST_MAX_TIMES
|
||||
* "type" is smaller than DST_MAX_TIMES
|
||||
*/
|
||||
|
||||
void
|
||||
|
|
@ -990,7 +1002,7 @@ dst_key_unsettime(dst_key_t *key, int type);
|
|||
*
|
||||
* Requires:
|
||||
* "key" is a valid key.
|
||||
* "type" is no larger than DST_MAX_TIMES
|
||||
* "type" is smaller than DST_MAX_TIMES
|
||||
*/
|
||||
|
||||
isc_result_t
|
||||
|
|
@ -1000,7 +1012,7 @@ dst_key_getstate(const dst_key_t *key, int type, dst_key_state_t *statep);
|
|||
*
|
||||
* Requires:
|
||||
* "key" is a valid key.
|
||||
* "type" is no larger than DST_MAX_KEYSTATES
|
||||
* "type" is smaller than DST_MAX_KEYSTATES
|
||||
* "statep" is not null.
|
||||
*/
|
||||
|
||||
|
|
@ -1012,7 +1024,7 @@ dst_key_setstate(dst_key_t *key, int type, dst_key_state_t state);
|
|||
* Requires:
|
||||
* "key" is a valid key.
|
||||
* "state" is a valid state.
|
||||
* "type" is no larger than DST_MAX_KEYSTATES
|
||||
* "type" is smaller than DST_MAX_KEYSTATES
|
||||
*/
|
||||
|
||||
void
|
||||
|
|
@ -1022,7 +1034,7 @@ dst_key_unsetstate(dst_key_t *key, int type);
|
|||
*
|
||||
* Requires:
|
||||
* "key" is a valid key.
|
||||
* "type" is no larger than DST_MAX_KEYSTATES
|
||||
* "type" is smaller than DST_MAX_KEYSTATES
|
||||
*/
|
||||
|
||||
isc_result_t
|
||||
|
|
|
|||
|
|
@ -77,14 +77,15 @@
|
|||
#define NA DST_KEY_STATE_NA
|
||||
|
||||
/* Quickly get key state timing metadata. */
|
||||
#define NUM_KEYSTATES (DST_MAX_KEYSTATES)
|
||||
static int keystatetimes[NUM_KEYSTATES] = { DST_TIME_DNSKEY, DST_TIME_ZRRSIG,
|
||||
DST_TIME_KRRSIG, DST_TIME_DS };
|
||||
static int keystatetimes[] = { DST_TIME_DNSKEY, DST_TIME_ZRRSIG,
|
||||
DST_TIME_KRRSIG, DST_TIME_DS };
|
||||
#define NUM_KEYSTATES (int)ARRAY_SIZE(keystatetimes)
|
||||
|
||||
/* Readable key state types and values. */
|
||||
static const char *keystatetags[NUM_KEYSTATES] = { "DNSKEY", "ZRRSIG", "KRRSIG",
|
||||
"DS" };
|
||||
static const char *keystatestrings[4] = { "HIDDEN", "RUMOURED", "OMNIPRESENT",
|
||||
"UNRETENTIVE" };
|
||||
static const char *keystatestrings[] = { "HIDDEN", "RUMOURED", "OMNIPRESENT",
|
||||
"UNRETENTIVE" };
|
||||
|
||||
static void
|
||||
log_key_overflow(dst_key_t *key, const char *what) {
|
||||
|
|
|
|||
|
|
@ -20575,7 +20575,7 @@ next_keyevent(dst_key_t *key, isc_stdtime_t *timep) {
|
|||
|
||||
now = *timep;
|
||||
|
||||
for (i = 0; i <= DST_MAX_TIMES; i++) {
|
||||
for (i = 0; i < DST_MAX_TIMES; i++) {
|
||||
result = dst_key_gettime(key, i, &event);
|
||||
if (result == ISC_R_SUCCESS && event > now &&
|
||||
(then == 0 || event < then))
|
||||
|
|
|
|||
Loading…
Reference in a new issue