00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef GLOBUS_GSI_CALLBACK_H
00018 #define GLOBUS_GSI_CALLBACK_H
00019
00027 #include "globus_common.h"
00028 #include "globus_gsi_cert_utils.h"
00029 #include "openssl/x509.h"
00030
00031 #ifndef GLOBUS_GLOBAL_DOCUMENT_SET
00032
00036 #endif
00037
00081 #ifdef __cplusplus
00082 extern "C" {
00083 #endif
00084
00090 #define GLOBUS_GSI_CALLBACK_MODULE (&globus_i_gsi_callback_module)
00091
00092 extern
00093 globus_module_descriptor_t globus_i_gsi_callback_module;
00094
00095 #define _CLS(s) globus_common_i18n_get_string(GLOBUS_GSI_CALLBACK_MODULE,\
00096 s)
00097
00121 typedef struct globus_l_gsi_callback_data_s *
00122 globus_gsi_callback_data_t;
00123
00128 typedef int (*globus_gsi_extension_callback_t)(
00129 globus_gsi_callback_data_t callback_data,
00130 X509_EXTENSION * extension);
00131
00132 #ifndef DOXYGEN
00133
00134 globus_result_t
00135 globus_gsi_callback_get_X509_STORE_callback_data_index(
00136 int * index);
00137
00138 globus_result_t
00139 globus_gsi_callback_get_SSL_callback_data_index(
00140 int * index);
00141
00142 int
00143 globus_gsi_callback_create_proxy_callback(
00144 int preverify_ok,
00145 X509_STORE_CTX * x509_context);
00146
00147 int
00148 globus_gsi_callback_handshake_callback(
00149 int preverify_ok,
00150 X509_STORE_CTX * x509_context);
00151
00152 int globus_gsi_callback_check_issued(
00153 X509_STORE_CTX * context,
00154 X509 * cert,
00155 X509 * issuer);
00156
00157 int
00158 globus_gsi_callback_X509_verify_cert(
00159 X509_STORE_CTX * context,
00160 void * arg);
00161
00162 globus_result_t
00163 globus_gsi_callback_data_init(
00164 globus_gsi_callback_data_t * callback_data);
00165
00166 globus_result_t
00167 globus_gsi_callback_data_destroy(
00168 globus_gsi_callback_data_t callback_data);
00169
00170 globus_result_t
00171 globus_gsi_callback_data_copy(
00172 globus_gsi_callback_data_t source,
00173 globus_gsi_callback_data_t * dest);
00174
00175 globus_result_t
00176 globus_gsi_callback_get_cert_depth(
00177 globus_gsi_callback_data_t callback_data,
00178 int * cert_depth);
00179
00180 globus_result_t
00181 globus_gsi_callback_set_cert_depth(
00182 globus_gsi_callback_data_t callback_data,
00183 int cert_depth);
00184
00185 globus_result_t
00186 globus_gsi_callback_get_proxy_depth(
00187 globus_gsi_callback_data_t callback_data,
00188 int * proxy_depth);
00189
00190 globus_result_t
00191 globus_gsi_callback_set_proxy_depth(
00192 globus_gsi_callback_data_t callback_data,
00193 int proxy_depth);
00194
00195 globus_result_t
00196 globus_gsi_callback_set_cert_type(
00197 globus_gsi_callback_data_t callback_data,
00198 globus_gsi_cert_utils_cert_type_t cert_type);
00199
00200 globus_result_t
00201 globus_gsi_callback_get_cert_type(
00202 globus_gsi_callback_data_t callback_data,
00203 globus_gsi_cert_utils_cert_type_t * cert_type);
00204
00205 globus_result_t
00206 globus_gsi_callback_get_cert_chain(
00207 globus_gsi_callback_data_t callback_data,
00208 STACK_OF(X509) ** cert_chain);
00209
00210 globus_result_t
00211 globus_gsi_callback_set_cert_chain(
00212 globus_gsi_callback_data_t callback_data,
00213 STACK_OF(X509) * cert_chain);
00214
00215 globus_result_t
00216 globus_gsi_callback_get_multiple_limited_proxy_ok(
00217 globus_gsi_callback_data_t callback_data,
00218 int * multiple_limited_proxy_ok);
00219
00220 globus_result_t
00221 globus_gsi_callback_set_multiple_limited_proxy_ok(
00222 globus_gsi_callback_data_t callback_data,
00223 int multiple_limited_proxy_ok);
00224
00225 globus_result_t
00226 globus_gsi_callback_get_extension_oids(
00227 globus_gsi_callback_data_t callback_data,
00228 void ** extension_oids);
00229
00230 globus_result_t
00231 globus_gsi_callback_set_extension_oids(
00232 globus_gsi_callback_data_t callback_data,
00233 void * extension_oids);
00234
00235 globus_result_t
00236 globus_gsi_callback_get_cert_dir(
00237 globus_gsi_callback_data_t callback_data,
00238 char ** cert_dir);
00239
00240 globus_result_t
00241 globus_gsi_callback_set_cert_dir(
00242 globus_gsi_callback_data_t callback_data,
00243 char * cert_dir);
00244
00245 globus_result_t
00246 globus_gsi_callback_get_goodtill(
00247 globus_gsi_callback_data_t callback_data,
00248 time_t * goodtill);
00249
00250 globus_result_t
00251 globus_gsi_callback_set_goodtill(
00252 globus_gsi_callback_data_t callback_data,
00253 time_t goodtill);
00254
00255 globus_result_t
00256 globus_gsi_callback_get_extension_cb(
00257 globus_gsi_callback_data_t callback_data,
00258 globus_gsi_extension_callback_t * extension_cb);
00259
00260 globus_result_t
00261 globus_gsi_callback_set_extension_cb(
00262 globus_gsi_callback_data_t callback_data,
00263 globus_gsi_extension_callback_t extension_cb);
00264
00265 globus_result_t
00266 globus_gsi_callback_get_error(
00267 globus_gsi_callback_data_t callback_data,
00268 globus_result_t * error);
00269
00270 globus_result_t
00271 globus_gsi_callback_set_error(
00272 globus_gsi_callback_data_t callback_data,
00273 globus_result_t error);
00274
00275 globus_result_t
00276 globus_gsi_callback_get_check_policy_for_self_signed_certs(
00277 globus_gsi_callback_data_t callback_data,
00278 globus_bool_t * check);
00279
00280 globus_result_t
00281 globus_gsi_callback_set_check_policy_for_self_signed_certs(
00282 globus_gsi_callback_data_t callback_data,
00283 globus_bool_t check);
00284
00285 globus_result_t
00286 globus_gsi_callback_get_allow_missing_signing_policy(
00287 globus_gsi_callback_data_t callback_data,
00288 globus_bool_t * allow);
00289
00290 globus_result_t
00291 globus_gsi_callback_set_allow_missing_signing_policy(
00292 globus_gsi_callback_data_t callback_data,
00293 globus_bool_t allow);
00294
00295 #endif
00296
00297 #ifdef __cplusplus
00298 }
00299 #endif
00300
00301 #endif