OpenDNSSEC-enforcer 1.3.0
/build/buildd/opendnssec-1.3.0/enforcer/ksm/include/ksm/ksmutil.h
Go to the documentation of this file.
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 */