OpenDNSSEC-enforcer 2.1.13
Functions
hsm_key_factory.h File Reference
#include "db/hsm_key.h"
#include "db/policy_key.h"
#include "daemon/engine.h"
#include <time.h>

Go to the source code of this file.

Functions

void hsm_key_factory_deinit (void)
 
int hsm_key_factory_generate (engine_type *engine, const db_connection_t *connection, const policy_t *policy, const policy_key_t *policy_key, time_t duration)
 
int hsm_key_factory_generate_policy (engine_type *engine, const db_connection_t *connection, const policy_t *policy, time_t duration)
 
int hsm_key_factory_generate_all (engine_type *engine, const db_connection_t *connection, time_t duration)
 
int hsm_key_factory_schedule_generate_policy (engine_type *engine, const policy_t *policy_orig, time_t duration)
 
int hsm_key_factory_schedule_generate_all (engine_type *engine, time_t duration)
 
hsm_key_thsm_key_factory_get_key (engine_type *engine, const db_connection_t *connection, const policy_key_t *policy_key, hsm_key_state_t hsm_key_state)
 
int hsm_key_factory_release_key_id (const db_value_t *hsm_key_id, const db_connection_t *connection)
 
int hsm_key_factory_release_key (hsm_key_t *hsm_key, const db_connection_t *connection)
 
int hsm_key_factory_delete_key (const db_connection_t *connection)
 

Function Documentation

◆ hsm_key_factory_deinit()

void hsm_key_factory_deinit ( void  )
extern

Definition at line 84 of file hsm_key_factory.c.

Referenced by engine_dealloc().

◆ hsm_key_factory_delete_key()

int hsm_key_factory_delete_key ( const db_connection_t connection)
extern

◆ hsm_key_factory_generate()

int hsm_key_factory_generate ( engine_type engine,
const db_connection_t connection,
const policy_t policy,
const policy_key_t policy_key,
time_t  duration 
)

◆ hsm_key_factory_generate_all()

int hsm_key_factory_generate_all ( engine_type engine,
const db_connection_t connection,
time_t  duration 
)

◆ hsm_key_factory_generate_policy()

int hsm_key_factory_generate_policy ( engine_type engine,
const db_connection_t connection,
const policy_t policy,
time_t  duration 
)

◆ hsm_key_factory_get_key()

hsm_key_t * hsm_key_factory_get_key ( engine_type engine,
const db_connection_t connection,
const policy_key_t policy_key,
hsm_key_state_t  hsm_key_state 
)
extern

Allocate a private or shared HSM key for the policy key provided. This will also schedule a task for generating more keys if needed.

Parameters
[in]enginean engine_type.
[in]connectiona database connection.
[in]policy_keya policy key.
[in]hsm_key_stateindicate if its a private or shared key that should be fetched (HSM_KEY_STATE_PRIVATE | HSM_KEY_STATE_SHARED).
Returns
an allocated HSM key or NULL on error or if there are no unused keys available for allocation right now.

Definition at line 629 of file hsm_key_factory.c.

References engine_struct::config, db_clause_list_free(), db_clause_list_new(), __hsm_key_factory_task::engine, hsm_key_algorithm_clause(), hsm_key_bits_clause(), hsm_key_free(), hsm_key_is_revoked_clause(), hsm_key_key_type_clause(), HSM_KEY_KEY_TYPE_RSA, hsm_key_list_free(), hsm_key_list_get_next(), hsm_key_list_new_get_by_clauses(), hsm_key_policy_id_clause(), hsm_key_repository_clause(), hsm_key_role_clause(), hsm_key_set_state(), hsm_key_state_clause(), HSM_KEY_STATE_PRIVATE, HSM_KEY_STATE_SHARED, HSM_KEY_STATE_UNUSED, hsm_key_update(), engineconfig_struct::manual_keygen, policy_key_algorithm(), policy_key_bits(), policy_key_policy_id(), and policy_key_repository().

◆ hsm_key_factory_release_key()

int hsm_key_factory_release_key ( hsm_key_t hsm_key,
const db_connection_t connection 
)
extern

Release a key, if its not used anyore it will be marked DELETE.

Parameters
[in]hsm_keya hsm_key_t pointer with the hsm_key to release.
Returns
non-zero on error.

Definition at line 763 of file hsm_key_factory.c.

References db_clause_list_free(), db_clause_list_new(), hsm_key_id(), hsm_key_locator(), hsm_key_set_state(), HSM_KEY_STATE_DELETE, hsm_key_update(), key_data_count(), key_data_free(), key_data_hsm_key_id_clause(), and key_data_new().

◆ hsm_key_factory_release_key_id()

int hsm_key_factory_release_key_id ( const db_value_t hsm_key_id,
const db_connection_t connection 
)
extern

Release a key, if its not used anyore it will be marked DELETE.

Parameters
[in]hsm_key_ida db_value_t pointer with the hsm_key database id.
Returns
non-zero on error.

Definition at line 704 of file hsm_key_factory.c.

References db_clause_list_free(), db_clause_list_new(), hsm_key_free(), hsm_key_get_by_id(), hsm_key_id(), hsm_key_locator(), hsm_key_new(), hsm_key_set_state(), HSM_KEY_STATE_DELETE, hsm_key_update(), key_data_count(), key_data_free(), key_data_hsm_key_id_clause(), and key_data_new().

Referenced by removeDeadKeysNow(), and zonelist_import().

◆ hsm_key_factory_schedule_generate_all()

int hsm_key_factory_schedule_generate_all ( engine_type engine,
time_t  duration 
)

Schedule a task to generate keys for all policies and policy keys we currently have.

Parameters
[in]enginean engine_type.
[in]durationa time_t specifying the duration to generate keys from, if its zero then the duration from conf.xml is taken.
Returns
non-zero on error.

Definition at line 598 of file hsm_key_factory.c.

References __hsm_key_factory_task::duration, __hsm_key_factory_task::engine, __hsm_key_factory_task::policy, __hsm_key_factory_task::policy_key, __hsm_key_factory_task::reschedule_enforce_task, and engine_struct::taskq.

Referenced by autostart(), policy_import(), and zonelist_import().

◆ hsm_key_factory_schedule_generate_policy()

int hsm_key_factory_schedule_generate_policy ( engine_type engine,
const policy_t policy_orig,
time_t  duration 
)

Schedule a task to generate keys for a specific policy.

Parameters
[in]enginean engine_type. \prama[in] policy_orig a policy_t pointer to the policy we will generate keys for.
[in]durationa time_t specifying the duration to generate keys from, if its zero then the duration from conf.xml is taken.
Returns
non-zero on error.

Definition at line 560 of file hsm_key_factory.c.

References __hsm_key_factory_task::duration, __hsm_key_factory_task::engine, __hsm_key_factory_task::policy, policy_free(), __hsm_key_factory_task::policy_key, policy_new_copy(), __hsm_key_factory_task::reschedule_enforce_task, and engine_struct::taskq.