|
1 /* crypto/engine/eng_err.c */ |
|
2 /* ==================================================================== |
|
3 * Copyright (c) 1999-2005 The OpenSSL Project. All rights reserved. |
|
4 * |
|
5 * Redistribution and use in source and binary forms, with or without |
|
6 * modification, are permitted provided that the following conditions |
|
7 * are met: |
|
8 * |
|
9 * 1. Redistributions of source code must retain the above copyright |
|
10 * notice, this list of conditions and the following disclaimer. |
|
11 * |
|
12 * 2. Redistributions in binary form must reproduce the above copyright |
|
13 * notice, this list of conditions and the following disclaimer in |
|
14 * the documentation and/or other materials provided with the |
|
15 * distribution. |
|
16 * |
|
17 * 3. All advertising materials mentioning features or use of this |
|
18 * software must display the following acknowledgment: |
|
19 * "This product includes software developed by the OpenSSL Project |
|
20 * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" |
|
21 * |
|
22 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to |
|
23 * endorse or promote products derived from this software without |
|
24 * prior written permission. For written permission, please contact |
|
25 * openssl-core@OpenSSL.org. |
|
26 * |
|
27 * 5. Products derived from this software may not be called "OpenSSL" |
|
28 * nor may "OpenSSL" appear in their names without prior written |
|
29 * permission of the OpenSSL Project. |
|
30 * |
|
31 * 6. Redistributions of any form whatsoever must retain the following |
|
32 * acknowledgment: |
|
33 * "This product includes software developed by the OpenSSL Project |
|
34 * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" |
|
35 * |
|
36 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY |
|
37 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
|
38 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
|
39 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR |
|
40 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
|
41 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT |
|
42 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
|
43 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
|
44 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, |
|
45 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
|
46 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED |
|
47 * OF THE POSSIBILITY OF SUCH DAMAGE. |
|
48 * ==================================================================== |
|
49 * |
|
50 * This product includes cryptographic software written by Eric Young |
|
51 * (eay@cryptsoft.com). This product includes software written by Tim |
|
52 * Hudson (tjh@cryptsoft.com). |
|
53 * |
|
54 */ |
|
55 /* |
|
56 © Portions copyright (c) 2006 Nokia Corporation. All rights reserved. |
|
57 */ |
|
58 |
|
59 |
|
60 /* NOTE: this file was auto generated by the mkerr.pl script: any changes |
|
61 * made to it will be overwritten when the script next updates this file, |
|
62 * only reason strings will be preserved. |
|
63 */ |
|
64 |
|
65 #include <stdio.h> |
|
66 #include <openssl/err.h> |
|
67 #include <openssl/engine.h> |
|
68 #if (defined(SYMBIAN) && (defined(__WINSCW__) || defined(__WINS__))) |
|
69 #include "libcrypto_wsd_macros.h" |
|
70 #include "libcrypto_wsd.h" |
|
71 #endif |
|
72 |
|
73 /* BEGIN ERROR CODES */ |
|
74 #ifndef OPENSSL_NO_ERR |
|
75 |
|
76 #define ERR_FUNC(func) ERR_PACK(ERR_LIB_ENGINE,func,0) |
|
77 #define ERR_REASON(reason) ERR_PACK(ERR_LIB_ENGINE,0,reason) |
|
78 |
|
79 #ifndef EMULATOR |
|
80 static ERR_STRING_DATA ENGINE_str_functs[]= |
|
81 { |
|
82 {ERR_FUNC(ENGINE_F_DYNAMIC_CTRL), "DYNAMIC_CTRL"}, |
|
83 {ERR_FUNC(ENGINE_F_DYNAMIC_GET_DATA_CTX), "DYNAMIC_GET_DATA_CTX"}, |
|
84 {ERR_FUNC(ENGINE_F_DYNAMIC_LOAD), "DYNAMIC_LOAD"}, |
|
85 {ERR_FUNC(ENGINE_F_DYNAMIC_SET_DATA_CTX), "DYNAMIC_SET_DATA_CTX"}, |
|
86 {ERR_FUNC(ENGINE_F_ENGINE_ADD), "ENGINE_add"}, |
|
87 {ERR_FUNC(ENGINE_F_ENGINE_BY_ID), "ENGINE_by_id"}, |
|
88 {ERR_FUNC(ENGINE_F_ENGINE_CMD_IS_EXECUTABLE), "ENGINE_cmd_is_executable"}, |
|
89 {ERR_FUNC(ENGINE_F_ENGINE_CTRL), "ENGINE_ctrl"}, |
|
90 {ERR_FUNC(ENGINE_F_ENGINE_CTRL_CMD), "ENGINE_ctrl_cmd"}, |
|
91 {ERR_FUNC(ENGINE_F_ENGINE_CTRL_CMD_STRING), "ENGINE_ctrl_cmd_string"}, |
|
92 {ERR_FUNC(ENGINE_F_ENGINE_FINISH), "ENGINE_finish"}, |
|
93 {ERR_FUNC(ENGINE_F_ENGINE_FREE_UTIL), "ENGINE_FREE_UTIL"}, |
|
94 {ERR_FUNC(ENGINE_F_ENGINE_GET_CIPHER), "ENGINE_get_cipher"}, |
|
95 {ERR_FUNC(ENGINE_F_ENGINE_GET_DEFAULT_TYPE), "ENGINE_GET_DEFAULT_TYPE"}, |
|
96 {ERR_FUNC(ENGINE_F_ENGINE_GET_DIGEST), "ENGINE_get_digest"}, |
|
97 {ERR_FUNC(ENGINE_F_ENGINE_GET_NEXT), "ENGINE_get_next"}, |
|
98 {ERR_FUNC(ENGINE_F_ENGINE_GET_PREV), "ENGINE_get_prev"}, |
|
99 {ERR_FUNC(ENGINE_F_ENGINE_INIT), "ENGINE_init"}, |
|
100 {ERR_FUNC(ENGINE_F_ENGINE_LIST_ADD), "ENGINE_LIST_ADD"}, |
|
101 {ERR_FUNC(ENGINE_F_ENGINE_LIST_REMOVE), "ENGINE_LIST_REMOVE"}, |
|
102 {ERR_FUNC(ENGINE_F_ENGINE_LOAD_PRIVATE_KEY), "ENGINE_load_private_key"}, |
|
103 {ERR_FUNC(ENGINE_F_ENGINE_LOAD_PUBLIC_KEY), "ENGINE_load_public_key"}, |
|
104 {ERR_FUNC(ENGINE_F_ENGINE_NEW), "ENGINE_new"}, |
|
105 {ERR_FUNC(ENGINE_F_ENGINE_REMOVE), "ENGINE_remove"}, |
|
106 {ERR_FUNC(ENGINE_F_ENGINE_SET_DEFAULT_STRING), "ENGINE_set_default_string"}, |
|
107 {ERR_FUNC(ENGINE_F_ENGINE_SET_DEFAULT_TYPE), "ENGINE_SET_DEFAULT_TYPE"}, |
|
108 {ERR_FUNC(ENGINE_F_ENGINE_SET_ID), "ENGINE_set_id"}, |
|
109 {ERR_FUNC(ENGINE_F_ENGINE_SET_NAME), "ENGINE_set_name"}, |
|
110 {ERR_FUNC(ENGINE_F_ENGINE_TABLE_REGISTER), "ENGINE_TABLE_REGISTER"}, |
|
111 {ERR_FUNC(ENGINE_F_ENGINE_UNLOAD_KEY), "ENGINE_UNLOAD_KEY"}, |
|
112 {ERR_FUNC(ENGINE_F_ENGINE_UNLOCKED_FINISH), "ENGINE_UNLOCKED_FINISH"}, |
|
113 {ERR_FUNC(ENGINE_F_ENGINE_UP_REF), "ENGINE_up_ref"}, |
|
114 {ERR_FUNC(ENGINE_F_INT_CTRL_HELPER), "INT_CTRL_HELPER"}, |
|
115 {ERR_FUNC(ENGINE_F_INT_ENGINE_CONFIGURE), "INT_ENGINE_CONFIGURE"}, |
|
116 {ERR_FUNC(ENGINE_F_INT_ENGINE_MODULE_INIT), "INT_ENGINE_MODULE_INIT"}, |
|
117 {ERR_FUNC(ENGINE_F_LOG_MESSAGE), "LOG_MESSAGE"}, |
|
118 {0,NULL} |
|
119 }; |
|
120 |
|
121 static ERR_STRING_DATA ENGINE_str_reasons[]= |
|
122 { |
|
123 {ERR_REASON(ENGINE_R_ALREADY_LOADED) ,"already loaded"}, |
|
124 {ERR_REASON(ENGINE_R_ARGUMENT_IS_NOT_A_NUMBER),"argument is not a number"}, |
|
125 {ERR_REASON(ENGINE_R_CMD_NOT_EXECUTABLE) ,"cmd not executable"}, |
|
126 {ERR_REASON(ENGINE_R_COMMAND_TAKES_INPUT),"command takes input"}, |
|
127 {ERR_REASON(ENGINE_R_COMMAND_TAKES_NO_INPUT),"command takes no input"}, |
|
128 {ERR_REASON(ENGINE_R_CONFLICTING_ENGINE_ID),"conflicting engine id"}, |
|
129 {ERR_REASON(ENGINE_R_CTRL_COMMAND_NOT_IMPLEMENTED),"ctrl command not implemented"}, |
|
130 {ERR_REASON(ENGINE_R_DH_NOT_IMPLEMENTED) ,"dh not implemented"}, |
|
131 {ERR_REASON(ENGINE_R_DSA_NOT_IMPLEMENTED),"dsa not implemented"}, |
|
132 {ERR_REASON(ENGINE_R_DSO_FAILURE) ,"DSO failure"}, |
|
133 {ERR_REASON(ENGINE_R_DSO_NOT_FOUND) ,"dso not found"}, |
|
134 {ERR_REASON(ENGINE_R_ENGINES_SECTION_ERROR),"engines section error"}, |
|
135 {ERR_REASON(ENGINE_R_ENGINE_IS_NOT_IN_LIST),"engine is not in the list"}, |
|
136 {ERR_REASON(ENGINE_R_ENGINE_SECTION_ERROR),"engine section error"}, |
|
137 {ERR_REASON(ENGINE_R_FAILED_LOADING_PRIVATE_KEY),"failed loading private key"}, |
|
138 {ERR_REASON(ENGINE_R_FAILED_LOADING_PUBLIC_KEY),"failed loading public key"}, |
|
139 {ERR_REASON(ENGINE_R_FINISH_FAILED) ,"finish failed"}, |
|
140 {ERR_REASON(ENGINE_R_GET_HANDLE_FAILED) ,"could not obtain hardware handle"}, |
|
141 {ERR_REASON(ENGINE_R_ID_OR_NAME_MISSING) ,"'id' or 'name' missing"}, |
|
142 {ERR_REASON(ENGINE_R_INIT_FAILED) ,"init failed"}, |
|
143 {ERR_REASON(ENGINE_R_INTERNAL_LIST_ERROR),"internal list error"}, |
|
144 {ERR_REASON(ENGINE_R_INVALID_ARGUMENT) ,"invalid argument"}, |
|
145 {ERR_REASON(ENGINE_R_INVALID_CMD_NAME) ,"invalid cmd name"}, |
|
146 {ERR_REASON(ENGINE_R_INVALID_CMD_NUMBER) ,"invalid cmd number"}, |
|
147 {ERR_REASON(ENGINE_R_INVALID_INIT_VALUE) ,"invalid init value"}, |
|
148 {ERR_REASON(ENGINE_R_INVALID_STRING) ,"invalid string"}, |
|
149 {ERR_REASON(ENGINE_R_NOT_INITIALISED) ,"not initialised"}, |
|
150 {ERR_REASON(ENGINE_R_NOT_LOADED) ,"not loaded"}, |
|
151 {ERR_REASON(ENGINE_R_NO_CONTROL_FUNCTION),"no control function"}, |
|
152 {ERR_REASON(ENGINE_R_NO_INDEX) ,"no index"}, |
|
153 {ERR_REASON(ENGINE_R_NO_LOAD_FUNCTION) ,"no load function"}, |
|
154 {ERR_REASON(ENGINE_R_NO_REFERENCE) ,"no reference"}, |
|
155 {ERR_REASON(ENGINE_R_NO_SUCH_ENGINE) ,"no such engine"}, |
|
156 {ERR_REASON(ENGINE_R_NO_UNLOAD_FUNCTION) ,"no unload function"}, |
|
157 {ERR_REASON(ENGINE_R_PROVIDE_PARAMETERS) ,"provide parameters"}, |
|
158 {ERR_REASON(ENGINE_R_RSA_NOT_IMPLEMENTED),"rsa not implemented"}, |
|
159 {ERR_REASON(ENGINE_R_UNIMPLEMENTED_CIPHER),"unimplemented cipher"}, |
|
160 {ERR_REASON(ENGINE_R_UNIMPLEMENTED_DIGEST),"unimplemented digest"}, |
|
161 {ERR_REASON(ENGINE_R_VERSION_INCOMPATIBILITY),"version incompatibility"}, |
|
162 {0,NULL} |
|
163 }; |
|
164 |
|
165 #else //EMULATOR |
|
166 const ERR_STRING_DATA temp_ENGINE_str_functs[]= |
|
167 { |
|
168 {ERR_FUNC(ENGINE_F_DYNAMIC_CTRL), "DYNAMIC_CTRL"}, |
|
169 {ERR_FUNC(ENGINE_F_DYNAMIC_GET_DATA_CTX), "DYNAMIC_GET_DATA_CTX"}, |
|
170 {ERR_FUNC(ENGINE_F_DYNAMIC_LOAD), "DYNAMIC_LOAD"}, |
|
171 {ERR_FUNC(ENGINE_F_DYNAMIC_SET_DATA_CTX), "DYNAMIC_SET_DATA_CTX"}, |
|
172 {ERR_FUNC(ENGINE_F_ENGINE_ADD), "ENGINE_add"}, |
|
173 {ERR_FUNC(ENGINE_F_ENGINE_BY_ID), "ENGINE_by_id"}, |
|
174 {ERR_FUNC(ENGINE_F_ENGINE_CMD_IS_EXECUTABLE), "ENGINE_cmd_is_executable"}, |
|
175 {ERR_FUNC(ENGINE_F_ENGINE_CTRL), "ENGINE_ctrl"}, |
|
176 {ERR_FUNC(ENGINE_F_ENGINE_CTRL_CMD), "ENGINE_ctrl_cmd"}, |
|
177 {ERR_FUNC(ENGINE_F_ENGINE_CTRL_CMD_STRING), "ENGINE_ctrl_cmd_string"}, |
|
178 {ERR_FUNC(ENGINE_F_ENGINE_FINISH), "ENGINE_finish"}, |
|
179 {ERR_FUNC(ENGINE_F_ENGINE_FREE_UTIL), "ENGINE_FREE_UTIL"}, |
|
180 {ERR_FUNC(ENGINE_F_ENGINE_GET_CIPHER), "ENGINE_get_cipher"}, |
|
181 {ERR_FUNC(ENGINE_F_ENGINE_GET_DEFAULT_TYPE), "ENGINE_GET_DEFAULT_TYPE"}, |
|
182 {ERR_FUNC(ENGINE_F_ENGINE_GET_DIGEST), "ENGINE_get_digest"}, |
|
183 {ERR_FUNC(ENGINE_F_ENGINE_GET_NEXT), "ENGINE_get_next"}, |
|
184 {ERR_FUNC(ENGINE_F_ENGINE_GET_PREV), "ENGINE_get_prev"}, |
|
185 {ERR_FUNC(ENGINE_F_ENGINE_INIT), "ENGINE_init"}, |
|
186 {ERR_FUNC(ENGINE_F_ENGINE_LIST_ADD), "ENGINE_LIST_ADD"}, |
|
187 {ERR_FUNC(ENGINE_F_ENGINE_LIST_REMOVE), "ENGINE_LIST_REMOVE"}, |
|
188 {ERR_FUNC(ENGINE_F_ENGINE_LOAD_PRIVATE_KEY), "ENGINE_load_private_key"}, |
|
189 {ERR_FUNC(ENGINE_F_ENGINE_LOAD_PUBLIC_KEY), "ENGINE_load_public_key"}, |
|
190 {ERR_FUNC(ENGINE_F_ENGINE_NEW), "ENGINE_new"}, |
|
191 {ERR_FUNC(ENGINE_F_ENGINE_REMOVE), "ENGINE_remove"}, |
|
192 {ERR_FUNC(ENGINE_F_ENGINE_SET_DEFAULT_STRING), "ENGINE_set_default_string"}, |
|
193 {ERR_FUNC(ENGINE_F_ENGINE_SET_DEFAULT_TYPE), "ENGINE_SET_DEFAULT_TYPE"}, |
|
194 {ERR_FUNC(ENGINE_F_ENGINE_SET_ID), "ENGINE_set_id"}, |
|
195 {ERR_FUNC(ENGINE_F_ENGINE_SET_NAME), "ENGINE_set_name"}, |
|
196 {ERR_FUNC(ENGINE_F_ENGINE_TABLE_REGISTER), "ENGINE_TABLE_REGISTER"}, |
|
197 {ERR_FUNC(ENGINE_F_ENGINE_UNLOAD_KEY), "ENGINE_UNLOAD_KEY"}, |
|
198 {ERR_FUNC(ENGINE_F_ENGINE_UNLOCKED_FINISH), "ENGINE_UNLOCKED_FINISH"}, |
|
199 {ERR_FUNC(ENGINE_F_ENGINE_UP_REF), "ENGINE_up_ref"}, |
|
200 {ERR_FUNC(ENGINE_F_INT_CTRL_HELPER), "INT_CTRL_HELPER"}, |
|
201 {ERR_FUNC(ENGINE_F_INT_ENGINE_CONFIGURE), "INT_ENGINE_CONFIGURE"}, |
|
202 {ERR_FUNC(ENGINE_F_INT_ENGINE_MODULE_INIT), "INT_ENGINE_MODULE_INIT"}, |
|
203 {ERR_FUNC(ENGINE_F_LOG_MESSAGE), "LOG_MESSAGE"}, |
|
204 {0,NULL} |
|
205 }; |
|
206 |
|
207 const ERR_STRING_DATA temp_ENGINE_str_reasons[]= |
|
208 { |
|
209 {ERR_REASON(ENGINE_R_ALREADY_LOADED) ,"already loaded"}, |
|
210 {ERR_REASON(ENGINE_R_ARGUMENT_IS_NOT_A_NUMBER),"argument is not a number"}, |
|
211 {ERR_REASON(ENGINE_R_CMD_NOT_EXECUTABLE) ,"cmd not executable"}, |
|
212 {ERR_REASON(ENGINE_R_COMMAND_TAKES_INPUT),"command takes input"}, |
|
213 {ERR_REASON(ENGINE_R_COMMAND_TAKES_NO_INPUT),"command takes no input"}, |
|
214 {ERR_REASON(ENGINE_R_CONFLICTING_ENGINE_ID),"conflicting engine id"}, |
|
215 {ERR_REASON(ENGINE_R_CTRL_COMMAND_NOT_IMPLEMENTED),"ctrl command not implemented"}, |
|
216 {ERR_REASON(ENGINE_R_DH_NOT_IMPLEMENTED) ,"dh not implemented"}, |
|
217 {ERR_REASON(ENGINE_R_DSA_NOT_IMPLEMENTED),"dsa not implemented"}, |
|
218 {ERR_REASON(ENGINE_R_DSO_FAILURE) ,"DSO failure"}, |
|
219 {ERR_REASON(ENGINE_R_DSO_NOT_FOUND) ,"dso not found"}, |
|
220 {ERR_REASON(ENGINE_R_ENGINES_SECTION_ERROR),"engines section error"}, |
|
221 {ERR_REASON(ENGINE_R_ENGINE_IS_NOT_IN_LIST),"engine is not in the list"}, |
|
222 {ERR_REASON(ENGINE_R_ENGINE_SECTION_ERROR),"engine section error"}, |
|
223 {ERR_REASON(ENGINE_R_FAILED_LOADING_PRIVATE_KEY),"failed loading private key"}, |
|
224 {ERR_REASON(ENGINE_R_FAILED_LOADING_PUBLIC_KEY),"failed loading public key"}, |
|
225 {ERR_REASON(ENGINE_R_FINISH_FAILED) ,"finish failed"}, |
|
226 {ERR_REASON(ENGINE_R_GET_HANDLE_FAILED) ,"could not obtain hardware handle"}, |
|
227 {ERR_REASON(ENGINE_R_ID_OR_NAME_MISSING) ,"'id' or 'name' missing"}, |
|
228 {ERR_REASON(ENGINE_R_INIT_FAILED) ,"init failed"}, |
|
229 {ERR_REASON(ENGINE_R_INTERNAL_LIST_ERROR),"internal list error"}, |
|
230 {ERR_REASON(ENGINE_R_INVALID_ARGUMENT) ,"invalid argument"}, |
|
231 {ERR_REASON(ENGINE_R_INVALID_CMD_NAME) ,"invalid cmd name"}, |
|
232 {ERR_REASON(ENGINE_R_INVALID_CMD_NUMBER) ,"invalid cmd number"}, |
|
233 {ERR_REASON(ENGINE_R_INVALID_INIT_VALUE) ,"invalid init value"}, |
|
234 {ERR_REASON(ENGINE_R_INVALID_STRING) ,"invalid string"}, |
|
235 {ERR_REASON(ENGINE_R_NOT_INITIALISED) ,"not initialised"}, |
|
236 {ERR_REASON(ENGINE_R_NOT_LOADED) ,"not loaded"}, |
|
237 {ERR_REASON(ENGINE_R_NO_CONTROL_FUNCTION),"no control function"}, |
|
238 {ERR_REASON(ENGINE_R_NO_INDEX) ,"no index"}, |
|
239 {ERR_REASON(ENGINE_R_NO_LOAD_FUNCTION) ,"no load function"}, |
|
240 {ERR_REASON(ENGINE_R_NO_REFERENCE) ,"no reference"}, |
|
241 {ERR_REASON(ENGINE_R_NO_SUCH_ENGINE) ,"no such engine"}, |
|
242 {ERR_REASON(ENGINE_R_NO_UNLOAD_FUNCTION) ,"no unload function"}, |
|
243 {ERR_REASON(ENGINE_R_PROVIDE_PARAMETERS) ,"provide parameters"}, |
|
244 {ERR_REASON(ENGINE_R_RSA_NOT_IMPLEMENTED),"rsa not implemented"}, |
|
245 {ERR_REASON(ENGINE_R_UNIMPLEMENTED_CIPHER),"unimplemented cipher"}, |
|
246 {ERR_REASON(ENGINE_R_UNIMPLEMENTED_DIGEST),"unimplemented digest"}, |
|
247 {ERR_REASON(ENGINE_R_VERSION_INCOMPATIBILITY),"version incompatibility"}, |
|
248 {0,NULL} |
|
249 }; |
|
250 |
|
251 GET_STATIC_ARRAY_FROM_TLS(ENGINE_str_functs,eng_err,ERR_STRING_DATA) |
|
252 GET_STATIC_ARRAY_FROM_TLS(ENGINE_str_reasons,eng_err,ERR_STRING_DATA) |
|
253 #define ENGINE_str_functs (GET_WSD_VAR_NAME(ENGINE_str_functs,eng_err, s)()) |
|
254 #define ENGINE_str_reasons (GET_WSD_VAR_NAME(ENGINE_str_reasons,eng_err, s)()) |
|
255 #endif //EMULATOR |
|
256 #endif |
|
257 |
|
258 |
|
259 |
|
260 EXPORT_C void ERR_load_ENGINE_strings(void) |
|
261 { |
|
262 #ifndef OPENSSL_NO_ERR |
|
263 |
|
264 if (ERR_func_error_string(ENGINE_str_functs[0].error) == NULL) |
|
265 { |
|
266 ERR_load_strings(0,ENGINE_str_functs); |
|
267 ERR_load_strings(0,ENGINE_str_reasons); |
|
268 } |
|
269 #endif |
|
270 } |