ldns  1.7.0
Functions | Variables
keys.c File Reference

Go to the source code of this file.

Functions

ldns_key_listldns_key_list_new (void)
 Creates a new empty key list. More...
 
ldns_keyldns_key_new (void)
 Creates a new empty key structure. More...
 
ldns_status ldns_key_new_frm_fp (ldns_key **k, FILE *fp)
 Creates a new priv key based on the contents of the file pointed by fp. More...
 
ldns_status ldns_key_new_frm_engine (ldns_key **key, ENGINE *e, char *key_id, ldns_algorithm alg)
 Read the key with the given id from the given engine and store it in the given ldns_key structure. More...
 
int ldns_key_EVP_load_gost_id (void)
 Get the PKEY id for GOST, loads GOST into openssl as a side effect. More...
 
void ldns_key_EVP_unload_gost (void)
 Release the engine reference held for the GOST engine. More...
 
ldns_status ldns_key_new_frm_fp_l (ldns_key **key, FILE *fp, int *line_nr)
 Creates a new private key based on the contents of the file pointed by fp. More...
 
RSA * ldns_key_new_frm_fp_rsa (FILE *f)
 frm_fp helper function. More...
 
RSA * ldns_key_new_frm_fp_rsa_l (FILE *f, int *line_nr)
 frm_fp helper function. More...
 
DSA * ldns_key_new_frm_fp_dsa (FILE *f)
 frm_fp helper function. More...
 
DSA * ldns_key_new_frm_fp_dsa_l (FILE *f, int *line_nr __attribute__((unused)))
 
unsigned char * ldns_key_new_frm_fp_hmac (FILE *f, size_t *hmac_size)
 frm_fp helper function. More...
 
unsigned char * ldns_key_new_frm_fp_hmac_l (FILE *f, int *line_nr __attribute__((unused)), size_t *hmac_size)
 
ldns_keyldns_key_new_frm_algorithm (ldns_signing_algorithm alg, uint16_t size)
 Creates a new key based on the algorithm. More...
 
void ldns_key_print (FILE *output, const ldns_key *k)
 print a private key to the file output More...
 
void ldns_key_set_algorithm (ldns_key *k, ldns_signing_algorithm l)
 Set the key's algorithm. More...
 
void ldns_key_set_flags (ldns_key *k, uint16_t f)
 Set the key's flags. More...
 
void ldns_key_set_evp_key (ldns_key *k, EVP_PKEY *e)
 Set the key's evp key. More...
 
void ldns_key_set_rsa_key (ldns_key *k, RSA *r)
 Set the key's rsa data. More...
 
void ldns_key_set_dsa_key (ldns_key *k, DSA *d)
 Set the key's dsa data The dsa data should be freed by the user. More...
 
void ldns_key_assign_rsa_key (ldns_key *k, RSA *r)
 Assign the key's rsa data The rsa data will be freed automatically when the key is freed. More...
 
void ldns_key_assign_dsa_key (ldns_key *k, DSA *d)
 Assign the key's dsa data The dsa data will be freed automatically when the key is freed. More...
 
void ldns_key_set_hmac_key (ldns_key *k, unsigned char *hmac)
 Set the key's hmac data. More...
 
void ldns_key_set_hmac_size (ldns_key *k, size_t hmac_size)
 Set the key's hmac size. More...
 
void ldns_key_set_external_key (ldns_key *k, void *external_key)
 Set the key id data. More...
 
void ldns_key_set_origttl (ldns_key *k, uint32_t t)
 Set the key's original ttl. More...
 
void ldns_key_set_inception (ldns_key *k, uint32_t i)
 Set the key's inception date (seconds after epoch) More...
 
void ldns_key_set_expiration (ldns_key *k, uint32_t e)
 Set the key's expiration date (seconds after epoch) More...
 
void ldns_key_set_pubkey_owner (ldns_key *k, ldns_rdf *r)
 Set the key's pubkey owner. More...
 
void ldns_key_set_keytag (ldns_key *k, uint16_t tag)
 Set the key's key tag. More...
 
size_t ldns_key_list_key_count (const ldns_key_list *key_list)
 returns the number of keys in the key list More...
 
ldns_keyldns_key_list_key (const ldns_key_list *key, size_t nr)
 returns a pointer to the key in the list at the given position More...
 
ldns_signing_algorithm ldns_key_algorithm (const ldns_key *k)
 return the signing alg of the key More...
 
void ldns_key_set_use (ldns_key *k, bool v)
 
bool ldns_key_use (const ldns_key *k)
 return the use flag More...
 
EVP_PKEY * ldns_key_evp_key (const ldns_key *k)
 returns the (openssl) EVP struct contained in the key More...
 
RSA * ldns_key_rsa_key (const ldns_key *k)
 returns the (openssl) RSA struct contained in the key More...
 
DSA * ldns_key_dsa_key (const ldns_key *k)
 returns the (openssl) DSA struct contained in the key More...
 
unsigned char * ldns_key_hmac_key (const ldns_key *k)
 return the hmac key data More...
 
size_t ldns_key_hmac_size (const ldns_key *k)
 return the hmac key size More...
 
void * ldns_key_external_key (const ldns_key *k)
 return the key id key data More...
 
uint32_t ldns_key_origttl (const ldns_key *k)
 return the original ttl of the key More...
 
uint16_t ldns_key_flags (const ldns_key *k)
 return the flag of the key More...
 
uint32_t ldns_key_inception (const ldns_key *k)
 return the key's inception date More...
 
uint32_t ldns_key_expiration (const ldns_key *k)
 return the key's expiration date More...
 
uint16_t ldns_key_keytag (const ldns_key *k)
 return the keytag More...
 
ldns_rdfldns_key_pubkey_owner (const ldns_key *k)
 return the public key's owner More...
 
void ldns_key_list_set_use (ldns_key_list *keys, bool v)
 
void ldns_key_list_set_key_count (ldns_key_list *key, size_t count)
 Set the keylist's key count to count. More...
 
bool ldns_key_list_push_key (ldns_key_list *key_list, ldns_key *key)
 pushes a key to a keylist More...
 
ldns_keyldns_key_list_pop_key (ldns_key_list *key_list)
 pops the last rr from a keylist More...
 
ldns_rrldns_key2rr (const ldns_key *k)
 converts a ldns_key to a public key rr If the key data exists at an external point, the corresponding rdata field must still be added with ldns_rr_rdf_push() to the result rr of this function More...
 
void ldns_key_free (ldns_key *key)
 frees a key structure, but not its internal data structures More...
 
void ldns_key_deep_free (ldns_key *key)
 frees a key structure and all its internal data structures, except the data set by ldns_key_set_external_key() More...
 
void ldns_key_list_free (ldns_key_list *key_list)
 Frees a key list structure. More...
 
ldns_rrldns_read_anchor_file (const char *filename)
 Instantiates a DNSKEY or DS RR from file. More...
 
char * ldns_key_get_file_base_name (const ldns_key *key)
 Returns the 'default base name' for key files; IE. More...
 
int ldns_key_algo_supported (int algo)
 See if a key algorithm is supported. More...
 
ldns_signing_algorithm ldns_get_signing_algorithm_by_name (const char *name)
 Get signing algorithm by name. More...
 

Variables

ldns_lookup_table ldns_signing_algorithms []
 
ENGINE * ldns_gost_engine = NULL
 store GOST engine reference loaded into OpenSSL library More...
 

Function Documentation

§ ldns_key_list_new()

ldns_key_list* ldns_key_list_new ( void  )

Creates a new empty key list.

Returns
a new ldns_key_list structure pointer

Definition at line 58 of file keys.c.

References ldns_struct_key_list::_key_count, ldns_struct_key_list::_keys, and LDNS_MALLOC.

§ ldns_key_new()

ldns_key* ldns_key_new ( void  )

§ ldns_key_new_frm_fp()

ldns_status ldns_key_new_frm_fp ( ldns_key **  k,
FILE *  fp 
)

Creates a new priv key based on the contents of the file pointed by fp.

The file should be in Private-key-format v1.x.

Parameters
[out]kthe new ldns_key structure
[in]fpthe file pointer to use
Returns
an error or LDNS_STATUS_OK

Definition at line 97 of file keys.c.

References ldns_key_new_frm_fp_l().

§ ldns_key_new_frm_engine()

ldns_status ldns_key_new_frm_engine ( ldns_key **  key,
ENGINE *  e,
char *  key_id,
ldns_algorithm   
)

Read the key with the given id from the given engine and store it in the given ldns_key structure.

The algorithm type is set

Definition at line 104 of file keys.c.

References ldns_struct_key::_key, ldns_struct_key::key, ldns_key_free(), ldns_key_new(), ldns_key_set_algorithm(), LDNS_STATUS_ENGINE_KEY_NOT_LOADED, LDNS_STATUS_ERR, LDNS_STATUS_MEM_ERR, and LDNS_STATUS_OK.

§ ldns_key_EVP_load_gost_id()

int ldns_key_EVP_load_gost_id ( void  )

Get the PKEY id for GOST, loads GOST into openssl as a side effect.

Only available if GOST is compiled into the library and openssl.

Returns
the gost id for EVP_CTX creation.

Definition at line 132 of file keys.c.

References ldns_gost_engine.

§ ldns_key_EVP_unload_gost()

void ldns_key_EVP_unload_gost ( void  )

Release the engine reference held for the GOST engine.

Definition at line 180 of file keys.c.

References ldns_gost_engine.

§ ldns_key_new_frm_fp_l()

ldns_status ldns_key_new_frm_fp_l ( ldns_key **  k,
FILE *  fp,
int *  line_nr 
)

§ ldns_key_new_frm_fp_rsa()

RSA* ldns_key_new_frm_fp_rsa ( FILE *  fp)

frm_fp helper function.

This function parses the remainder of the (RSA) priv. key file generated from bind9

Parameters
[in]fpthe file to parse
Returns
NULL on failure otherwise a RSA structure

Definition at line 768 of file keys.c.

References ldns_key_new_frm_fp_rsa_l().

§ ldns_key_new_frm_fp_rsa_l()

RSA* ldns_key_new_frm_fp_rsa_l ( FILE *  fp,
int *  line_nr 
)

frm_fp helper function.

This function parses the remainder of the (RSA) priv. key file generated from bind9

Parameters
[in]fpthe file to parse
[in]line_nrpointer to an integer containing the current line number (for debugging purposes)
Returns
NULL on failure otherwise a RSA structure

Definition at line 774 of file keys.c.

References ldns_b64_pton(), ldns_fget_keyword_data_l(), LDNS_MAX_LINELEN, and LDNS_XMALLOC.

§ ldns_key_new_frm_fp_dsa()

DSA* ldns_key_new_frm_fp_dsa ( FILE *  fp)

frm_fp helper function.

This function parses the remainder of the (DSA) priv. key file

Parameters
[in]fpthe file to parse
Returns
NULL on failure otherwise a RSA structure

Definition at line 946 of file keys.c.

References ldns_key_new_frm_fp_dsa_l().

§ ldns_key_new_frm_fp_dsa_l()

DSA* ldns_key_new_frm_fp_dsa_l ( FILE *  f,
int *line_nr   __attribute__(unused) 
)

Definition at line 952 of file keys.c.

References ldns_b64_pton(), ldns_fget_keyword_data_l(), LDNS_MAX_LINELEN, and LDNS_XMALLOC.

§ ldns_key_new_frm_fp_hmac()

unsigned char* ldns_key_new_frm_fp_hmac ( FILE *  fp,
size_t *  hmac_size 
)

frm_fp helper function.

This function parses the remainder of the (HMAC-MD5) key file This function allocated a buffer that needs to be freed

Parameters
[in]fpthe file to parse
[out]hmac_sizethe number of bits in the resulting buffer
Returns
NULL on failure otherwise a newly allocated char buffer

Definition at line 1057 of file keys.c.

References ldns_key_new_frm_fp_hmac_l().

§ ldns_key_new_frm_fp_hmac_l()

unsigned char* ldns_key_new_frm_fp_hmac_l ( FILE *  f,
int *line_nr   __attribute__(unused),
size_t *  hmac_size 
)

Definition at line 1063 of file keys.c.

References ldns_fget_keyword_data_l(), and LDNS_MAX_LINELEN.

§ ldns_key_new_frm_algorithm()

ldns_key* ldns_key_new_frm_algorithm ( ldns_signing_algorithm  a,
uint16_t  size 
)

§ ldns_key_print()

void ldns_key_print ( FILE *  output,
const ldns_key k 
)

print a private key to the file output

Parameters
[in]outputthe FILE descriptor where to print to
[in]kthe ldns_key to print

Definition at line 1376 of file keys.c.

References LDNS_FREE, and ldns_key2str().

§ ldns_key_set_algorithm()

void ldns_key_set_algorithm ( ldns_key k,
ldns_signing_algorithm  l 
)

Set the key's algorithm.

Parameters
[in]kthe key
[in]lthe algorithm

Definition at line 1389 of file keys.c.

References ldns_struct_key::_alg.

§ ldns_key_set_flags()

void ldns_key_set_flags ( ldns_key k,
uint16_t  flags 
)

Set the key's flags.

Parameters
[in]kthe key
[in]flagsthe flags

Definition at line 1395 of file keys.c.

References ldns_struct_key::_extra, and ldns_struct_key::dnssec.

§ ldns_key_set_evp_key()

void ldns_key_set_evp_key ( ldns_key k,
EVP_PKEY *  e 
)

Set the key's evp key.

Parameters
[in]kthe key
[in]ethe evp key

Definition at line 1403 of file keys.c.

References ldns_struct_key::_key, and ldns_struct_key::key.

§ ldns_key_set_rsa_key()

void ldns_key_set_rsa_key ( ldns_key k,
RSA *  r 
)

Set the key's rsa data.

The rsa data should be freed by the user.

Parameters
[in]kthe key
[in]rthe rsa data

Definition at line 1409 of file keys.c.

References ldns_struct_key::_key, and ldns_struct_key::key.

§ ldns_key_set_dsa_key()

void ldns_key_set_dsa_key ( ldns_key k,
DSA *  d 
)

Set the key's dsa data The dsa data should be freed by the user.

Parameters
[in]kthe key
[in]dthe dsa data

Definition at line 1417 of file keys.c.

References ldns_struct_key::_key, and ldns_struct_key::key.

§ ldns_key_assign_rsa_key()

void ldns_key_assign_rsa_key ( ldns_key k,
RSA *  r 
)

Assign the key's rsa data The rsa data will be freed automatically when the key is freed.

Parameters
[in]kthe key
[in]rthe rsa data

Definition at line 1429 of file keys.c.

References ldns_struct_key::_key, and ldns_struct_key::key.

§ ldns_key_assign_dsa_key()

void ldns_key_assign_dsa_key ( ldns_key k,
DSA *  d 
)

Assign the key's dsa data The dsa data will be freed automatically when the key is freed.

Parameters
[in]kthe key
[in]dthe dsa data

Definition at line 1437 of file keys.c.

References ldns_struct_key::_key, and ldns_struct_key::key.

§ ldns_key_set_hmac_key()

void ldns_key_set_hmac_key ( ldns_key k,
unsigned char *  hmac 
)

Set the key's hmac data.

Parameters
[in]kthe key
[in]hmacthe raw key data

Definition at line 1451 of file keys.c.

References ldns_struct_key::_key, and ldns_struct_key::hmac.

§ ldns_key_set_hmac_size()

void ldns_key_set_hmac_size ( ldns_key k,
size_t  hmac_size 
)

Set the key's hmac size.

Parameters
[in]kthe key
[in]hmac_sizethe size of the hmac data

Definition at line 1457 of file keys.c.

References ldns_struct_key::_key, and ldns_struct_key::hmac.

§ ldns_key_set_external_key()

void ldns_key_set_external_key ( ldns_key key,
void *  external_key 
)

Set the key id data.

This is used if the key points to some externally stored key data

Only the pointer is set, the data there is not copied, and must be freed manually; ldns_key_deep_free() does not free this data

Parameters
[in]keythe key
[in]external_keykey id data

Definition at line 1463 of file keys.c.

References ldns_struct_key::_key, and ldns_struct_key::external_key.

§ ldns_key_set_origttl()

void ldns_key_set_origttl ( ldns_key k,
uint32_t  t 
)

Set the key's original ttl.

Parameters
[in]kthe key
[in]tthe ttl

Definition at line 1469 of file keys.c.

References ldns_struct_key::_extra, and ldns_struct_key::dnssec.

§ ldns_key_set_inception()

void ldns_key_set_inception ( ldns_key k,
uint32_t  i 
)

Set the key's inception date (seconds after epoch)

Parameters
[in]kthe key
[in]ithe inception

Definition at line 1475 of file keys.c.

References ldns_struct_key::_extra, and ldns_struct_key::dnssec.

§ ldns_key_set_expiration()

void ldns_key_set_expiration ( ldns_key k,
uint32_t  e 
)

Set the key's expiration date (seconds after epoch)

Parameters
[in]kthe key
[in]ethe expiration

Definition at line 1481 of file keys.c.

References ldns_struct_key::_extra, and ldns_struct_key::dnssec.

§ ldns_key_set_pubkey_owner()

void ldns_key_set_pubkey_owner ( ldns_key k,
ldns_rdf r 
)

Set the key's pubkey owner.

Parameters
[in]kthe key
[in]rthe owner

Definition at line 1487 of file keys.c.

References ldns_struct_key::_pubkey_owner.

§ ldns_key_set_keytag()

void ldns_key_set_keytag ( ldns_key k,
uint16_t  tag 
)

Set the key's key tag.

Parameters
[in]kthe key
[in]tagthe keytag

Definition at line 1493 of file keys.c.

References ldns_struct_key::_extra, and ldns_struct_key::dnssec.

§ ldns_key_list_key_count()

size_t ldns_key_list_key_count ( const ldns_key_list key_list)

returns the number of keys in the key list

Parameters
[in]key_listthe key_list
Returns
the numbers of keys in the list

Definition at line 1500 of file keys.c.

References ldns_struct_key_list::_key_count.

§ ldns_key_list_key()

ldns_key* ldns_key_list_key ( const ldns_key_list key,
size_t  nr 
)

returns a pointer to the key in the list at the given position

Parameters
[in]keythe key
[in]nrthe position in the list
Returns
the key

Definition at line 1506 of file keys.c.

References ldns_struct_key_list::_keys, and ldns_key_list_key_count().

§ ldns_key_algorithm()

ldns_signing_algorithm ldns_key_algorithm ( const ldns_key k)

return the signing alg of the key

Parameters
[in]kthe key
Returns
the algorithm

Definition at line 1516 of file keys.c.

References ldns_struct_key::_alg.

§ ldns_key_set_use()

void ldns_key_set_use ( ldns_key k,
bool  v 
)

Definition at line 1522 of file keys.c.

References ldns_struct_key::_use.

§ ldns_key_use()

bool ldns_key_use ( const ldns_key k)

return the use flag

Parameters
[in]kthe key
Returns
the boolean value of the _use field

Definition at line 1530 of file keys.c.

References ldns_struct_key::_use.

§ ldns_key_evp_key()

EVP_PKEY* ldns_key_evp_key ( const ldns_key k)

returns the (openssl) EVP struct contained in the key

Parameters
[in]kthe key to look in
Returns
the RSA * structure in the key

Definition at line 1541 of file keys.c.

References ldns_struct_key::_key, and ldns_struct_key::key.

§ ldns_key_rsa_key()

RSA* ldns_key_rsa_key ( const ldns_key k)

returns the (openssl) RSA struct contained in the key

Parameters
[in]kthe key to look in
Returns
the RSA * structure in the key

Definition at line 1547 of file keys.c.

References ldns_struct_key::_key, and ldns_struct_key::key.

§ ldns_key_dsa_key()

DSA* ldns_key_dsa_key ( const ldns_key k)

returns the (openssl) DSA struct contained in the key

Definition at line 1557 of file keys.c.

References ldns_struct_key::_key, and ldns_struct_key::key.

§ ldns_key_hmac_key()

unsigned char* ldns_key_hmac_key ( const ldns_key k)

return the hmac key data

Parameters
[in]kthe key
Returns
the hmac key data

Definition at line 1574 of file keys.c.

References ldns_struct_key::_key, and ldns_struct_key::hmac.

§ ldns_key_hmac_size()

size_t ldns_key_hmac_size ( const ldns_key k)

return the hmac key size

Parameters
[in]kthe key
Returns
the hmac key size

Definition at line 1584 of file keys.c.

References ldns_struct_key::_key, and ldns_struct_key::hmac.

§ ldns_key_external_key()

void* ldns_key_external_key ( const ldns_key k)

return the key id key data

Parameters
[in]kthe key
Returns
the key id data

Definition at line 1594 of file keys.c.

References ldns_struct_key::_key, and ldns_struct_key::external_key.

§ ldns_key_origttl()

uint32_t ldns_key_origttl ( const ldns_key k)

return the original ttl of the key

Parameters
[in]kthe key
Returns
the original ttl

Definition at line 1600 of file keys.c.

References ldns_struct_key::_extra, and ldns_struct_key::dnssec.

§ ldns_key_flags()

uint16_t ldns_key_flags ( const ldns_key k)

return the flag of the key

Parameters
[in]kthe key
Returns
the flag

Definition at line 1606 of file keys.c.

References ldns_struct_key::_extra, and ldns_struct_key::dnssec.

§ ldns_key_inception()

uint32_t ldns_key_inception ( const ldns_key k)

return the key's inception date

Parameters
[in]kthe key
Returns
the inception date

Definition at line 1612 of file keys.c.

References ldns_struct_key::_extra, and ldns_struct_key::dnssec.

§ ldns_key_expiration()

uint32_t ldns_key_expiration ( const ldns_key k)

return the key's expiration date

Parameters
[in]kthe key
Returns
the experiration date

Definition at line 1618 of file keys.c.

References ldns_struct_key::_extra, and ldns_struct_key::dnssec.

§ ldns_key_keytag()

uint16_t ldns_key_keytag ( const ldns_key k)

return the keytag

Parameters
[in]kthe key
Returns
the keytag

Definition at line 1624 of file keys.c.

References ldns_struct_key::_extra, and ldns_struct_key::dnssec.

§ ldns_key_pubkey_owner()

ldns_rdf* ldns_key_pubkey_owner ( const ldns_key k)

return the public key's owner

Parameters
[in]kthe key
Returns
the owner

Definition at line 1630 of file keys.c.

References ldns_struct_key::_pubkey_owner.

§ ldns_key_list_set_use()

void ldns_key_list_set_use ( ldns_key_list keys,
bool  v 
)

Definition at line 1637 of file keys.c.

References ldns_key_list_key(), ldns_key_list_key_count(), and ldns_key_set_use().

§ ldns_key_list_set_key_count()

void ldns_key_list_set_key_count ( ldns_key_list key,
size_t  count 
)

Set the keylist's key count to count.

Parameters
[in]keythe key
[in]countthe cuont

Definition at line 1647 of file keys.c.

References ldns_struct_key_list::_key_count.

§ ldns_key_list_push_key()

bool ldns_key_list_push_key ( ldns_key_list key_list,
ldns_key key 
)

pushes a key to a keylist

Parameters
[in]key_listthe key_list to push to
[in]keythe key to push
Returns
false on error, otherwise true

Definition at line 1653 of file keys.c.

References ldns_struct_key_list::_keys, ldns_key_list_key_count(), ldns_key_list_set_key_count(), and LDNS_XREALLOC.

§ ldns_key_list_pop_key()

ldns_key* ldns_key_list_pop_key ( ldns_key_list key_list)

pops the last rr from a keylist

Parameters
[in]key_listthe rr_list to pop from
Returns
NULL if nothing to pop. Otherwise the popped RR

Definition at line 1676 of file keys.c.

References ldns_struct_key_list::_keys, ldns_key_list_key(), ldns_key_list_key_count(), ldns_key_list_set_key_count(), and LDNS_XREALLOC.

§ ldns_key2rr()

ldns_rr* ldns_key2rr ( const ldns_key k)

§ ldns_key_free()

void ldns_key_free ( ldns_key key)

frees a key structure, but not its internal data structures

Parameters
[in]keythe key object to free

Definition at line 2065 of file keys.c.

References LDNS_FREE.

§ ldns_key_deep_free()

void ldns_key_deep_free ( ldns_key key)

frees a key structure and all its internal data structures, except the data set by ldns_key_set_external_key()

Parameters
[in]keythe key object to free

Definition at line 2071 of file keys.c.

References LDNS_FREE, ldns_key_evp_key(), ldns_key_hmac_key(), ldns_key_pubkey_owner(), and ldns_rdf_deep_free().

§ ldns_key_list_free()

void ldns_key_list_free ( ldns_key_list key_list)

Frees a key list structure.

Parameters
[in]key_listthe key list object to free

Definition at line 2090 of file keys.c.

References ldns_struct_key_list::_keys, LDNS_FREE, ldns_key_deep_free(), ldns_key_list_key(), and ldns_key_list_key_count().

§ ldns_read_anchor_file()

ldns_rr* ldns_read_anchor_file ( const char *  filename)

Instantiates a DNSKEY or DS RR from file.

Parameters
[in]filenamethe file to read the record from
Returns
the corresponding RR, or NULL if the parsing failed

Definition at line 2101 of file keys.c.

References LDNS_FREE, ldns_get_errorstr_by_id(), LDNS_MAX_PACKETLEN, ldns_rr_get_type(), ldns_rr_new_frm_str(), LDNS_RR_TYPE_DNSKEY, LDNS_RR_TYPE_DS, LDNS_STATUS_OK, and LDNS_XMALLOC.

§ ldns_key_get_file_base_name()

char* ldns_key_get_file_base_name ( const ldns_key key)

Returns the 'default base name' for key files; IE.

K<zone>+<alg>+<keytag> (without the .key or .private) The memory for this is allocated by this function, and should be freed by the caller

Parameters
[in]keythe key to get the file name from
Returns
A string containing the file base name

Definition at line 2153 of file keys.c.

References ldns_buffer_export(), ldns_buffer_free(), ldns_buffer_new(), ldns_buffer_printf(), ldns_key_algorithm(), ldns_key_keytag(), ldns_key_pubkey_owner(), and ldns_rdf2buffer_str_dname().

§ ldns_key_algo_supported()

int ldns_key_algo_supported ( int  algo)

See if a key algorithm is supported.

Parameters
[in]algothe signing algorithm number.
Returns
true if supported.

Definition at line 2170 of file keys.c.

References ldns_struct_lookup_table::id, ldns_signing_algorithms, and ldns_struct_lookup_table::name.

§ ldns_get_signing_algorithm_by_name()

ldns_signing_algorithm ldns_get_signing_algorithm_by_name ( const char *  name)

Get signing algorithm by name.

Comparison is case insensitive.

Parameters
[in]namestring with the name.
Returns
0 on parse failure or the algorithm number.

Definition at line 2181 of file keys.c.

References ldns_struct_lookup_table::id, LDNS_DH, LDNS_ECC, LDNS_INDIRECT, LDNS_PRIVATEDNS, LDNS_PRIVATEOID, LDNS_SIGN_DSA_NSEC3, LDNS_SIGN_ECC_GOST, LDNS_SIGN_HMACMD5, LDNS_SIGN_RSASHA1_NSEC3, ldns_signing_algorithms, and ldns_struct_lookup_table::name.

Variable Documentation

§ ldns_signing_algorithms

ldns_lookup_table ldns_signing_algorithms[]

Definition at line 23 of file keys.c.

§ ldns_gost_engine

ENGINE* ldns_gost_engine = NULL

store GOST engine reference loaded into OpenSSL library

Definition at line 129 of file keys.c.