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