00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062 #ifndef HEADER_CONF_H
00063 #define HEADER_CONF_H
00064
00065 #if (defined(__SYMBIAN32__) && !defined(SYMBIAN))
00066 #define SYMBIAN
00067 #endif
00068
00069 #ifdef SYMBIAN
00070 #include <e32def.h>
00071 #endif
00072 #include <openssl/bio.h>
00073 #include <openssl/lhash.h>
00074 #include <openssl/stack.h>
00075 #include <openssl/safestack.h>
00076 #include <openssl/e_os2.h>
00077
00078 #include <openssl/ossl_typ.h>
00079
00080 #ifdef __cplusplus
00081 extern "C" {
00082 #endif
00083
00084 typedef struct
00085 {
00086 char *section;
00087 char *name;
00088 char *value;
00089 } CONF_VALUE;
00090
00091 DECLARE_STACK_OF(CONF_VALUE)
00092 DECLARE_STACK_OF(CONF_MODULE)
00093 DECLARE_STACK_OF(CONF_IMODULE)
00094
00095 struct conf_st;
00096 struct conf_method_st;
00097 typedef struct conf_method_st CONF_METHOD;
00098
00099 struct conf_method_st
00100 {
00101 const char *name;
00102 CONF *(*create)(CONF_METHOD *meth);
00103 int (*init)(CONF *conf);
00104 int (*destroy)(CONF *conf);
00105 int (*destroy_data)(CONF *conf);
00106 int (*load_bio)(CONF *conf, BIO *bp, long *eline);
00107 int (*dump)(const CONF *conf, BIO *bp);
00108 int (*is_number)(const CONF *conf, char c);
00109 int (*to_int)(const CONF *conf, char c);
00110 int (*load)(CONF *conf, const char *name, long *eline);
00111 };
00112
00113
00114
00115 typedef struct conf_imodule_st CONF_IMODULE;
00116 typedef struct conf_module_st CONF_MODULE;
00117
00118
00119 typedef int conf_init_func(CONF_IMODULE *md, const CONF *cnf);
00120 typedef void conf_finish_func(CONF_IMODULE *md);
00121
00122 #define CONF_MFLAGS_IGNORE_ERRORS 0x1
00123 #define CONF_MFLAGS_IGNORE_RETURN_CODES 0x2
00124 #define CONF_MFLAGS_SILENT 0x4
00125 #define CONF_MFLAGS_NO_DSO 0x8
00126 #define CONF_MFLAGS_IGNORE_MISSING_FILE 0x10
00127
00128 IMPORT_C int CONF_set_default_method(CONF_METHOD *meth);
00129 IMPORT_C void CONF_set_nconf(CONF *conf,LHASH *hash);
00130 IMPORT_C LHASH *CONF_load(LHASH *conf,const char *file,long *eline);
00131 #ifndef OPENSSL_NO_FP_API
00132 IMPORT_C LHASH *CONF_load_fp(LHASH *conf, FILE *fp,long *eline);
00133 #endif
00134 IMPORT_C LHASH *CONF_load_bio(LHASH *conf, BIO *bp,long *eline);
00135 IMPORT_C STACK_OF(CONF_VALUE) *CONF_get_section(LHASH *conf,const char *section);
00136 IMPORT_C char *CONF_get_string(LHASH *conf,const char *group,const char *name);
00137 IMPORT_C long CONF_get_number(LHASH *conf,const char *group,const char *name);
00138 IMPORT_C void CONF_free(LHASH *conf);
00139 IMPORT_C int CONF_dump_fp(LHASH *conf, FILE *out);
00140 IMPORT_C int CONF_dump_bio(LHASH *conf, BIO *out);
00141
00142 IMPORT_C void OPENSSL_config(const char *config_name);
00143 IMPORT_C void OPENSSL_no_config(void);
00144
00145
00146
00147
00148 struct conf_st
00149 {
00150 CONF_METHOD *meth;
00151 void *meth_data;
00152 LHASH *data;
00153 };
00154
00155 IMPORT_C CONF *NCONF_new(CONF_METHOD *meth);
00156 IMPORT_C CONF_METHOD *NCONF_default(void);
00157
00158 #if 0
00159 IMPORT_C CONF_METHOD *NCONF_XML(void);
00160 #endif
00161 IMPORT_C void NCONF_free(CONF *conf);
00162 IMPORT_C void NCONF_free_data(CONF *conf);
00163
00164 IMPORT_C int NCONF_load(CONF *conf,const char *file,long *eline);
00165 #ifndef OPENSSL_NO_FP_API
00166 IMPORT_C int NCONF_load_fp(CONF *conf, FILE *fp,long *eline);
00167 #endif
00168 IMPORT_C int NCONF_load_bio(CONF *conf, BIO *bp,long *eline);
00169 IMPORT_C STACK_OF(CONF_VALUE) *NCONF_get_section(const CONF *conf,const char *section);
00170 IMPORT_C char *NCONF_get_string(const CONF *conf,const char *group,const char *name);
00171 IMPORT_C int NCONF_get_number_e(const CONF *conf,const char *group,const char *name,
00172 long *result);
00173 IMPORT_C int NCONF_dump_fp(const CONF *conf, FILE *out);
00174 IMPORT_C int NCONF_dump_bio(const CONF *conf, BIO *out);
00175
00176 #if 0
00177
00178 IMPORT_C long NCONF_get_number(CONF *conf,char *group,char *name);
00179 #else
00180 #define NCONF_get_number(c,g,n,r) NCONF_get_number_e(c,g,n,r)
00181 #endif
00182
00183
00184
00185 IMPORT_C int CONF_modules_load(const CONF *cnf, const char *appname,
00186 unsigned long flags);
00187 IMPORT_C int CONF_modules_load_file(const char *filename, const char *appname,
00188 unsigned long flags);
00189 IMPORT_C void CONF_modules_unload(int all);
00190 IMPORT_C void CONF_modules_finish(void);
00191 IMPORT_C void CONF_modules_free(void);
00192 IMPORT_C int CONF_module_add(const char *name, conf_init_func *ifunc,
00193 conf_finish_func *ffunc);
00194
00195 IMPORT_C const char *CONF_imodule_get_name(const CONF_IMODULE *md);
00196 IMPORT_C const char *CONF_imodule_get_value(const CONF_IMODULE *md);
00197 IMPORT_C void *CONF_imodule_get_usr_data(const CONF_IMODULE *md);
00198 IMPORT_C void CONF_imodule_set_usr_data(CONF_IMODULE *md, void *usr_data);
00199 CONF_MODULE *CONF_imodule_get_module(const CONF_IMODULE *md);
00200 unsigned long CONF_imodule_get_flags(const CONF_IMODULE *md);
00201 IMPORT_C void CONF_imodule_set_flags(CONF_IMODULE *md, unsigned long flags);
00202 IMPORT_C void *CONF_module_get_usr_data(CONF_MODULE *pmod);
00203 IMPORT_C void CONF_module_set_usr_data(CONF_MODULE *pmod, void *usr_data);
00204
00205 IMPORT_C char *CONF_get1_default_config_file(void);
00206
00207 IMPORT_C int CONF_parse_list(const char *list, int sep, int nospc,
00208 int (*list_cb)(const char *elem, int len, void *usr), void *arg);
00209
00210 IMPORT_C void OPENSSL_load_builtin_modules(void);
00211
00212
00213
00214
00215
00216 IMPORT_C void ERR_load_CONF_strings(void);
00217
00218
00219
00220
00221 #define CONF_F_CONF_DUMP_FP 104
00222 #define CONF_F_CONF_LOAD 100
00223 #define CONF_F_CONF_LOAD_BIO 102
00224 #define CONF_F_CONF_LOAD_FP 103
00225 #define CONF_F_CONF_MODULES_LOAD 116
00226 #define CONF_F_DEF_LOAD 120
00227 #define CONF_F_DEF_LOAD_BIO 121
00228 #define CONF_F_MODULE_INIT 115
00229 #define CONF_F_MODULE_LOAD_DSO 117
00230 #define CONF_F_MODULE_RUN 118
00231 #define CONF_F_NCONF_DUMP_BIO 105
00232 #define CONF_F_NCONF_DUMP_FP 106
00233 #define CONF_F_NCONF_GET_NUMBER 107
00234 #define CONF_F_NCONF_GET_NUMBER_E 112
00235 #define CONF_F_NCONF_GET_SECTION 108
00236 #define CONF_F_NCONF_GET_STRING 109
00237 #define CONF_F_NCONF_LOAD 113
00238 #define CONF_F_NCONF_LOAD_BIO 110
00239 #define CONF_F_NCONF_LOAD_FP 114
00240 #define CONF_F_NCONF_NEW 111
00241 #define CONF_F_STR_COPY 101
00242
00243
00244 #define CONF_R_ERROR_LOADING_DSO 110
00245 #define CONF_R_MISSING_CLOSE_SQUARE_BRACKET 100
00246 #define CONF_R_MISSING_EQUAL_SIGN 101
00247 #define CONF_R_MISSING_FINISH_FUNCTION 111
00248 #define CONF_R_MISSING_INIT_FUNCTION 112
00249 #define CONF_R_MODULE_INITIALIZATION_ERROR 109
00250 #define CONF_R_NO_CLOSE_BRACE 102
00251 #define CONF_R_NO_CONF 105
00252 #define CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE 106
00253 #define CONF_R_NO_SECTION 107
00254 #define CONF_R_NO_SUCH_FILE 114
00255 #define CONF_R_NO_VALUE 108
00256 #define CONF_R_UNABLE_TO_CREATE_NEW_SECTION 103
00257 #define CONF_R_UNKNOWN_MODULE_NAME 113
00258 #define CONF_R_VARIABLE_HAS_NO_VALUE 104
00259
00260 #ifdef __cplusplus
00261 }
00262 #endif
00263 #endif