OpenDNSSEC-enforcer 1.3.0
|
00001 /* 00002 * $Id: ksmutil.h 5320 2011-07-12 10:42:26Z jakob $ 00003 * 00004 * Copyright (c) 2008-2009 Nominet UK. All rights reserved. 00005 * 00006 * Redistribution and use in source and binary forms, with or without 00007 * modification, are permitted provided that the following conditions 00008 * are met: 00009 * 1. Redistributions of source code must retain the above copyright 00010 * notice, this list of conditions and the following disclaimer. 00011 * 2. Redistributions in binary form must reproduce the above copyright 00012 * notice, this list of conditions and the following disclaimer in the 00013 * documentation and/or other materials provided with the distribution. 00014 * 00015 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 00016 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 00017 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 00018 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 00019 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 00020 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 00021 * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 00022 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER 00023 * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 00024 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN 00025 * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00026 * 00027 */ 00028 00029 #ifndef KSM_UTIL_H 00030 #define KSM_UTIL_H 00031 00032 /*+ 00033 * Filename: ksmutil.h 00034 * 00035 * Description: 00036 * function definitions of stuff in the ksmutil code. 00037 -*/ 00038 #include <stdio.h> 00039 #include <ksm/ksm.h> 00040 #include <ksm/database.h> 00041 #include <libxml/xpath.h> 00042 #include <inttypes.h> 00043 00044 #ifdef __cplusplus 00045 extern "C" { 00046 #endif 00047 00048 /* Function definitions */ 00049 int db_connect(DB_HANDLE *dbhandle, FILE** lock_fd, int backup); 00050 void db_disconnect(FILE* lock_fd); 00051 int read_filenames(char** zone_list_filename, char** kasp_filename); 00052 int update_repositories(); 00053 int update_policies(char* kasp_filename); 00054 int update_zones(char* zone_list_filename); 00055 int get_lite_lock(char *lock_filename, FILE* lock_fd); 00056 int release_lite_lock(FILE* lock_fd); 00057 int SetParamOnPolicy(const xmlChar* new_value, 00058 const char* name, 00059 const char* category, 00060 int current_value, 00061 int policy_id, 00062 int value_type); 00063 void SetPolicyDefaults(KSM_POLICY *policy, char *name); 00064 int backup_file(const char* orig_file, const char* backup_file); 00065 int get_db_details(char** dbschema, 00066 char** host, 00067 char** port, 00068 char** user, 00069 char** password); 00070 int read_zonelist_filename(char** zone_list_filename); 00071 xmlDocPtr add_zone_node(const char *docname, 00072 const char *zone_name, 00073 const char *policy_name, 00074 const char *sig_conf_name, 00075 const char *input_name, 00076 const char *output_name); 00077 xmlDocPtr del_zone_node(const char *docname, 00078 const char *zone_name); 00079 void list_zone_node(const char *docname, int *zone_ids); 00080 xmlDocPtr del_policy_node(const char *docname, 00081 const char *policy_name); 00082 int append_policy(xmlDocPtr doc, KSM_POLICY *policy); 00083 int printKey(void* context, KSM_KEYDATA* key_data); 00084 void ksm_log_msg(const char *format); 00085 int ListKeys(int zone_id); 00086 int PurgeKeys(int zone_id, int policy_id); 00087 int cmd_genkeys(); 00088 void SetPolicyDefaults(KSM_POLICY *policy, char *name); 00089 int fix_file_perms(const char *dbschema); 00090 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); 00091 int MarkDSSeen(int keypair_id, int zone_id, int policy_id, const char *datetime, int key_state); 00092 int RetireOldKey(int zone_id, int policy_id, const char *datetime); 00093 int CountKeysInState(int keytype, int keystate, int* count, int zone_id); 00094 int ChangeKeyState(int keytype, const char *cka_id, int zone_id, int policy_id, const char *datetime, int key_state); 00095 int get_conf_key_info(int* interval, int* man_key_gen); 00096 int LinkKeys(const char* zone_name, int policy_id); 00097 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); 00098 int keyRoll(int zone_id, int policy_id, int key_type); 00099 int get_policy_name_from_id(KSM_ZONE *zone); 00100 int append_zone(xmlDocPtr doc, KSM_ZONE *zone); 00101 00102 #ifdef __cplusplus 00103 } 00104 #endif 00105 00106 #endif /* KSM_UTIL_H */