OpenSSL
1.0.1c
Main Page
Classes
Files
File List
File Members
All
Classes
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
crypto
conf
conf.h
Go to the documentation of this file.
1
/* crypto/conf/conf.h */
2
/* Copyright (C) 1995-1998 Eric Young (
[email protected]
)
3
* All rights reserved.
4
*
5
* This package is an SSL implementation written
6
* by Eric Young (
[email protected]
).
7
* The implementation was written so as to conform with Netscapes SSL.
8
*
9
* This library is free for commercial and non-commercial use as long as
10
* the following conditions are aheared to. The following conditions
11
* apply to all code found in this distribution, be it the RC4, RSA,
12
* lhash, DES, etc., code; not just the SSL code. The SSL documentation
13
* included with this distribution is covered by the same copyright terms
14
* except that the holder is Tim Hudson (
[email protected]
).
15
*
16
* Copyright remains Eric Young's, and as such any Copyright notices in
17
* the code are not to be removed.
18
* If this package is used in a product, Eric Young should be given attribution
19
* as the author of the parts of the library used.
20
* This can be in the form of a textual message at program startup or
21
* in documentation (online or textual) provided with the package.
22
*
23
* Redistribution and use in source and binary forms, with or without
24
* modification, are permitted provided that the following conditions
25
* are met:
26
* 1. Redistributions of source code must retain the copyright
27
* notice, this list of conditions and the following disclaimer.
28
* 2. Redistributions in binary form must reproduce the above copyright
29
* notice, this list of conditions and the following disclaimer in the
30
* documentation and/or other materials provided with the distribution.
31
* 3. All advertising materials mentioning features or use of this software
32
* must display the following acknowledgement:
33
* "This product includes cryptographic software written by
34
* Eric Young (
[email protected]
)"
35
* The word 'cryptographic' can be left out if the rouines from the library
36
* being used are not cryptographic related :-).
37
* 4. If you include any Windows specific code (or a derivative thereof) from
38
* the apps directory (application code) you must include an acknowledgement:
39
* "This product includes software written by Tim Hudson (
[email protected]
)"
40
*
41
* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
42
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
43
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
44
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
45
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
46
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
47
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
49
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
50
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
51
* SUCH DAMAGE.
52
*
53
* The licence and distribution terms for any publically available version or
54
* derivative of this code cannot be changed. i.e. this code cannot simply be
55
* copied and put under another distribution licence
56
* [including the GNU Public Licence.]
57
*/
58
59
#ifndef HEADER_CONF_H
60
#define HEADER_CONF_H
61
62
#include <
openssl/bio.h
>
63
#include <
openssl/lhash.h
>
64
#include <
openssl/stack.h
>
65
#include <
openssl/safestack.h
>
66
#include <
openssl/e_os2.h
>
67
68
#include <
openssl/ossl_typ.h
>
69
70
#ifdef __cplusplus
71
extern
"C"
{
72
#endif
73
74
typedef
struct
75
{
76
char
*
section
;
77
char
*
name
;
78
char
*
value
;
79
}
CONF_VALUE
;
80
81
DECLARE_STACK_OF
(
CONF_VALUE
)
82
DECLARE_LHASH_OF
(
CONF_VALUE
);
83
84
struct
conf_st
;
85
struct
conf_method_st
;
86
typedef struct conf_method_st
CONF_METHOD
;
87
88
struct conf_method_st
89
{
90
const
char
*
name
;
91
CONF
*(*create)(CONF_METHOD *meth);
92
int (*init)(
CONF
*conf);
93
int (*destroy)(
CONF
*conf);
94
int (*destroy_data)(
CONF
*conf);
95
int (*load_bio)(
CONF
*conf,
BIO
*
bp
,
long
*
eline
);
96
int (*dump)(
const
CONF
*conf,
BIO
*
bp
);
97
int (*is_number)(
const
CONF
*conf,
char
c
);
98
int (*to_int)(
const
CONF
*conf,
char
c
);
99
int (*load)(
CONF
*conf,
const
char
*name,
long
*
eline
);
100
};
101
102
/* Module definitions */
103
104
typedef
struct
conf_imodule_st
CONF_IMODULE
;
105
typedef
struct
conf_module_st
CONF_MODULE
;
106
107
DECLARE_STACK_OF
(
CONF_MODULE
)
108
DECLARE_STACK_OF
(
CONF_IMODULE
)
109
110
/* DSO module function typedefs */
111
typedef
int
conf_init_func
(
CONF_IMODULE
*md, const
CONF
*cnf);
112
typedef
void
conf_finish_func
(
CONF_IMODULE
*md);
113
114
#define CONF_MFLAGS_IGNORE_ERRORS 0x1
115
#define CONF_MFLAGS_IGNORE_RETURN_CODES 0x2
116
#define CONF_MFLAGS_SILENT 0x4
117
#define CONF_MFLAGS_NO_DSO 0x8
118
#define CONF_MFLAGS_IGNORE_MISSING_FILE 0x10
119
#define CONF_MFLAGS_DEFAULT_SECTION 0x20
120
121
int
CONF_set_default_method
(
CONF_METHOD
*meth);
122
void
CONF_set_nconf
(
CONF
*conf,
LHASH_OF
(
CONF_VALUE
) *
hash
);
123
LHASH_OF
(
CONF_VALUE
) *CONF_load(
LHASH_OF
(
CONF_VALUE
) *conf,
const
char
*
file
,
124
long
*
eline
);
125
#ifndef OPENSSL_NO_FP_API
126
LHASH_OF
(
CONF_VALUE
) *CONF_load_fp(
LHASH_OF
(
CONF_VALUE
) *conf, FILE *
fp
,
127
long
*
eline
);
128
#endif
129
LHASH_OF
(
CONF_VALUE
) *CONF_load_bio(
LHASH_OF
(
CONF_VALUE
) *conf,
BIO
*
bp
,
long
*
eline
);
130
STACK_OF
(
CONF_VALUE
) *CONF_get_section(
LHASH_OF
(
CONF_VALUE
) *conf,
131
const
char
*section);
132
char
*
CONF_get_string
(
LHASH_OF
(
CONF_VALUE
) *conf,
const
char
*group,
133
const
char
*
name
);
134
long
CONF_get_number
(
LHASH_OF
(
CONF_VALUE
) *conf,
const
char
*group,
135
const
char
*
name
);
136
void
CONF_free
(
LHASH_OF
(
CONF_VALUE
) *conf);
137
int
CONF_dump_fp
(
LHASH_OF
(
CONF_VALUE
) *conf, FILE *out);
138
int
CONF_dump_bio
(
LHASH_OF
(
CONF_VALUE
) *conf,
BIO
*out);
139
140
void
OPENSSL_config
(
const
char
*config_name);
141
void
OPENSSL_no_config
(
void
);
142
143
/* New conf code. The semantics are different from the functions above.
144
If that wasn't the case, the above functions would have been replaced */
145
146
struct
conf_st
147
{
148
CONF_METHOD
*
meth
;
149
void
*
meth_data
;
150
LHASH_OF
(
CONF_VALUE
) *
data
;
151
};
152
153
CONF
*
NCONF_new
(
CONF_METHOD
*meth);
154
CONF_METHOD
*
NCONF_default
(
void
);
155
CONF_METHOD
*
NCONF_WIN32
(
void
);
156
#if 0
/* Just to give you an idea of what I have in mind */
157
CONF_METHOD
*NCONF_XML(
void
);
158
#endif
159
void
NCONF_free
(
CONF
*conf);
160
void
NCONF_free_data
(
CONF
*conf);
161
162
int
NCONF_load
(
CONF
*conf,
const
char
*
file
,
long
*
eline
);
163
#ifndef OPENSSL_NO_FP_API
164
int
NCONF_load_fp
(
CONF
*conf, FILE *
fp
,
long
*
eline
);
165
#endif
166
int
NCONF_load_bio
(
CONF
*conf,
BIO
*
bp
,
long
*
eline
);
167
STACK_OF
(
CONF_VALUE
) *NCONF_get_section(
const
CONF
*conf,
const
char
*section);
168
char
*
NCONF_get_string
(
const
CONF
*conf,
const
char
*group,
const
char
*name);
169
int
NCONF_get_number_e
(
const
CONF
*conf,
const
char
*group,
const
char
*name,
170
long
*result);
171
int
NCONF_dump_fp
(
const
CONF
*conf, FILE *out);
172
int
NCONF_dump_bio
(
const
CONF
*conf,
BIO
*out);
173
174
#if 0
/* The following function has no error checking,
175
and should therefore be avoided */
176
long
NCONF_get_number
(
CONF
*conf,
char
*group,
char
*name);
177
#else
178
#define NCONF_get_number(c,g,n,r) NCONF_get_number_e(c,g,n,r)
179
#endif
180
181
/* Module functions */
182
183
int
CONF_modules_load
(
const
CONF
*cnf,
const
char
*appname,
184
unsigned
long
flags
);
185
int
CONF_modules_load_file
(
const
char
*
filename
,
const
char
*appname,
186
unsigned
long
flags
);
187
void
CONF_modules_unload
(
int
all);
188
void
CONF_modules_finish
(
void
);
189
void
CONF_modules_free
(
void
);
190
int
CONF_module_add
(
const
char
*name,
conf_init_func
*ifunc,
191
conf_finish_func
*ffunc);
192
193
const
char
*
CONF_imodule_get_name
(
const
CONF_IMODULE
*md);
194
const
char
*
CONF_imodule_get_value
(
const
CONF_IMODULE
*md);
195
void
*
CONF_imodule_get_usr_data
(
const
CONF_IMODULE
*md);
196
void
CONF_imodule_set_usr_data
(
CONF_IMODULE
*md,
void
*usr_data);
197
CONF_MODULE
*
CONF_imodule_get_module
(
const
CONF_IMODULE
*md);
198
unsigned
long
CONF_imodule_get_flags
(
const
CONF_IMODULE
*md);
199
void
CONF_imodule_set_flags
(
CONF_IMODULE
*md,
unsigned
long
flags
);
200
void
*
CONF_module_get_usr_data
(
CONF_MODULE
*pmod);
201
void
CONF_module_set_usr_data
(
CONF_MODULE
*pmod,
void
*usr_data);
202
203
char
*
CONF_get1_default_config_file
(
void
);
204
205
int
CONF_parse_list
(
const
char
*list,
int
sep,
int
nospc,
206
int
(*list_cb)(
const
char
*elem,
int
len
,
void
*usr),
void
*
arg
);
207
208
void
OPENSSL_load_builtin_modules
(
void
);
209
210
/* BEGIN ERROR CODES */
211
/* The following lines are auto generated by the script mkerr.pl. Any changes
212
* made after this point may be overwritten when the script is next run.
213
*/
214
void
ERR_load_CONF_strings
(
void
);
215
216
/* Error codes for the CONF functions. */
217
218
/* Function codes. */
219
#define CONF_F_CONF_DUMP_FP 104
220
#define CONF_F_CONF_LOAD 100
221
#define CONF_F_CONF_LOAD_BIO 102
222
#define CONF_F_CONF_LOAD_FP 103
223
#define CONF_F_CONF_MODULES_LOAD 116
224
#define CONF_F_CONF_PARSE_LIST 119
225
#define CONF_F_DEF_LOAD 120
226
#define CONF_F_DEF_LOAD_BIO 121
227
#define CONF_F_MODULE_INIT 115
228
#define CONF_F_MODULE_LOAD_DSO 117
229
#define CONF_F_MODULE_RUN 118
230
#define CONF_F_NCONF_DUMP_BIO 105
231
#define CONF_F_NCONF_DUMP_FP 106
232
#define CONF_F_NCONF_GET_NUMBER 107
233
#define CONF_F_NCONF_GET_NUMBER_E 112
234
#define CONF_F_NCONF_GET_SECTION 108
235
#define CONF_F_NCONF_GET_STRING 109
236
#define CONF_F_NCONF_LOAD 113
237
#define CONF_F_NCONF_LOAD_BIO 110
238
#define CONF_F_NCONF_LOAD_FP 114
239
#define CONF_F_NCONF_NEW 111
240
#define CONF_F_STR_COPY 101
241
242
/* Reason codes. */
243
#define CONF_R_ERROR_LOADING_DSO 110
244
#define CONF_R_LIST_CANNOT_BE_NULL 115
245
#define CONF_R_MISSING_CLOSE_SQUARE_BRACKET 100
246
#define CONF_R_MISSING_EQUAL_SIGN 101
247
#define CONF_R_MISSING_FINISH_FUNCTION 111
248
#define CONF_R_MISSING_INIT_FUNCTION 112
249
#define CONF_R_MODULE_INITIALIZATION_ERROR 109
250
#define CONF_R_NO_CLOSE_BRACE 102
251
#define CONF_R_NO_CONF 105
252
#define CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE 106
253
#define CONF_R_NO_SECTION 107
254
#define CONF_R_NO_SUCH_FILE 114
255
#define CONF_R_NO_VALUE 108
256
#define CONF_R_UNABLE_TO_CREATE_NEW_SECTION 103
257
#define CONF_R_UNKNOWN_MODULE_NAME 113
258
#define CONF_R_VARIABLE_HAS_NO_VALUE 104
259
260
#ifdef __cplusplus
261
}
262
#endif
263
#endif
Generated on Thu Jan 10 2013 09:53:35 for OpenSSL by
1.8.2