---
name: "ldns_dnssec_data_chain_struct"
section: "3"
platform: "linux"
package: "ldns"
version: "1.9.2-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/ldns_dnssec_data_chain_struct"
---

# ldns\_dnssec\_data\_chain\_struct(3)

data structures for validation chains

## NAME

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

## SYNOPSIS

\#include \<stdint.h\>\
 \#include \<stdbool.h\>\

\#include \<ldns/ldns.h\>

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

## 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

The ldns team at NLnet Labs.

## REPORTING BUGS

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

## 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

*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

This manpage was automatically generated from the ldns source code.
