Lines Matching refs: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)) {
1117 struct autr_ta* ta;
1157 for(ta=tp->autr->keys; ta; ta=ta->next) {
1159 if(ta->s == AUTR_STATE_START)
1161 if(ta->s == AUTR_STATE_REMOVED)
1164 if(sldns_wirerr_get_type(ta->rr, ta->rr_len, ta->dname_len)
1167 str = sldns_wire2str_rr(ta->rr, ta->rr_len);
1175 ";;lastchange=%u ;;%s", str, (int)ta->s,
1176 trustanchor_state2str(ta->s), (int)ta->pending_count,
1177 (unsigned int)ta->last_change,
1178 autr_ctime_r(&(ta->last_change), tmi)) < 0) {
1326 seen_trustanchor(struct autr_ta* ta, uint8_t seen)
1328 ta->fetched = seen;
1329 if(ta->pending_count < 250) /* no numerical overflow, please */
1330 ta->pending_count++;
1335 seen_revoked_trustanchor(struct autr_ta* ta, uint8_t revoked)
1337 ta->revoked = revoked;
1342 revoke_dnskey(struct autr_ta* ta, int off)
1346 if(sldns_wirerr_get_type(ta->rr, ta->rr_len, ta->dname_len) !=
1349 if(sldns_wirerr_get_rdatalen(ta->rr, ta->rr_len, ta->dname_len) < 2)
1351 data = sldns_wirerr_get_rdata(ta->rr, ta->rr_len, ta->dname_len);
1416 * @param result: returns NULL or the ta key looked for.
1423 struct autr_ta* ta;
1428 for(ta=tp->autr->keys; ta; ta=ta->next) {
1429 if(ta_compare(ta, t, rdata, rdata_len) == 0) {
1430 *result = ta;
1442 struct autr_ta* ta;
1459 ta = autr_ta_create(rr, rr_len, dname_len);
1460 if(!ta) {
1465 ta->next = tp->autr->keys;
1466 tp->autr->keys = ta;
1467 return ta;
1526 struct autr_ta* ta;
1527 for(ta=tp->autr->keys; ta; ta=ta->next) {
1528 ta->fetched = 0;
1543 struct autr_ta* ta = NULL;
1550 dd->rr_data[i]+2, dd->rr_len[i]-2, &ta)) {
1554 if(!ta)
1562 ta->rr, ta->rr_len, ta->dname_len),
1563 sldns_wirerr_get_rdatalen(ta->rr, ta->rr_len,
1564 ta->dname_len)) ||
1567 ta->rr, ta->rr_len, ta->dname_len),
1568 sldns_wirerr_get_rdatalen(ta->rr, ta->rr_len,
1569 ta->dname_len))); /* checks conversion*/
1570 verbose_key(ta, VERB_ALGO, "is self-signed revoked");
1571 if(!ta->revoked)
1573 seen_revoked_trustanchor(ta, 1);
1574 do_revoked(env, ta, changed);
1636 struct autr_ta* ta = NULL;
1659 dd->rr_data[i]+2, dd->rr_len[i]-2, &ta)) {
1662 if(!ta) {
1663 ta = add_key(tp, (uint32_t)dd->rr_ttl[i],
1667 if(ta && tp->ds_rrset && key_matches_a_ds(env, ve,
1669 verbose_key(ta, VERB_ALGO, "verified by DS");
1670 ta->s = AUTR_STATE_VALID;
1673 if(!ta) {
1676 seen_trustanchor(ta, 1);
1677 verbose_key(ta, VERB_ALGO, "in DNS response");
1688 * @param ta: trust anchor to check for.
1693 check_holddown(struct module_env* env, struct autr_ta* ta,
1697 if(*env->now < ta->last_change) {
1701 elapsed = *env->now - ta->last_change;
1705 verbose_key(ta, VERB_ALGO, "holddown time " ARG_LL "d seconds to go",
1713 reset_holddown(struct module_env* env, struct autr_ta* ta, int* changed)
1715 ta->last_change = *env->now;
1721 set_trustanchor_state(struct module_env* env, struct autr_ta* ta, int* changed,
1724 verbose_key(ta, VERB_ALGO, "update: %s to %s",
1725 trustanchor_state2str(ta->s), trustanchor_state2str(s));
1726 ta->s = s;
1727 reset_holddown(env, ta, changed);
2284 autr_debug_print_ta(struct autr_ta* ta)
2287 char* str = sldns_wire2str_rr(ta->rr, ta->rr_len);
2293 (void)autr_ctime_r(&ta->last_change, buf);
2296 trustanchor_state2str(ta->s), str, ta->s, ta->pending_count,
2297 ta->fetched?" fetched":"", ta->revoked?" revoked":"", buf);
2305 struct autr_ta* ta;
2336 for(ta=tp->autr->keys; ta; ta=ta->next) {
2337 autr_debug_print_ta(ta);