Electroneum
validator.h File Reference
#include "util/module.h"
#include "util/data/msgreply.h"
#include "validator/val_utils.h"
Include dependency graph for validator.h:

Go to the source code of this file.

Classes

struct  val_env
 
struct  val_qstate
 

Macros

#define NULL_KEY_TTL   60 /* seconds */
 
#define BOGUS_KEY_TTL   60 /* seconds */
 
#define VAL_MAX_RESTART_COUNT   5
 
#define SENTINEL_IS   "root-key-sentinel-is-ta-"
 
#define SENTINEL_NOT   "root-key-sentinel-not-ta-"
 
#define SENTINEL_KEYTAG_LEN   5
 

Enumerations

enum  val_state {
  VAL_INIT_STATE = 0, VAL_FINDKEY_STATE, VAL_VALIDATE_STATE, VAL_FINISHED_STATE,
  VAL_DLVLOOKUP_STATE
}
 

Functions

struct module_func_blockval_get_funcblock (void)
 
const char * val_state_to_string (enum val_state state)
 
int val_init (struct module_env *env, int id)
 
void val_deinit (struct module_env *env, int id)
 
void val_operate (struct module_qstate *qstate, enum module_ev event, int id, struct outbound_entry *outbound)
 
void val_inform_super (struct module_qstate *qstate, int id, struct module_qstate *super)
 
void val_clear (struct module_qstate *qstate, int id)
 
size_t val_get_mem (struct module_env *env, int id)
 

Detailed Description

This file contains a module that performs validation of DNS queries. According to RFC 4034.

Definition in file validator.h.

Macro Definition Documentation

◆ BOGUS_KEY_TTL

#define BOGUS_KEY_TTL   60 /* seconds */

TTL for bogus key entries. When a DS or DNSKEY fails in the chain of trust the entire zone for that name is blacked out for this TTL.

Definition at line 65 of file validator.h.

◆ NULL_KEY_TTL

#define NULL_KEY_TTL   60 /* seconds */

This is the TTL to use when a trust anchor fails to prime. A trust anchor will be primed no more often than this interval. Used when harden- dnssec-stripped is off and the trust anchor fails.

Definition at line 59 of file validator.h.

◆ SENTINEL_IS

#define SENTINEL_IS   "root-key-sentinel-is-ta-"

Root key sentinel is ta preamble

Definition at line 71 of file validator.h.

◆ SENTINEL_KEYTAG_LEN

#define SENTINEL_KEYTAG_LEN   5

Root key sentinal keytag length

Definition at line 75 of file validator.h.

◆ SENTINEL_NOT

#define SENTINEL_NOT   "root-key-sentinel-not-ta-"

Root key sentinel is not ta preamble

Definition at line 73 of file validator.h.

◆ VAL_MAX_RESTART_COUNT

#define VAL_MAX_RESTART_COUNT   5

max number of query restarts, number of IPs to probe

Definition at line 68 of file validator.h.

Enumeration Type Documentation

◆ val_state

enum val_state

State of the validator for a query.

Enumerator
VAL_INIT_STATE 

initial state for validation

VAL_FINDKEY_STATE 

find the proper keys for validation, follow trust chain

VAL_VALIDATE_STATE 

validate the answer, using found key entry

VAL_FINISHED_STATE 

finish up

VAL_DLVLOOKUP_STATE 

DLV lookup state, processing DLV queries

Definition at line 131 of file validator.h.

Function Documentation

◆ val_clear()

void val_clear ( struct module_qstate qstate,
int  id 
)

validator cleanup query state

◆ val_deinit()

void val_deinit ( struct module_env env,
int  id 
)

validator deinit

◆ val_get_funcblock()

struct module_func_block* val_get_funcblock ( void  )

Get the validator function block.

Returns
: function block with function pointers to validator methods.

◆ val_get_mem()

size_t val_get_mem ( struct module_env env,
int  id 
)

Debug helper routine that assists worker in determining memory in use.

Parameters
envmodule environment
idmodule id.
Returns
memory in use in bytes.

◆ val_inform_super()

void val_inform_super ( struct module_qstate qstate,
int  id,
struct module_qstate super 
)

inform validator super.

Parameters
qstatequery state that finished.
idmodule id.
superthe qstate to inform.

◆ val_init()

int val_init ( struct module_env env,
int  id 
)

validator init

◆ val_operate()

void val_operate ( struct module_qstate qstate,
enum module_ev  event,
int  id,
struct outbound_entry outbound 
)

validator operate on a query

◆ val_state_to_string()

const char* val_state_to_string ( enum val_state  state)

Get validator state as a string

Parameters
stateto convert
Returns
constant string that is printable.