OpenDNSSEC-enforcer  1.4.5
ksmutil.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2008-2009 Nominet UK. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  * 1. Redistributions of source code must retain the above copyright
8  * notice, this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright
10  * notice, this list of conditions and the following disclaimer in the
11  * documentation and/or other materials provided with the distribution.
12  *
13  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
14  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
15  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16  * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
17  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
19  * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
21  * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
22  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
23  * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24  *
25  */
26 
27 #ifndef KSM_UTIL_H
28 #define KSM_UTIL_H
29 
30 /*+
31  * Filename: ksmutil.h
32  *
33  * Description:
34  * function definitions of stuff in the ksmutil code.
35 -*/
36 #include <stdio.h>
37 #include <ksm/ksm.h>
38 #include <ksm/database.h>
39 #include <libxml/xpath.h>
40 #include <inttypes.h>
41 
42 #ifdef __cplusplus
43 extern "C" {
44 #endif
45 
46 /* Function definitions */
47 int db_connect(DB_HANDLE *dbhandle, FILE** lock_fd, int backup);
48 void db_disconnect(FILE* lock_fd);
49 int read_filenames(char** zone_list_filename, char** kasp_filename);
51 int update_policies(char* kasp_filename);
52 int update_zones(char* zone_list_filename);
53 int get_lite_lock(char *lock_filename, FILE* lock_fd);
54 int release_lite_lock(FILE* lock_fd);
55 int SetParamOnPolicy(const xmlChar* new_value,
56  const char* name,
57  const char* category,
58  int current_value,
59  int policy_id,
60  int value_type);
61 void SetPolicyDefaults(KSM_POLICY *policy, char *name);
62 int backup_file(const char* orig_file, const char* backup_file);
63 int get_db_details(char** dbschema,
64  char** host,
65  char** port,
66  char** user,
67  char** password);
68 int read_zonelist_filename(char** zone_list_filename);
69 xmlDocPtr add_zone_node(const char *docname,
70  const char *zone_name,
71  const char *policy_name,
72  const char *sig_conf_name,
73  const char *input_name,
74  const char *output_name,
75  const char *input_type,
76  const char *output_type);
77 xmlDocPtr del_zone_node(const char *docname,
78  const char *zone_name);
79 void list_zone_node(const char *docname, int *zone_ids);
80 xmlDocPtr del_policy_node(const char *docname,
81  const char *policy_name);
82 int append_policy(xmlDocPtr doc, KSM_POLICY *policy);
83 int printKey(void* context, KSM_KEYDATA* key_data);
84 void ksm_log_msg(const char *format);
85 int ListKeys(int zone_id);
86 int PurgeKeys(int zone_id, int policy_id);
87 int cmd_genkeys();
88 int cmd_delkey();
89 void SetPolicyDefaults(KSM_POLICY *policy, char *name);
90 int fix_file_perms(const char *dbschema);
91 int CountKeys(int *zone_id, int keytag, const char *cka_id, int *key_count, char **temp_cka_id, int *temp_key_state, int *temp_keypair_id);
92 int GetKeyState(const char *cka_id, int *temp_key_state, int *temp_keypair_id);
93 int MarkDSSeen(int keypair_id, int zone_id, int policy_id, const char *datetime, int key_state);
94 int RetireOldKey(int zone_id, int policy_id, const char *datetime);
95 int CountKeysInState(int keytype, int keystate, int* count, int zone_id);
96 int ChangeKeyState(int keytype, const char *cka_id, int zone_id, int policy_id, const char *datetime, int key_state);
97 int get_conf_key_info(int* interval, int* man_key_gen);
98 int LinkKeys(const char* zone_name, int policy_id);
99 int allocateKeysToZone(KSM_POLICY *policy, int key_type, int zone_id, uint16_t interval, const char* zone_name, int man_key_gen, int rollover_scheme);
100 int keyRoll(int zone_id, int policy_id, int key_type);
102 int append_zone(xmlDocPtr doc, KSM_ZONE *zone);
103 int ShellQuoteString(const char* string, char* buffer, size_t buflen);
104 int rename_signconf(const char* zonelist_filename, const char* o_zone);
105 int ListDS(int zone_id);
106 
107 #ifdef __cplusplus
108 }
109 #endif
110 
111 #endif /* KSM_UTIL_H */