1*85ead044Shshoexer /* $OpenBSD: conf.h,v 1.34 2006/08/30 16:56:56 hshoexer Exp $ */ 2454bb6daSniklas /* $EOM: conf.h,v 1.13 2000/09/18 00:01:47 ho Exp $ */ 32040585eSniklas 42040585eSniklas /* 542af7185Sniklas * Copyright (c) 1998, 1999, 2001 Niklas Hallqvist. All rights reserved. 64a2e0fb7Sho * Copyright (c) 2000, 2003 H�kan Olsson. All rights reserved. 72040585eSniklas * 82040585eSniklas * Redistribution and use in source and binary forms, with or without 92040585eSniklas * modification, are permitted provided that the following conditions 102040585eSniklas * are met: 112040585eSniklas * 1. Redistributions of source code must retain the above copyright 122040585eSniklas * notice, this list of conditions and the following disclaimer. 132040585eSniklas * 2. Redistributions in binary form must reproduce the above copyright 142040585eSniklas * notice, this list of conditions and the following disclaimer in the 152040585eSniklas * documentation and/or other materials provided with the distribution. 162040585eSniklas * 172040585eSniklas * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 182040585eSniklas * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 192040585eSniklas * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 202040585eSniklas * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 212040585eSniklas * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 222040585eSniklas * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 232040585eSniklas * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 242040585eSniklas * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 252040585eSniklas * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 262040585eSniklas * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 272040585eSniklas */ 282040585eSniklas 292040585eSniklas /* 302040585eSniklas * This code was written under funding by Ericsson Radio Systems. 312040585eSniklas */ 322040585eSniklas 332040585eSniklas #ifndef _CONF_H_ 342040585eSniklas #define _CONF_H_ 352040585eSniklas 36025c6b65Sniklas #include <sys/types.h> 372040585eSniklas #include <sys/queue.h> 3881c21331Sniklas #include <sys/socket.h> 392040585eSniklas #include <stdio.h> 402040585eSniklas 41da35d433Sho #define ISAKMPD_ROOT "/etc/isakmpd/" 42da35d433Sho 43da35d433Sho #define CONFIG_FILE ISAKMPD_ROOT "isakmpd.conf" 442040585eSniklas 4590d6cdbeSniklas /* Default values for autogenerated part of our configuration. */ 4690d6cdbeSniklas #define CONF_DFLT_TAG_LIFE_MAIN_MODE "LIFE_MAIN_MODE" 4790d6cdbeSniklas #define CONF_DFLT_TYPE_LIFE_MAIN_MODE "SECONDS" 4890d6cdbeSniklas #define CONF_DFLT_VAL_LIFE_MAIN_MODE "3600,60:86400" 4990d6cdbeSniklas 5090d6cdbeSniklas #define CONF_DFLT_TAG_LIFE_QUICK_MODE "LIFE_QUICK_MODE" 5190d6cdbeSniklas #define CONF_DFLT_TYPE_LIFE_QUICK_MODE "SECONDS" 5290d6cdbeSniklas #define CONF_DFLT_VAL_LIFE_QUICK_MODE "1200,60:86400" 5390d6cdbeSniklas 5490d6cdbeSniklas #define CONF_DFLT_VAL_BLF_KEYLEN "128,96:192" 55d865f642Sho #define CONF_DFLT_VAL_AES_KEYLEN "128,128:256" 5690d6cdbeSniklas 5790d6cdbeSniklas #define CONF_DFLT_RETRANSMITS "3" 5890d6cdbeSniklas #define CONF_DFLT_EXCH_MAX_TIME "120" 5990d6cdbeSniklas 60b6e0b5cbShshoexer #define CONF_DFLT_USE_KEYNOTE "yes" 61da35d433Sho #define CONF_DFLT_POLICY_FILE ISAKMPD_ROOT "isakmpd.policy" 62da35d433Sho 63da35d433Sho #define CONF_DFLT_X509_CA_DIR ISAKMPD_ROOT "ca/" 64da35d433Sho #define CONF_DFLT_X509_CERT_DIR ISAKMPD_ROOT "certs/" 65da35d433Sho #define CONF_DFLT_X509_PRIVATE_KEY ISAKMPD_ROOT "private/local.key" 66db26b2b9Smsf #define CONF_DFLT_X509_PRIVATE_KEY_DIR ISAKMPD_ROOT "private/" 67da35d433Sho #define CONF_DFLT_X509_CRL_DIR ISAKMPD_ROOT "crls/" 68da35d433Sho #define CONF_DFLT_PUBKEY_DIR ISAKMPD_ROOT "pubkeys/" 69da35d433Sho #define CONF_DFLT_KEYNOTE_CRED_DIR ISAKMPD_ROOT "keynote/" 70419caefeSho 71*85ead044Shshoexer #define CONF_DFLT_DELETE_SAS "yes" 72428bd1b5Shshoexer 7343d17fe8Sho #define CONF_DFLT_TAG_PHASE1_CONFIG "Default-phase-1-configuration" 74419caefeSho #define CONF_DFLT_PHASE1_EXCH_TYPE "ID_PROT" 759f7b3690Smarkus #define CONF_DFLT_PHASE1_TRANSFORMS "3DES-SHA-RSA_SIG" 76419caefeSho 772040585eSniklas struct conf_list_node { 782040585eSniklas TAILQ_ENTRY(conf_list_node) link; 792040585eSniklas char *field; 802040585eSniklas }; 812040585eSniklas 822040585eSniklas struct conf_list { 839183be26Sho size_t cnt; 842040585eSniklas TAILQ_HEAD(conf_list_fields_head, conf_list_node) fields; 852040585eSniklas }; 862040585eSniklas 872040585eSniklas extern char *conf_path; 882040585eSniklas 89f8f1e192Sniklas extern int conf_begin(void); 90f8f1e192Sniklas extern int conf_end(int, int); 912040585eSniklas extern void conf_free_list(struct conf_list *); 9281c21331Sniklas extern struct sockaddr *conf_get_address(char *, char *); 932040585eSniklas extern struct conf_list *conf_get_list(char *, char *); 9482d8fe06Sniklas extern struct conf_list *conf_get_tag_list(char *); 95ee9f6d27Sniklas extern int conf_get_num(char *, char *, int); 962040585eSniklas extern char *conf_get_str(char *, char *); 9782d8fe06Sniklas extern void conf_init(void); 9882d8fe06Sniklas extern int conf_match_num(char *, char *, int); 99f8f1e192Sniklas extern void conf_reinit(void); 100f8f1e192Sniklas extern int conf_remove(int, char *, char *); 101f8f1e192Sniklas extern int conf_remove_section(int, char *); 10290d6cdbeSniklas extern int conf_set(int, char *, char *, char *, int, int); 10390d6cdbeSniklas extern void conf_report(void); 1042040585eSniklas 1052040585eSniklas #endif /* _CONF_H_ */ 106