dnsval.conf(3) Programmer's Manual dnsval.conf(3) NAME dnsval.conf, resolv.conf, root.hints - Configuration policy for the DNSSEC validator library libval(3) val_add_valpolicy - Dynamically add a new policy to the validator context val_remove_valpolicy - Remove a dynamically added policy from the validator context SYNOPSIS int val_add_valpolicy(val_context_t *context, void *policy_definition, val_policy_entry_t **pol); int val_remove_valpolicy(val_context_t *context, val_policy_entry_t *pol); typedef struct { char *keyword; char *zone; char *value; long ttl; } libval_policy_definition_t; DESCRIPTION Applications can use local policy to influence the validation outcome. Examples of local policy elements include trust anchors for different zones and untrusted algorithms for cryptographic keys and hashes. Local policy may vary for different applications and operating scenarios. The val_add_valpolicy() function can be used to dynamically add a new policy for a given context (the policies are not added persistently to the system configuration). The policy_definition field contains an implementation-specific definition of the validator policy to be added. For the libval library this is represented by the libval_policy_definition_t structure, which contains four fields: keyword, zone and value arguments are identical to keyword, zone and additional-data defined below for dnsval.conf. ttl specifies the duration in seconds for which the policy is kept in effect. A tt value of -1 adds to policy to the context indefinitely. A handle to the newly added policy is returned in *pol. This structure is opaque to the applications; applications must not modify the contents of the memory returned in *pol. Applications may also revoke the effects of a newly added policy, pol, before the expiry of its timeout interval using the val_remove_valpolicy() policy. The validator library reads configuration information from three separate files, resolv.conf, root.hints, and dnsval.conf. resolv.conf The nameserver and search options are supported in the resolv.conf file. This nameserver option is used to specify the IP address of the name server to which queries must be sent by default. For example, nameserver 10.0.0.1 A number of additional fields can be specified to qualify the name server. For example, in the following line: nameserver [10.0.0.1][example.tsigkey:hmac-md5.sig-alg.reg.int:300:0jnu3SdsMvzzlmTDPYRceA==]:8053 example.tsigkey refers to the TSIG key name; hmac-md5.sig-alg.reg.int refers to the TSIG algorithm, 300 is the TSIG fudge factor. and the key is specified as a base64 encoded value. The value 8053 refers to the port number. The values for the TSIG algorithm and the fudge factor in the above example are the defaults. They may be omitted as follows: nameserver [10.0.0.1][example.tsigkey:::0jnu3SdsMvzzlmTDPYRceA==]:8053 The TSIG portion may also be left out entirely, in which case the representation is as follows: nameserver [10.0.0.1]:8053 This search option is used to specify the search path for issuing queries. For example, search test.dnssec-tools.org dnssec-tools.org The forward option is used to redirect queries for names that match a given zone name to the provided name server. For example, forward 76.216.12.217 test.dnssec-tools.org If the resolv.conf file contains no name servers, the validator tries to recursively answer the query using information present in root.hints. root.hints The root.hints file contains bootstrapping information for the resolver while it attempts to recursively answer queries. The contents of this file may be generated by the following command: dig @e.root-servers.net . ns > root.hints dnsval.conf The dnsval.conf file contains the validator policy. It consists of a sequence of the following "policy-fragments":