globus_gsi_credential  7.17
 All Files Functions Typedefs Enumerations Enumerator Groups Pages
globus_i_gsi_credential.h
1 
2 #ifndef GLOBUS_DONT_DOCUMENT_INTERNAL
3 
10 #ifndef GLOBUS_I_GSI_CREDENTIAL_H
11 #define GLOBUS_I_GSI_CREDENTIAL_H
12 
13 #include "globus_gsi_credential.h"
14 #include "openssl/x509v3.h"
15 
16 #ifdef __cplusplus
17 extern "C" {
18 #endif
19 
20 /* DEBUG MACROS */
21 #ifdef BUILD_DEBUG
22 
23 extern int globus_i_gsi_cred_debug_level;
24 extern FILE * globus_i_gsi_cred_debug_fstream;
25 
26 #define GLOBUS_I_GSI_CRED_DEBUG(_LEVEL_) \
27  (globus_i_gsi_cred_debug_level >= (_LEVEL_))
28 
29 #define GLOBUS_I_GSI_CRED_DEBUG_FPRINTF(_LEVEL_, _MESSAGE_) \
30  { \
31  if (GLOBUS_I_GSI_CRED_DEBUG(_LEVEL_)) \
32  { \
33  globus_libc_fprintf _MESSAGE_; \
34  } \
35  }
36 
37 
38 #define GLOBUS_I_GSI_CRED_DEBUG_FNPRINTF(_LEVEL_, _MESSAGE_) \
39  { \
40  if (GLOBUS_I_GSI_CRED_DEBUG(_LEVEL_)) \
41  { \
42  char * _tmp_str_ = \
43  globus_common_create_nstring _MESSAGE_; \
44  globus_libc_fprintf(globus_i_gsi_cred_debug_fstream, \
45  _tmp_str_); \
46  globus_libc_free(_tmp_str_); \
47  } \
48  }
49 
50 #define GLOBUS_I_GSI_CRED_DEBUG_PRINT(_LEVEL_, _MESSAGE_) \
51  { \
52  if (GLOBUS_I_GSI_CRED_DEBUG(_LEVEL_)) \
53  { \
54  globus_libc_fprintf(globus_i_gsi_cred_debug_fstream, _MESSAGE_); \
55  } \
56  }
57 
58 #define GLOBUS_I_GSI_CRED_DEBUG_PRINT_OBJECT(_LEVEL_, _OBJ_NAME_, _OBJ_) \
59  { \
60  if (GLOBUS_I_GSI_CRED_DEBUG(_LEVEL_)) \
61  { \
62  _OBJ_NAME_##_print_fp(globus_i_gsi_cred_debug_fstream, _OBJ_); \
63  } \
64  }
65 
66 #else
67 
68 #define GLOBUS_I_GSI_CRED_DEBUG_FPRINTF(_LEVEL_, _MESSAGE_) {}
69 #define GLOBUS_I_GSI_CRED_DEBUG_FNPRINTF(_LEVEL_, _MESSAGE_) {}
70 #define GLOBUS_I_GSI_CRED_DEBUG_PRINT(_LEVEL_, _MESSAGE_) {}
71 #define GLOBUS_I_GSI_CRED_DEBUG_PRINT_OBJECT(_LEVEL_, _OBJ_NAME_, _OBJ_) {}
72 
73 #endif
74 
75 #define GLOBUS_I_GSI_CRED_DEBUG_ENTER \
76  GLOBUS_I_GSI_CRED_DEBUG_FPRINTF( \
77  2, (globus_i_gsi_cred_debug_fstream, \
78  "%s entering\n", __func__))
79 
80 #define GLOBUS_I_GSI_CRED_DEBUG_EXIT \
81  GLOBUS_I_GSI_CRED_DEBUG_FPRINTF( \
82  2, (globus_i_gsi_cred_debug_fstream, \
83  "%s exiting\n", __func__))
84 
85 /* ERROR MACROS */
86 
87 #define GLOBUS_GSI_CRED_OPENSSL_ERROR_RESULT(_RESULT_, _ERRORTYPE_, _ERRSTR_) \
88  { \
89  char * _tmp_str_ = \
90  globus_common_create_string _ERRSTR_; \
91  _RESULT_ = globus_i_gsi_cred_openssl_error_result(_ERRORTYPE_, \
92  __FILE__, \
93  __func__, \
94  __LINE__, \
95  _tmp_str_, \
96  NULL); \
97  globus_libc_free(_tmp_str_); \
98  }
99 
100 #define GLOBUS_GSI_CRED_ERROR_RESULT(_RESULT_, _ERRORTYPE_, _ERRSTR_) \
101  { \
102  char * _tmp_str_ = \
103  globus_common_create_string _ERRSTR_; \
104  _RESULT_ = globus_i_gsi_cred_error_result(_ERRORTYPE_, \
105  __FILE__, \
106  __func__, \
107  __LINE__, \
108  _tmp_str_, \
109  NULL); \
110  globus_libc_free(_tmp_str_); \
111  }
112 
113 #define GLOBUS_GSI_CRED_ERROR_CHAIN_RESULT(_TOP_RESULT_, _ERRORTYPE_) \
114  _TOP_RESULT_ = globus_i_gsi_cred_error_chain_result(_TOP_RESULT_, \
115  _ERRORTYPE_, \
116  __FILE__, \
117  __func__, \
118  __LINE__, \
119  NULL, \
120  NULL)
121 
122 #define GLOBUS_GSI_CRED_OPENSSL_LONG_ERROR_RESULT(_RESULT_, \
123  _ERRORTYPE_, \
124  _ERRSTR_, \
125  _LONG_DESC_) \
126  { \
127  char * _tmp_str_ = \
128  globus_common_create_string _ERRSTR_; \
129  _RESULT_ = globus_i_gsi_cred_openssl_error_result(_ERRORTYPE_, \
130  __FILE__, \
131  __func__, \
132  __LINE__, \
133  _tmp_str_, \
134  _LONG_DESC_); \
135  globus_libc_free(_tmp_str_); \
136  }
137 
138 #define GLOBUS_GSI_CRED_LONG_ERROR_RESULT(_RESULT_, \
139  _ERRORTYPE_, \
140  _ERRSTR_) \
141  { \
142  char * _tmp_str_ = \
143  globus_common_create_string _ERRSTR_; \
144  _RESULT_ = globus_i_gsi_cred_error_result(_ERRORTYPE_, \
145  __FILE__, \
146  __func__, \
147  __LINE__, \
148  _tmp_str_, \
149  _LONG_DESC_); \
150  globus_libc_free(_tmp_str_); \
151  }
152 
153 #define GLOBUS_GSI_CRED_LONG_ERROR_CHAIN_RESULT(_TOP_RESULT_, \
154  _ERRORTYPE_, \
155  _LONG_DESC_) \
156  _TOP_RESULT_ = globus_i_gsi_cred_error_chain_result(_TOP_RESULT_, \
157  _ERRORTYPE_, \
158  __FILE__, \
159  __func__, \
160  __LINE__, \
161  NULL, \
162  _LONG_DESC_)
163 
164 extern char * globus_l_gsi_cred_error_strings[];
165 
174 typedef struct globus_l_gsi_cred_handle_attrs_s
175 {
176  /* the order to search in for a certificate */
177  globus_gsi_cred_type_t * search_order; /*{PROXY,USER,HOST}*/
178 } globus_i_gsi_cred_handle_attrs_t;
179 
189 typedef struct globus_l_gsi_cred_handle_s
190 {
192  X509 * cert;
194  EVP_PKEY * key;
196  STACK_OF(X509) * cert_chain;
200  time_t goodtill;
201 } globus_i_gsi_cred_handle_t;
202 
203 
204 globus_result_t
205 globus_i_gsi_cred_goodtill(
206  globus_gsi_cred_handle_t cred_handle,
207  time_t * goodtill);
208 
209 globus_result_t globus_i_gsi_cred_get_proxycertinfo(
210  X509 * cert,
211  PROXY_CERT_INFO_EXTENSION ** proxycertinfo);
212 
213 int
214 globus_i_gsi_cred_password_callback_no_prompt(
215  char * buffer,
216  int size,
217  int w);
218 
219 globus_result_t
220 globus_i_gsi_cred_openssl_error_result(
221  int error_type,
222  const char * filename,
223  const char * function_name,
224  int line_number,
225  const char * short_desc,
226  const char * long_desc);
227 
228 globus_result_t
229 globus_i_gsi_cred_error_result(
230  int error_type,
231  const char * filename,
232  const char * function_name,
233  int line_number,
234  const char * short_desc,
235  const char * long_desc);
236 
237 globus_result_t
238 globus_i_gsi_cred_error_chain_result(
239  globus_result_t chain_result,
240  int error_type,
241  const char * filename,
242  const char * function_name,
243  int line_number,
244  const char * short_desc,
245  const char * long_desc);
246 
247 globus_result_t
248 globus_i_gsi_cred_error_join_chains_result(
249  globus_result_t outter_error,
250  globus_result_t inner_error);
251 
252 #ifdef __cplusplus
253 }
254 #endif
255 
256 #endif /* GLOBUS_I_GSI_CREDENTIAL_H */
257 
258 #endif /* GLOBUS_DONT_DOCUMENT_INTERNAL */
Globus GSI Credential Library.
struct globus_l_gsi_cred_handle_s * globus_gsi_cred_handle_t
Definition: globus_gsi_credential.h:141
globus_gsi_cred_type_t
Definition: globus_gsi_cred_constants.h:88
struct globus_l_gsi_cred_handle_attrs_s * globus_gsi_cred_handle_attrs_t
Definition: globus_gsi_credential.h:154