ldns(3) Library Functions Manual ldns(3)

# [NAME](#NAME)

ldns\_dnssec\_data\_chain, ldns\_dnssec\_data\_chain\_struct, ldns\_dnssec\_trust\_tree - data structures for validation chains

# [SYNOPSIS](#SYNOPSIS)

#include &lt;stdint.h&gt;  
#include &lt;stdbool.h&gt;

#include &lt;ldns/ldns.h&gt;

ldns\_dnssec\_data\_chain\_struct();

# [DESCRIPTION](#DESCRIPTION)

*ldns\_dnssec\_data\_chain*  
Chain structure that contains all DNSSEC data needed to  
verify an rrset  
struct ldns\_dnssec\_data\_chain\_struct  
{  
ldns\_rr\_list \*rrset;  
ldns\_rr\_list \*signatures;  
ldns\_rr\_type parent\_type;  
ldns\_dnssec\_data\_chain \*parent;  
ldns\_pkt\_rcode packet\_rcode;  
ldns\_rr\_type packet\_qtype;  
bool packet\_nodata;  
};

typedef struct ldns\_dnssec\_data\_chain\_struct ldns\_dnssec\_data\_chain;

*ldns\_dnssec\_data\_chain\_struct*()

*ldns\_dnssec\_trust\_tree*  
Tree structure that contains the relation of DNSSEC data,  
and their cryptographic status.

This tree is derived from a data\_chain, and can be used  
to look whether there is a connection between an RRSET  
and a trusted key. The tree only contains pointers to the  
data\_chain, and therefore one should \*never* free() the  
data\_chain when there is still a trust tree derived from  
that chain.

Example tree:  
key key key  
\\ | /  
\\ | /  
\\ | /  
ds  
|  
key  
|  
key  
|  
rr

For each signature there is a parent; if the parent  
pointer is null, it couldn't be found and there was no  
denial; otherwise is a tree which contains either a  
DNSKEY, a DS, or a NSEC rr  
struct ldns\_dnssec\_trust\_tree\_struct  
{  
ldns\_rr \*rr;  
/* the complete rrset this rr was in \*/  
ldns\_rr\_list \*rrset;  
ldns\_dnssec\_trust\_tree \*parents\[LDNS\_DNSSEC\_TRUST\_TREE\_MAX\_PARENTS];  
ldns\_status parent\_status\[LDNS\_DNSSEC\_TRUST\_TREE\_MAX\_PARENTS];  
/\** for debugging, add signatures too (you might want  
those if they contain errors) \*/  
ldns\_rr \*parent\_signature\[LDNS\_DNSSEC\_TRUST\_TREE\_MAX\_PARENTS];  
size\_t parent\_count;  
};

typedef struct ldns\_dnssec\_trust\_tree\_struct ldns\_dnssec\_trust\_tree;

# [AUTHOR](#AUTHOR)

The ldns team at NLnet Labs.

# [REPORTING BUGS](#REPORTING_BUGS)

Please report bugs to dns-team@nlnetlabs.nl or on GitHub at https://github.com/NLnetLabs/ldns/issues

# [COPYRIGHT](#COPYRIGHT)

Copyright (c) 2004 - 2006 NLnet Labs.

Licensed under the BSD License. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

# [SEE ALSO](#SEE_ALSO)

*ldns\_dnssec\_data\_chain\_new*, *ldns\_dnssec\_trust\_tree\_new*, *ldns\_dnssec\_verify\_denial*. And **perldoc Net::DNS**, **RFC1034**, **RFC1035**, **RFC4033**, **RFC4034** and **RFC4035**.

# [REMARKS](#REMARKS)

This manpage was automatically generated from the ldns source code.

30 May 2006

---

Document: ldns_dnssec_trust_tree(3) from ldns 1.9.2-r2 (Chainguard OS)
Source: https://github.com/NLnetLabs/ldns.git
