Lines Matching defs:ta
130 verbose_key(struct autr_ta* ta, enum verbosity_value level,
135 * @param ta: trust anchor key with DNSKEY data.
140 verbose_key(struct autr_ta* ta, enum verbosity_value level,
146 char* str = sldns_wire2str_dname(ta->rr, ta->dname_len);
148 ta->rr, ta->rr_len, ta->dname_len),
149 sldns_wirerr_get_rdatalen(ta->rr, ta->rr_len,
150 ta->dname_len));
162 * @param ta: trust key autotrust metadata
166 parse_comments(char* str, struct autr_ta* ta)
200 ta->s = AUTR_STATE_VALID;
212 ta->s = s;
215 verbose_key(ta, VERB_OPS, "has undefined "
217 ta->s = AUTR_STATE_START;
230 ta->pending_count = 0;
234 ta->pending_count = (uint8_t)atoi(comments);
251 ta->last_change = 0;
253 ta->last_change = (time_t)timestamp;
298 ta_is_dnskey_sep(struct autr_ta* ta)
301 sldns_wirerr_get_type(ta->rr, ta->rr_len, ta->dname_len),
302 sldns_wirerr_get_rdata(ta->rr, ta->rr_len, ta->dname_len),
303 sldns_wirerr_get_rdatalen(ta->rr, ta->rr_len, ta->dname_len)
315 /** create ta */
319 struct autr_ta* ta = (struct autr_ta*)calloc(1, sizeof(*ta));
320 if(!ta) {
324 ta->rr = rr;
325 ta->rr_len = rr_len;
326 ta->dname_len = dname_len;
327 return ta;
447 struct autr_ta* ta = autr_ta_create(rr, rr_len, dname_len);
448 if(!ta)
452 free(ta->rr);
453 free(ta);
456 /* add ta to tp */
457 ta->next = (*tp)->autr->keys;
458 (*tp)->autr->keys = ta;
460 return ta;
533 struct autr_ta* ta = NULL;
536 ta = add_trustanchor_frm_str(anchors, str, &tp, origin, origin_len,
538 if(!ta)
541 if(!parse_comments(str, ta)) {
1121 struct autr_ta* ta;
1161 for(ta=tp->autr->keys; ta; ta=ta->next) {
1163 if(ta->s == AUTR_STATE_START)
1165 if(ta->s == AUTR_STATE_REMOVED)
1168 if(sldns_wirerr_get_type(ta->rr, ta->rr_len, ta->dname_len)
1171 str = sldns_wire2str_rr(ta->rr, ta->rr_len);
1179 ";;lastchange=%u ;;%s", str, (int)ta->s,
1180 trustanchor_state2str(ta->s), (int)ta->pending_count,
1181 (unsigned int)ta->last_change,
1182 autr_ctime_r(&(ta->last_change), tmi)) < 0) {
1330 seen_trustanchor(struct autr_ta* ta, uint8_t seen)
1332 ta->fetched = seen;
1333 if(ta->pending_count < 250) /* no numerical overflow, please */
1334 ta->pending_count++;
1339 seen_revoked_trustanchor(struct autr_ta* ta, uint8_t revoked)
1341 ta->revoked = revoked;
1346 revoke_dnskey(struct autr_ta* ta, int off)
1350 if(sldns_wirerr_get_type(ta->rr, ta->rr_len, ta->dname_len) !=
1353 if(sldns_wirerr_get_rdatalen(ta->rr, ta->rr_len, ta->dname_len) < 2)
1355 data = sldns_wirerr_get_rdata(ta->rr, ta->rr_len, ta->dname_len);
1420 * @param result: returns NULL or the ta key looked for.
1427 struct autr_ta* ta;
1432 for(ta=tp->autr->keys; ta; ta=ta->next) {
1433 if(ta_compare(ta, t, rdata, rdata_len) == 0) {
1434 *result = ta;
1446 struct autr_ta* ta;
1463 ta = autr_ta_create(rr, rr_len, dname_len);
1464 if(!ta) {
1469 ta->next = tp->autr->keys;
1470 tp->autr->keys = ta;
1471 return ta;
1530 struct autr_ta* ta;
1531 for(ta=tp->autr->keys; ta; ta=ta->next) {
1532 ta->fetched = 0;
1547 struct autr_ta* ta = NULL;
1554 dd->rr_data[i]+2, dd->rr_len[i]-2, &ta)) {
1558 if(!ta)
1566 ta->rr, ta->rr_len, ta->dname_len),
1567 sldns_wirerr_get_rdatalen(ta->rr, ta->rr_len,
1568 ta->dname_len)) ||
1571 ta->rr, ta->rr_len, ta->dname_len),
1572 sldns_wirerr_get_rdatalen(ta->rr, ta->rr_len,
1573 ta->dname_len))); /* checks conversion*/
1574 verbose_key(ta, VERB_ALGO, "is self-signed revoked");
1575 if(!ta->revoked)
1577 seen_revoked_trustanchor(ta, 1);
1578 do_revoked(env, ta, changed);
1640 struct autr_ta* ta = NULL;
1663 dd->rr_data[i]+2, dd->rr_len[i]-2, &ta)) {
1666 if(!ta) {
1667 ta = add_key(tp, (uint32_t)dd->rr_ttl[i],
1671 if(ta && tp->ds_rrset && key_matches_a_ds(env, ve,
1673 verbose_key(ta, VERB_ALGO, "verified by DS");
1674 ta->s = AUTR_STATE_VALID;
1677 if(!ta) {
1680 seen_trustanchor(ta, 1);
1681 verbose_key(ta, VERB_ALGO, "in DNS response");
1692 * @param ta: trust anchor to check for.
1697 check_holddown(struct module_env* env, struct autr_ta* ta,
1701 if(*env->now < ta->last_change) {
1705 elapsed = *env->now - ta->last_change;
1709 verbose_key(ta, VERB_ALGO, "holddown time " ARG_LL "d seconds to go",
1717 reset_holddown(struct module_env* env, struct autr_ta* ta, int* changed)
1719 ta->last_change = *env->now;
1725 set_trustanchor_state(struct module_env* env, struct autr_ta* ta, int* changed,
1728 verbose_key(ta, VERB_ALGO, "update: %s to %s",
1729 trustanchor_state2str(ta->s), trustanchor_state2str(s));
1730 ta->s = s;
1731 reset_holddown(env, ta, changed);
2273 autr_debug_print_ta(struct autr_ta* ta)
2276 char* str = sldns_wire2str_rr(ta->rr, ta->rr_len);
2282 (void)autr_ctime_r(&ta->last_change, buf);
2285 trustanchor_state2str(ta->s), str, ta->s, ta->pending_count,
2286 ta->fetched?" fetched":"", ta->revoked?" revoked":"", buf);
2294 struct autr_ta* ta;
2323 for(ta=tp->autr->keys; ta; ta=ta->next) {
2324 autr_debug_print_ta(ta);