ldns_struct_key Struct Reference

General key structure, can contain all types of keys that are used in DNSSEC. More...

`#include <keys.h>`

## Data Fields

ldns_signing_algorithm | _alg
signed char | _use
| Whether to use this key when signing.
struct { |
EVP_PKEY * key |
struct { |
unsigned char * key |
size_t size |
} hmac |
| The key can be an HMAC key. More...
void * external_key |
| the key structure can also just point to some external key data More...
} | _key |
| Storage pointers for the types of keys supported.
union { |
struct { |
uint32_t orig_ttl |
| The TTL of the rrset that is currently signed. More...
uint32_t inception |
| The inception date of signatures made with this key. More...
uint32_t expiration |
| The expiration date of signatures made with this key. More...
uint16_t keytag |
| The keytag of this key. More...
uint16_t flags |
| The dnssec key flags as specified in RFC4035, like ZSK and KSK. More...
} dnssec |
| Some values that influence generated signatures. More...
} | _extra |
| Depending on the key we can have extra data.
ldns_rdf * | _pubkey_owner
| Owner name of the key.

## Detailed Description

General key structure, can contain all types of keys that are used in DNSSEC.

Mostly used to store private keys, since public keys can also be stored in a ldns_rr with type LDNS_RR_TYPE_DNSKEY.

This structure can also store some variables that influence the signatures generated by signing with this key, for instance the inception date.

Definition at line 122 of file keys.h.

## Field Documentation

## _alg

ldns_signing_algorithm ldns_struct_key::_alg

Definition at line 123 of file keys.h.

## _use

signed char ldns_struct_key::_use

Whether to use this key when signing.

Definition at line 125 of file keys.h.

## key [1/2]

EVP_PKEY* ldns_struct_key::key

Definition at line 133 of file keys.h.

## key [2/2]

unsigned char* ldns_struct_key::key

Definition at line 140 of file keys.h.

## size

size_t ldns_struct_key::size

Definition at line 141 of file keys.h.

## [struct]

struct { ... } ldns_struct_key::hmac

The key can be an HMAC key.

## external_key

void* ldns_struct_key::external_key

the key structure can also just point to some external key data

Definition at line 146 of file keys.h.

## [struct]

struct { ... } ldns_struct_key::_key

Storage pointers for the types of keys supported.

## orig_ttl

uint32_t ldns_struct_key::orig_ttl

The TTL of the rrset that is currently signed.

Definition at line 153 of file keys.h.

## inception

uint32_t ldns_struct_key::inception

The inception date of signatures made with this key.

Definition at line 155 of file keys.h.

## expiration

uint32_t ldns_struct_key::expiration

The expiration date of signatures made with this key.

Definition at line 157 of file keys.h.

## keytag

uint16_t ldns_struct_key::keytag

The keytag of this key.

Definition at line 159 of file keys.h.

## flags

uint16_t ldns_struct_key::flags

The dnssec key flags as specified in RFC4035, like ZSK and KSK.

Definition at line 161 of file keys.h.

## [struct]

struct { ... } ldns_struct_key::dnssec

Some values that influence generated signatures.

## [union]

union { ... } ldns_struct_key::_extra

Depending on the key we can have extra data.

## _pubkey_owner

ldns_rdf* ldns_struct_key::_pubkey_owner

Owner name of the key.

Definition at line 165 of file keys.h.