2 #ifndef _GLOBUS_I_GSI_CALLBACK_H_
3 #define _GLOBUS_I_GSI_CALLBACK_H_
5 #ifndef GLOBUS_DONT_DOCUMENT_INTERNAL
13 #include "globus_gsi_cert_utils.h"
19 extern int globus_i_gsi_callback_debug_level;
20 extern FILE * globus_i_gsi_callback_debug_fstream;
22 #define GLOBUS_I_GSI_CALLBACK_DEBUG(_LEVEL_) \
23 (globus_i_gsi_callback_debug_level >= (_LEVEL_))
25 #define GLOBUS_I_GSI_CALLBACK_DEBUG_FPRINTF(_LEVEL_, _MESSAGE_) \
27 if (GLOBUS_I_GSI_CALLBACK_DEBUG(_LEVEL_)) \
29 globus_libc_fprintf _MESSAGE_; \
33 #define GLOBUS_I_GSI_CALLBACK_DEBUG_FNPRINTF(_LEVEL_, _MESSAGE_) \
35 if (GLOBUS_I_GSI_CALLBACK_DEBUG(_LEVEL_)) \
38 globus_common_create_nstring _MESSAGE_; \
39 globus_libc_fprintf(globus_i_gsi_callback_debug_fstream, \
41 globus_libc_free(_tmp_str_); \
45 #define GLOBUS_I_GSI_CALLBACK_DEBUG_PRINT(_LEVEL_, _MESSAGE_) \
47 if (GLOBUS_I_GSI_CALLBACK_DEBUG(_LEVEL_)) \
49 globus_libc_fprintf(globus_i_gsi_callback_debug_fstream, \
54 #define GLOBUS_I_GSI_CALLBACK_DEBUG_PRINT_OBJECT(_LEVEL_, _OBJ_NAME_, _OBJ_) \
56 if (GLOBUS_I_GSI_CALLBACK_DEBUG(_LEVEL_)) \
58 _OBJ_NAME_##_print_fp(globus_i_gsi_callback_debug_fstream, _OBJ_); \
64 #define GLOBUS_I_GSI_CALLBACK_DEBUG(_LEVEL_) 0
65 #define GLOBUS_I_GSI_CALLBACK_DEBUG_FPRINTF(_LEVEL_, _MESSAGE_) {}
66 #define GLOBUS_I_GSI_CALLBACK_DEBUG_FNPRINTF(_LEVEL_, _MESSAGE_) {}
67 #define GLOBUS_I_GSI_CALLBACK_DEBUG_PRINT(_LEVEL_, _MESSAGE_) {}
68 #define GLOBUS_I_GSI_CALLBACK_DEBUG_PRINT_OBJECT(_LEVEL_, _OBJ_NAME_, _OBJ_) {}
72 #define GLOBUS_I_GSI_CALLBACK_DEBUG_ENTER \
73 GLOBUS_I_GSI_CALLBACK_DEBUG_FPRINTF( \
74 1, (globus_i_gsi_callback_debug_fstream, \
75 "%s entering\n", _function_name_))
77 #define GLOBUS_I_GSI_CALLBACK_DEBUG_EXIT \
78 GLOBUS_I_GSI_CALLBACK_DEBUG_FPRINTF( \
79 2, (globus_i_gsi_callback_debug_fstream, \
80 "%s exiting\n", _function_name_))
84 #define GLOBUS_GSI_CALLBACK_OPENSSL_ERROR_RESULT(_RESULT_, \
89 globus_common_create_string _ERRSTR_; \
90 _RESULT_ = globus_i_gsi_callback_openssl_error_result( \
97 globus_libc_free(_tmp_str_); \
100 #define GLOBUS_GSI_CALLBACK_ERROR_RESULT(_RESULT_, _ERRORTYPE_, _ERRSTR_) \
103 globus_common_create_string _ERRSTR_; \
104 _RESULT_ = globus_i_gsi_callback_error_result(_ERRORTYPE_, \
110 globus_libc_free(_tmp_str_); \
113 #define GLOBUS_GSI_CALLBACK_ERROR_CHAIN_RESULT(_TOP_RESULT_, _ERRORTYPE_) \
114 _TOP_RESULT_ = globus_i_gsi_callback_error_chain_result( \
124 #define GLOBUS_GSI_CALLBACK_OPENSSL_LONG_ERROR_RESULT(_RESULT_, \
130 globus_common_create_string _ERRSTR_; \
131 _RESULT_ = globus_i_gsi_callback_openssl_error_result( \
138 globus_libc_free(_tmp_str_); \
141 #define GLOBUS_GSI_CALLBACK_LONG_ERROR_RESULT(_RESULT_, \
147 globus_common_create_string _ERRSTR_; \
148 _RESULT_ = globus_i_gsi_callback_error_result(_ERRORTYPE_, \
154 globus_libc_free(_tmp_str_); \
157 #define GLOBUS_GSI_CALLBACK_LONG_ERROR_CHAIN_RESULT(_TOP_RESULT_, \
160 _TOP_RESULT_ = globus_i_gsi_callback_error_chain_result( \
169 extern char * globus_l_gsi_callback_error_strings[];
178 typedef struct globus_l_gsi_callback_data_s {
183 globus_gsi_cert_utils_cert_type_t cert_type;
184 STACK_OF(X509) * cert_chain;
187 void * extension_oids;
188 globus_bool_t check_self_signed_policy;
189 globus_bool_t allow_missing_signing_policy;
190 globus_result_t error;
192 } globus_i_gsi_callback_data_t;
195 globus_i_gsi_callback_check_path_length(
196 X509_STORE_CTX * x509_context,
200 globus_i_gsi_callback_check_critical_extensions(
201 X509_STORE_CTX * x509_context,
205 globus_i_gsi_callback_check_signing_policy(
206 X509_STORE_CTX * x509_context,
210 globus_i_gsi_callback_check_revoked(
211 X509_STORE_CTX * x509_context,
215 globus_i_gsi_callback_check_proxy(
216 X509_STORE_CTX * x509_context,
220 globus_i_gsi_callback_check_gaa_auth(
221 X509_STORE_CTX * x509_context,
225 globus_i_gsi_callback_cred_verify(
228 X509_STORE_CTX * x509_context);
231 globus_i_gsi_callback_openssl_error_result(
233 const char * filename,
234 const char * function_name,
236 const char * short_desc,
237 const char * long_desc);
240 globus_i_gsi_callback_error_result(
242 const char * filename,
243 const char * function_name,
245 const char * short_desc,
246 const char * long_desc);
249 globus_i_gsi_callback_error_chain_result(
250 globus_result_t chain_result,
252 const char * filename,
253 const char * function_name,
255 const char * short_desc,
256 const char * long_desc);
int(* globus_gsi_extension_callback_t)(globus_gsi_callback_data_t callback_data, X509_EXTENSION *extension)
Definition: globus_gsi_callback.h:109
struct globus_l_gsi_callback_data_s * globus_gsi_callback_data_t
Definition: globus_gsi_callback.h:102