Go to the source code of this file.
Data Structures | |
struct | ldns_struct_key |
General key structure, can contain all types of keys that are used in DNSSEC. More... | |
struct | ldns_struct_key_list |
Same as rr_list, but now for keys. More... | |
Defines | |
#define | LDNS_KEY_ZONE_KEY 0x0100 |
#define | LDNS_KEY_SEP_KEY 0x0001 |
#define | LDNS_KEY_REVOKE_KEY 0x0080 |
Typedefs | |
typedef enum ldns_enum_algorithm | ldns_algorithm |
typedef enum ldns_enum_hash | ldns_hash |
typedef enum ldns_enum_signing_algorithm | ldns_signing_algorithm |
typedef ldns_struct_key | ldns_key |
typedef ldns_struct_key_list | ldns_key_list |
Enumerations | |
enum | ldns_enum_algorithm { LDNS_RSAMD5 = 1, LDNS_DH = 2, LDNS_DSA = 3, LDNS_ECC = 4, LDNS_RSASHA1 = 5, LDNS_DSA_NSEC3 = 6, LDNS_RSASHA1_NSEC3 = 7, LDNS_RSASHA256 = 8, LDNS_RSASHA512 = 10, LDNS_ECC_GOST = 12, LDNS_ECDSAP256SHA256 = 13, LDNS_ECDSAP384SHA384 = 14, LDNS_INDIRECT = 252, LDNS_PRIVATEDNS = 253, LDNS_PRIVATEOID = 254 } |
Algorithms used in dns. More... | |
enum | ldns_enum_hash { LDNS_SHA1 = 1, LDNS_SHA256 = 2, LDNS_HASH_GOST = 3, LDNS_SHA384 = 4 } |
Hashing algorithms used in the DS record. More... | |
enum | ldns_enum_signing_algorithm { LDNS_SIGN_RSAMD5 = LDNS_RSAMD5, LDNS_SIGN_RSASHA1 = LDNS_RSASHA1, LDNS_SIGN_DSA = LDNS_DSA, LDNS_SIGN_RSASHA1_NSEC3 = LDNS_RSASHA1_NSEC3, LDNS_SIGN_RSASHA256 = LDNS_RSASHA256, LDNS_SIGN_RSASHA512 = LDNS_RSASHA512, LDNS_SIGN_DSA_NSEC3 = LDNS_DSA_NSEC3, LDNS_SIGN_ECC_GOST = LDNS_ECC_GOST, LDNS_SIGN_ECDSAP256SHA256 = LDNS_ECDSAP256SHA256, LDNS_SIGN_ECDSAP384SHA384 = LDNS_ECDSAP384SHA384, LDNS_SIGN_HMACMD5 = 157, LDNS_SIGN_HMACSHA1 = 158, LDNS_SIGN_HMACSHA256 = 159 } |
Algorithms used in dns for signing. More... | |
Functions | |
ldns_key_list * | ldns_key_list_new () |
Creates a new empty key list. | |
ldns_key * | ldns_key_new () |
Creates a new empty key structure. | |
ldns_key * | ldns_key_new_frm_algorithm (ldns_signing_algorithm a, uint16_t size) |
Creates a new key based on the algorithm. | |
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. | |
ldns_status | ldns_key_new_frm_fp_l (ldns_key **k, FILE *fp, int *line_nr) |
Creates a new private key based on the contents of the file pointed by fp. | |
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. | |
RSA * | ldns_key_new_frm_fp_rsa (FILE *fp) |
frm_fp helper function. | |
RSA * | ldns_key_new_frm_fp_rsa_l (FILE *fp, int *line_nr) |
frm_fp helper function. | |
DSA * | ldns_key_new_frm_fp_dsa (FILE *fp) |
frm_fp helper function. | |
DSA * | ldns_key_new_frm_fp_dsa_l (FILE *fp, int *line_nr) |
frm_fp helper function. | |
unsigned char * | ldns_key_new_frm_fp_hmac (FILE *fp, size_t *hmac_size) |
frm_fp helper function. | |
unsigned char * | ldns_key_new_frm_fp_hmac_l (FILE *fp, int *line_nr, size_t *hmac_size) |
frm_fp helper function. | |
void | ldns_key_set_algorithm (ldns_key *k, ldns_signing_algorithm l) |
Set the key's algorithm. | |
void | ldns_key_set_evp_key (ldns_key *k, EVP_PKEY *e) |
Set the key's evp key. | |
void | ldns_key_set_rsa_key (ldns_key *k, RSA *r) |
Set the key's rsa data. | |
void | ldns_key_set_dsa_key (ldns_key *k, DSA *d) |
Set the key's dsa data. | |
int | ldns_key_EVP_load_gost_id (void) |
Get the PKEY id for GOST, loads GOST into openssl as a side effect. | |
void | ldns_key_EVP_unload_gost (void) |
Release the engine reference held for the GOST engine. | |
void | ldns_key_set_hmac_key (ldns_key *k, unsigned char *hmac) |
Set the key's hmac data. | |
void | ldns_key_set_external_key (ldns_key *key, void *external_key) |
Set the key id data. | |
void | ldns_key_set_hmac_size (ldns_key *k, size_t hmac_size) |
Set the key's hmac size. | |
void | ldns_key_set_origttl (ldns_key *k, uint32_t t) |
Set the key's original ttl. | |
void | ldns_key_set_inception (ldns_key *k, uint32_t i) |
Set the key's inception date (seconds after epoch). | |
void | ldns_key_set_expiration (ldns_key *k, uint32_t e) |
Set the key's expiration date (seconds after epoch). | |
void | ldns_key_set_pubkey_owner (ldns_key *k, ldns_rdf *r) |
Set the key's pubkey owner. | |
void | ldns_key_set_keytag (ldns_key *k, uint16_t tag) |
Set the key's key tag. | |
void | ldns_key_set_flags (ldns_key *k, uint16_t flags) |
Set the key's flags. | |
void | ldns_key_list_set_key_count (ldns_key_list *key, size_t count) |
Set the keylist's key count to count. | |
signed char | ldns_key_list_push_key (ldns_key_list *key_list, ldns_key *key) |
pushes a key to a keylist | |
size_t | ldns_key_list_key_count (const ldns_key_list *key_list) |
returns the number of keys in the key list | |
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 | |
RSA * | ldns_key_rsa_key (const ldns_key *k) |
returns the (openssl) RSA struct contained in the key | |
EVP_PKEY * | ldns_key_evp_key (const ldns_key *k) |
returns the (openssl) EVP struct contained in the key | |
DSA * | ldns_key_dsa_key (const ldns_key *k) |
returns the (openssl) DSA struct contained in the key | |
ldns_signing_algorithm | ldns_key_algorithm (const ldns_key *k) |
return the signing alg of the key | |
void | ldns_key_set_use (ldns_key *k, signed char v) |
set the use flag | |
signed char | ldns_key_use (const ldns_key *k) |
return the use flag | |
unsigned char * | ldns_key_hmac_key (const ldns_key *k) |
return the hmac key data | |
void * | ldns_key_external_key (const ldns_key *k) |
return the key id key data | |
size_t | ldns_key_hmac_size (const ldns_key *k) |
return the hmac key size | |
uint32_t | ldns_key_origttl (const ldns_key *k) |
return the original ttl of the key | |
uint32_t | ldns_key_inception (const ldns_key *k) |
return the key's inception date | |
uint32_t | ldns_key_expiration (const ldns_key *k) |
return the key's expiration date | |
uint16_t | ldns_key_keytag (const ldns_key *k) |
return the keytag | |
ldns_rdf * | ldns_key_pubkey_owner (const ldns_key *k) |
return the public key's owner | |
void | ldns_key_list_set_use (ldns_key_list *keys, signed char v) |
Set the 'use' flag for all keys in the list. | |
uint16_t | ldns_key_flags (const ldns_key *k) |
return the flag of the key | |
ldns_key * | ldns_key_list_pop_key (ldns_key_list *key_list) |
pops the last rr from a keylist | |
ldns_rr * | ldns_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 | |
void | ldns_key_print (FILE *output, const ldns_key *k) |
print a private key to the file ouput | |
void | ldns_key_free (ldns_key *key) |
frees a key structure, but not its internal data structures | |
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() | |
void | ldns_key_list_free (ldns_key_list *key_list) |
Frees a key list structure. | |
ldns_rr * | ldns_read_anchor_file (const char *filename) |
Instantiates a DNSKEY or DS RR from file. | |
char * | ldns_key_get_file_base_name (ldns_key *key) |
Returns the 'default base name' for key files; IE. | |
int | ldns_key_algo_supported (int algo) |
See if a key algorithm is supported. | |
ldns_signing_algorithm | ldns_get_signing_algorithm_by_name (const char *name) |
Get signing algorithm by name. | |
Variables | |
ldns_lookup_table | ldns_signing_algorithms [] |
Definition in file keys.h.
typedef enum ldns_enum_algorithm ldns_algorithm |
typedef enum ldns_enum_hash ldns_hash |
typedef enum ldns_enum_signing_algorithm ldns_signing_algorithm |
typedef struct ldns_struct_key ldns_key |
typedef struct ldns_struct_key_list ldns_key_list |
enum ldns_enum_algorithm |
enum ldns_enum_hash |
Algorithms used in dns for signing.
ldns_key_list* ldns_key_list_new | ( | ) |
Creates a new empty key list.
Definition at line 47 of file keys.c.
References ldns_struct_key_list::_key_count, ldns_struct_key_list::_keys, and LDNS_MALLOC.
ldns_key* ldns_key_new | ( | ) |
Creates a new empty key structure.
Definition at line 60 of file keys.c.
References ldns_key_set_evp_key(), ldns_key_set_expiration(), ldns_key_set_external_key(), ldns_key_set_flags(), ldns_key_set_hmac_key(), ldns_key_set_inception(), ldns_key_set_keytag(), ldns_key_set_origttl(), ldns_key_set_pubkey_owner(), ldns_key_set_use(), LDNS_KEY_ZONE_KEY, and LDNS_MALLOC.
ldns_key* ldns_key_new_frm_algorithm | ( | ldns_signing_algorithm | a, | |
uint16_t | size | |||
) |
Creates a new key based on the algorithm.
[in] | a | The algorithm to use |
[in] | size | the number of bytes for the keysize |
Definition at line 817 of file keys.c.
References ldns_struct_key::_key, ldns_struct_key::key, LDNS_FREE, ldns_key_free(), ldns_key_new(), ldns_key_set_algorithm(), ldns_key_set_dsa_key(), ldns_key_set_evp_key(), ldns_key_set_flags(), ldns_key_set_hmac_key(), ldns_key_set_hmac_size(), ldns_key_set_rsa_key(), LDNS_SIGN_DSA, LDNS_SIGN_DSA_NSEC3, LDNS_SIGN_ECC_GOST, LDNS_SIGN_ECDSAP256SHA256, LDNS_SIGN_ECDSAP384SHA384, LDNS_SIGN_HMACMD5, LDNS_SIGN_HMACSHA1, LDNS_SIGN_HMACSHA256, LDNS_SIGN_RSAMD5, LDNS_SIGN_RSASHA1, LDNS_SIGN_RSASHA1_NSEC3, LDNS_SIGN_RSASHA256, LDNS_SIGN_RSASHA512, and LDNS_XMALLOC.
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.
[out] | k | the new ldns_key structure |
[in] | fp | the file pointer to use |
Definition at line 86 of file keys.c.
References ldns_key_new_frm_fp_l().
ldns_status ldns_key_new_frm_fp_l | ( | ldns_key ** | k, | |
FILE * | fp, | |||
int * | line_nr | |||
) |
Creates a new private key based on the contents of the file pointed by fp.
The file should be in Private-key-format v1.x.
[out] | k | the new ldns_key structure |
[in] | fp | the file pointer to use |
[in] | line_nr | pointer to an integer containing the current line number (for debugging purposes) |
Definition at line 291 of file keys.c.
References ldns_calc_keytag(), LDNS_DH, LDNS_ECC, ldns_fget_keyword_data_l(), LDNS_FREE, ldns_key2rr(), ldns_key_EVP_load_gost_id(), ldns_key_free(), ldns_key_new(), ldns_key_new_frm_fp_dsa_l(), ldns_key_new_frm_fp_hmac_l(), ldns_key_new_frm_fp_rsa_l(), ldns_key_set_algorithm(), ldns_key_set_dsa_key(), ldns_key_set_evp_key(), ldns_key_set_hmac_key(), ldns_key_set_hmac_size(), ldns_key_set_keytag(), ldns_key_set_rsa_key(), LDNS_MAX_LINELEN, ldns_rr_free(), LDNS_SIGN_DSA, LDNS_SIGN_DSA_NSEC3, LDNS_SIGN_ECC_GOST, LDNS_SIGN_ECDSAP256SHA256, LDNS_SIGN_ECDSAP384SHA384, LDNS_SIGN_HMACMD5, LDNS_SIGN_HMACSHA1, LDNS_SIGN_HMACSHA256, LDNS_SIGN_RSAMD5, LDNS_SIGN_RSASHA1, LDNS_SIGN_RSASHA1_NSEC3, LDNS_SIGN_RSASHA256, LDNS_SIGN_RSASHA512, LDNS_STATUS_CRYPTO_ALGO_NOT_IMPL, LDNS_STATUS_ERR, LDNS_STATUS_MEM_ERR, LDNS_STATUS_OK, LDNS_STATUS_SYNTAX_ALG_ERR, LDNS_STATUS_SYNTAX_ERR, LDNS_STATUS_SYNTAX_VERSION_ERR, and LDNS_XMALLOC.
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 93 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.
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
[in] | fp | the file to parse |
Definition at line 513 of file keys.c.
References 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
[in] | fp | the file to parse |
[in] | line_nr | pointer to an integer containing the current line number (for debugging purposes) |
Definition at line 519 of file keys.c.
References ldns_b64_pton(), ldns_fget_keyword_data_l(), LDNS_FREE, LDNS_MAX_LINELEN, and LDNS_XMALLOC.
DSA* ldns_key_new_frm_fp_dsa | ( | FILE * | fp | ) |
frm_fp helper function.
This function parses the remainder of the (DSA) priv. key file
[in] | fp | the file to parse |
Definition at line 656 of file keys.c.
References ldns_key_new_frm_fp_dsa_l().
DSA* ldns_key_new_frm_fp_dsa_l | ( | FILE * | fp, | |
int * | line_nr | |||
) |
frm_fp helper function.
This function parses the remainder of the (DSA) priv. key file
[in] | fp | the file to parse |
[in] | line_nr | pointer to an integer containing the current line number (for debugging purposes) |
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
[in] | fp | the file to parse |
[out] | hmac_size | the number of bits in the resulting buffer |
Definition at line 743 of file keys.c.
References ldns_key_new_frm_fp_hmac_l().
unsigned char* ldns_key_new_frm_fp_hmac_l | ( | FILE * | fp, | |
int * | line_nr, | |||
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
[in] | fp | the file to parse |
[in] | line_nr | pointer to an integer containing the current line number (for error reporting purposes) |
[out] | hmac_size | the number of bits in the resulting buffer |
void ldns_key_set_algorithm | ( | ldns_key * | k, | |
ldns_signing_algorithm | l | |||
) |
Set the key's algorithm.
[in] | k | the key |
[in] | l | the algorithm |
Definition at line 974 of file keys.c.
References ldns_struct_key::_alg.
void ldns_key_set_evp_key | ( | ldns_key * | k, | |
EVP_PKEY * | e | |||
) |
Set the key's evp key.
[in] | k | the key |
[in] | e | the evp key |
Definition at line 988 of file keys.c.
References ldns_struct_key::_key, and ldns_struct_key::key.
void ldns_key_set_rsa_key | ( | ldns_key * | k, | |
RSA * | r | |||
) |
Set the key's rsa data.
[in] | k | the key |
[in] | r | the rsa data |
Definition at line 994 of file keys.c.
References ldns_struct_key::_key, and ldns_struct_key::key.
void ldns_key_set_dsa_key | ( | ldns_key * | k, | |
DSA * | d | |||
) |
Set the key's dsa data.
[in] | k | the key |
[in] | d | the dsa data |
Definition at line 1002 of file keys.c.
References ldns_struct_key::_key, and ldns_struct_key::key.
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.
void ldns_key_EVP_unload_gost | ( | void | ) |
Release the engine reference held for the GOST engine.
void ldns_key_set_hmac_key | ( | ldns_key * | k, | |
unsigned char * | hmac | |||
) |
Set the key's hmac data.
[in] | k | the key |
[in] | hmac | the raw key data |
Definition at line 1012 of file keys.c.
References ldns_struct_key::_key, and ldns_struct_key::hmac.
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
[in] | key | the key |
[in] | external_key | key id data |
Definition at line 1024 of file keys.c.
References ldns_struct_key::_key, and ldns_struct_key::external_key.
void ldns_key_set_hmac_size | ( | ldns_key * | k, | |
size_t | hmac_size | |||
) |
Set the key's hmac size.
[in] | k | the key |
[in] | hmac_size | the size of the hmac data |
Definition at line 1018 of file keys.c.
References ldns_struct_key::_key, and ldns_struct_key::hmac.
void ldns_key_set_origttl | ( | ldns_key * | k, | |
uint32_t | t | |||
) |
Set the key's original ttl.
[in] | k | the key |
[in] | t | the ttl |
Definition at line 1030 of file keys.c.
References ldns_struct_key::_extra, and ldns_struct_key::dnssec.
void ldns_key_set_inception | ( | ldns_key * | k, | |
uint32_t | i | |||
) |
Set the key's inception date (seconds after epoch).
[in] | k | the key |
[in] | i | the inception |
Definition at line 1036 of file keys.c.
References ldns_struct_key::_extra, and ldns_struct_key::dnssec.
void ldns_key_set_expiration | ( | ldns_key * | k, | |
uint32_t | e | |||
) |
Set the key's expiration date (seconds after epoch).
[in] | k | the key |
[in] | e | the expiration |
Definition at line 1042 of file keys.c.
References ldns_struct_key::_extra, and ldns_struct_key::dnssec.
Set the key's pubkey owner.
[in] | k | the key |
[in] | r | the owner |
Definition at line 1048 of file keys.c.
References ldns_struct_key::_pubkey_owner.
void ldns_key_set_keytag | ( | ldns_key * | k, | |
uint16_t | tag | |||
) |
Set the key's key tag.
[in] | k | the key |
[in] | tag | the keytag |
Definition at line 1054 of file keys.c.
References ldns_struct_key::_extra, and ldns_struct_key::dnssec.
void ldns_key_set_flags | ( | ldns_key * | k, | |
uint16_t | flags | |||
) |
Set the key's flags.
[in] | k | the key |
[in] | flags | the flags |
Definition at line 980 of file keys.c.
References ldns_struct_key::_extra, and ldns_struct_key::dnssec.
void ldns_key_list_set_key_count | ( | ldns_key_list * | key, | |
size_t | count | |||
) |
Set the keylist's key count to count.
[in] | key | the key |
[in] | count | the cuont |
Definition at line 1203 of file keys.c.
References ldns_struct_key_list::_key_count.
signed char ldns_key_list_push_key | ( | ldns_key_list * | key_list, | |
ldns_key * | key | |||
) |
pushes a key to a keylist
[in] | key_list | the key_list to push to |
[in] | key | the key to push |
Definition at line 1209 of file keys.c.
References ldns_struct_key_list::_keys, ldns_key_list_key_count(), ldns_key_list_set_key_count(), and LDNS_XREALLOC.
size_t ldns_key_list_key_count | ( | const ldns_key_list * | key_list | ) |
returns the number of keys in the key list
[in] | key_list | the key_list |
Definition at line 1061 of file keys.c.
References ldns_struct_key_list::_key_count.
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
[in] | key | the key |
[in] | nr | the position in the list |
Definition at line 1067 of file keys.c.
References ldns_struct_key_list::_keys, and ldns_key_list_key_count().
RSA* ldns_key_rsa_key | ( | const ldns_key * | k | ) |
returns the (openssl) RSA struct contained in the key
[in] | k | the key to look in |
Definition at line 1108 of file keys.c.
References ldns_struct_key::_key, and ldns_struct_key::key.
EVP_PKEY* ldns_key_evp_key | ( | const ldns_key * | k | ) |
returns the (openssl) EVP struct contained in the key
[in] | k | the key to look in |
Definition at line 1102 of file keys.c.
References ldns_struct_key::_key, and ldns_struct_key::key.
DSA* ldns_key_dsa_key | ( | const ldns_key * | k | ) |
returns the (openssl) DSA struct contained in the key
Definition at line 1118 of file keys.c.
References ldns_struct_key::_key, and ldns_struct_key::key.
ldns_signing_algorithm ldns_key_algorithm | ( | const ldns_key * | k | ) |
return the signing alg of the key
[in] | k | the key |
Definition at line 1077 of file keys.c.
References ldns_struct_key::_alg.
void ldns_key_set_use | ( | ldns_key * | k, | |
signed char | v | |||
) |
set the use flag
[in] | k | the key |
[in] | v | the boolean value to set the _use field to |
signed char ldns_key_use | ( | const ldns_key * | k | ) |
return the use flag
[in] | k | the key |
Definition at line 1091 of file keys.c.
References ldns_struct_key::_use.
unsigned char* ldns_key_hmac_key | ( | const ldns_key * | k | ) |
return the hmac key data
[in] | k | the key |
Definition at line 1130 of file keys.c.
References ldns_struct_key::_key, and ldns_struct_key::hmac.
void* ldns_key_external_key | ( | const ldns_key * | k | ) |
return the key id key data
[in] | k | the key |
Definition at line 1150 of file keys.c.
References ldns_struct_key::_key, and ldns_struct_key::external_key.
size_t ldns_key_hmac_size | ( | const ldns_key * | k | ) |
return the hmac key size
[in] | k | the key |
Definition at line 1140 of file keys.c.
References ldns_struct_key::_key, and ldns_struct_key::hmac.
uint32_t ldns_key_origttl | ( | const ldns_key * | k | ) |
return the original ttl of the key
[in] | k | the key |
Definition at line 1156 of file keys.c.
References ldns_struct_key::_extra, and ldns_struct_key::dnssec.
uint32_t ldns_key_inception | ( | const ldns_key * | k | ) |
return the key's inception date
[in] | k | the key |
Definition at line 1168 of file keys.c.
References ldns_struct_key::_extra, and ldns_struct_key::dnssec.
uint32_t ldns_key_expiration | ( | const ldns_key * | k | ) |
return the key's expiration date
[in] | k | the key |
Definition at line 1174 of file keys.c.
References ldns_struct_key::_extra, and ldns_struct_key::dnssec.
uint16_t ldns_key_keytag | ( | const ldns_key * | k | ) |
return the keytag
[in] | k | the key |
Definition at line 1180 of file keys.c.
References ldns_struct_key::_extra, and ldns_struct_key::dnssec.
return the public key's owner
[in] | k | the key |
Definition at line 1186 of file keys.c.
References ldns_struct_key::_pubkey_owner.
void ldns_key_list_set_use | ( | ldns_key_list * | keys, | |
signed char | v | |||
) |
Set the 'use' flag for all keys in the list.
[in] | keys | The key_list |
[in] | v | The value to set the use flags to |
uint16_t ldns_key_flags | ( | const ldns_key * | k | ) |
return the flag of the key
[in] | k | the key |
Definition at line 1162 of file keys.c.
References ldns_struct_key::_extra, and ldns_struct_key::dnssec.
ldns_key* ldns_key_list_pop_key | ( | ldns_key_list * | key_list | ) |
pops the last rr from a keylist
[in] | key_list | the rr_list to pop from |
Definition at line 1232 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.
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
[in] | k | the ldns_key to convert |
Definition at line 1348 of file keys.c.
References ldns_struct_key::_key, ldns_struct_key::key, LDNS_DNSSEC_KEYPROTO, LDNS_DSA, LDNS_DSA_NSEC3, LDNS_FREE, ldns_key_algorithm(), ldns_key_dsa_key(), ldns_key_flags(), ldns_key_hmac_key(), ldns_key_hmac_size(), ldns_key_pubkey_owner(), ldns_key_rsa_key(), LDNS_MAX_KEYLEN, ldns_native2rdf_int16(), ldns_native2rdf_int8(), ldns_rdf_clone(), ldns_rdf_new_frm_data(), LDNS_RDF_TYPE_ALG, LDNS_RDF_TYPE_B64, LDNS_RDF_TYPE_INT16, LDNS_RDF_TYPE_INT8, ldns_rr_free(), ldns_rr_new(), ldns_rr_push_rdf(), ldns_rr_set_owner(), ldns_rr_set_type(), LDNS_RR_TYPE_DNSKEY, LDNS_RR_TYPE_KEY, LDNS_SIGN_DSA, LDNS_SIGN_DSA_NSEC3, LDNS_SIGN_ECC_GOST, LDNS_SIGN_ECDSAP256SHA256, LDNS_SIGN_ECDSAP384SHA384, LDNS_SIGN_HMACMD5, LDNS_SIGN_HMACSHA1, LDNS_SIGN_HMACSHA256, LDNS_SIGN_RSAMD5, LDNS_SIGN_RSASHA1, LDNS_SIGN_RSASHA1_NSEC3, LDNS_SIGN_RSASHA256, LDNS_SIGN_RSASHA512, and LDNS_XMALLOC.
void ldns_key_print | ( | FILE * | output, | |
const ldns_key * | k | |||
) |
print a private key to the file ouput
[in] | output | the FILE descriptor where to print to |
[in] | k | the ldns_key to print |
Definition at line 961 of file keys.c.
References LDNS_FREE, and ldns_key2str().
void ldns_key_free | ( | ldns_key * | key | ) |
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()
[in] | key | the key object to free |
Definition at line 1553 of file keys.c.
References LDNS_FREE, ldns_key_evp_key(), ldns_key_hmac_key(), ldns_key_pubkey_owner(), and ldns_rdf_deep_free().
void ldns_key_list_free | ( | ldns_key_list * | key_list | ) |
Frees a key list structure.
[in] | key_list | the key list object to free |
Definition at line 1572 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_rr* ldns_read_anchor_file | ( | const char * | filename | ) |
Instantiates a DNSKEY or DS RR from file.
[in] | filename | the file to read the record from |
Definition at line 1583 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.
char* ldns_key_get_file_base_name | ( | 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
[in] | key | the key to get the file name from |
Definition at line 1629 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().
int ldns_key_algo_supported | ( | int | algo | ) |
See if a key algorithm is supported.
[in] | algo | the signing algorithm number. |
Definition at line 1646 of file keys.c.
References ldns_struct_lookup_table::id, ldns_signing_algorithms, and ldns_struct_lookup_table::name.
ldns_signing_algorithm ldns_get_signing_algorithm_by_name | ( | const char * | name | ) |
Get signing algorithm by name.
Comparison is case insensitive.
[in] | name | string with the name. |
Definition at line 1657 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.