globus_gss_assist  11.5
 All Files Functions Enumerations Enumerator Groups Pages
globus_gss_assist.h
Go to the documentation of this file.
1 
2 #ifndef _GLOBUS_GSS_ASSIST_H
3 #define _GLOBUS_GSS_ASSIST_H
4 
10 #include "gssapi.h"
11 
12 #include <stdio.h>
13 #include <stdlib.h>
14 
15 #ifdef __cplusplus
16 extern "C" {
17 #endif
18 
19 #ifndef GLOBUS_GLOBAL_DOCUMENT_SET
20 
24 #endif
25 
77 #define GLOBUS_GSI_GSS_ASSIST_MODULE (&globus_i_gsi_gss_assist_module)
78 
79 extern
80 globus_module_descriptor_t globus_i_gsi_gss_assist_module;
81 
82 #define _GASL(s) globus_common_i18n_get_string( \
83  GLOBUS_GSI_GSS_ASSIST_MODULE, \
84  s)
86 
87 
88 #define GLOBUS_GSS_ASSIST_TOKEN_ERR_MALLOC 1
89 #define GLOBUS_GSS_ASSIST_TOKEN_ERR_BAD_SIZE 2
90 #define GLOBUS_GSS_ASSIST_TOKEN_EOF 3
91 #define GLOBUS_GSS_ASSIST_TOKEN_NOT_FOUND 4
92 
93 /* for kerberos v5.1.0.5 compatibility we need this */
94 #ifndef GSS_C_NO_NAME
95 #define GSS_C_NO_NAME ((gss_name_t *) 0)
96 #define GSS_ASSIST_KRB5_HACK
97 #endif
98 
99 /* for the globus_gss_assist_ex flags: */
100 
101 #define GLOBUS_GSS_ASSIST_EX_SEND_WITHOUT_LENGTH 1
102 
103 typedef struct globus_gss_assist_ex_st
104 {
105  void * arg;
106  int flags;
107 } globus_gss_assist_ex;
108 
118 extern int
120  void * arg,
121  void ** bufp,
122  size_t * sizep);
123 
124 extern int
126  void * arg,
127  void * buf,
128  size_t size);
129 
130 extern int
132  void * arg,
133  void * buf,
134  size_t size);
135 
136 extern int
138  void * arg,
139  void * buf,
140  size_t size);
141 
150 extern OM_uint32
152  OM_uint32 *, /* minor_status */
153  gss_cred_usage_t, /* cred_usage */
154  gss_cred_id_t * /* output_cred_handle */);
155 
156 extern
157 OM_uint32
159  OM_uint32 *minor_status,
160  const char *dir,
161  gss_cred_id_t **output_credentials_array,
162  size_t *output_credentials_array_size);
163 
164 extern OM_uint32
165 globus_gss_assist_acquire_cred_dir(
166  OM_uint32 *, /* minor_status */
167  gss_cred_usage_t, /* cred_usage */
168  gss_cred_id_t ** /* output_cred_handle */,
169  size_t);
170 /*
171  * globus_gss_assist_acquire_cred_ext, assist with the gss_acquire_cred
172  */
173 extern OM_uint32
175  OM_uint32 *, /* minor_status */
176  char *, /* desired_name_char */
177  OM_uint32, /* time_req */
178  const gss_OID_set, /* desired_mechs */
179  gss_cred_usage_t, /* cred_usage */
180  gss_cred_id_t *, /* output_cred_handle */
181  gss_OID_set *, /* actual_mechs */
182  OM_uint32 * /* time_rec */);
183 
195 extern OM_uint32
197  OM_uint32 *, /* minor_status */
198  gss_ctx_id_t *, /* context_handle */
199  const gss_cred_id_t, /* acceptor_cred_handle */
200  char **, /* src_name as char ** */
201  OM_uint32 *, /* ret_flags */
202  int *, /* user_to_user_flag */
203  int *, /* token_status */
204  gss_cred_id_t *, /* delegated_cred_handle */
205  int (* get_token)(void *, void **, size_t *),
206  void * get_context,
207  int (* send_token)(void *, void *, size_t),
208  void * send_context);
209 
210 /*
211  * globus_gss_assist_accept_sec_context_async - async version of
212  * globus_gss_assist_accept_sec_context().
213  */
214 extern OM_uint32
216  OM_uint32 * minor_status,
217  gss_ctx_id_t * context_handle,
218  const gss_cred_id_t cred_handle,
219  char ** src_name_char,
220  OM_uint32 * ret_flags,
221  int * user_to_user_flag,
222  void * input_buffer,
223  size_t input_buffer_len,
224  void ** output_bufferp,
225  size_t * output_buffer_lenp,
226  gss_cred_id_t * delegated_cred_handle);
227 
228 /*
229  * globus_gss_assist_init_sec_context - takes care of looping
230  * over multiple tokens using the get and send tokens
231  * routines
232  */
233 extern OM_uint32
235  OM_uint32 *, /* minor_status */
236  const gss_cred_id_t, /* initiator_cred_handle */
237  gss_ctx_id_t *, /* context_handle */
238  char *, /* target_name as char * */
239  OM_uint32, /* req_flags */
240  OM_uint32 *, /* ret_flags */
241  int *, /* token_status */
242  int (* get_token)(void *, void **, size_t *),
243  void * get_arg,
244  int (* send_token)(void *, void *, size_t),
245  void * send_arg);
246 
247 /*
248  * globus_gss_assist_init_sec_context_async - async version of
249  * globus_gss_assist_init_sec_context().
250  */
251 extern OM_uint32
253  OM_uint32 * minor_status,
254  const gss_cred_id_t cred_handle,
255  gss_ctx_id_t * context_handle,
256  char * target_name_char,
257  OM_uint32 req_flags,
258  OM_uint32 * ret_flags,
259  void * input_buffer,
260  size_t input_buffer_len,
261  void ** output_bufferp,
262  size_t * output_buffer_lenp);
263 
272 extern OM_uint32
274  FILE *, /* where to print */
275  char *, /* comment */
276  OM_uint32, /* major_status */
277  OM_uint32, /* minor_status */
278  int /* token_status */);
279 
280 extern OM_uint32
282  char **, /* string returned with newlines */
283  char *, /* comment */
284  OM_uint32, /* major_status */
285  OM_uint32, /* minor_status */
286  int /* token_status */);
287 
288 /*
289  * globus_gss_assist_wrap_send - used to wrap a
290  * simple message and send it
291  */
292 extern OM_uint32
294  OM_uint32 * minor_status,
295  const gss_ctx_id_t context_handle,
296  char * data,
297  size_t length,
298  int * token_status,
299  int (*gss_assist_send_token)(void *, void *, size_t),
300  void * gss_assist_send_context,
301  FILE * fperr);
302 
303 /*
304  * globus_gss_assist_get_unwrap - used to get and unwrap a message
305  */
306 extern OM_uint32
308  OM_uint32 * minor_status,
309  const gss_ctx_id_t context_handle,
310  char ** data,
311  size_t * length,
312  int * token_status,
313  int (*gss_assist_get_token)(void *, void **, size_t *),
314  void * gss_assist_get_context,
315  FILE * fperr);
316 
317 /*
318  * globus_gss_assist_will_handle_restrictions - used to tell OpenSSL
319  * that the application will deal with the restrictions extension
320  */
321 OM_uint32
323  OM_uint32 * minor_status,
324  gss_ctx_id_t * context_handle);
325 
326 
327 /*
328  * globus_gss_assist_import_sec_context - read a security context
329  */
330 extern OM_uint32
332  OM_uint32 * minor_status,
333  gss_ctx_id_t * context_handle,
334  int * token_status,
335  int fdp,
336  FILE * fperr);
337 
338 /*
339  * globus_gss_assist_import_sec_context - read a security context
340  */
341 extern OM_uint32
343  OM_uint32 * minor_status,
344  gss_ctx_id_t * context_handle,
345  int * token_status,
346  int fdp,
347  FILE * fperr);
348 
349 
350 globus_result_t
352  char * hostname,
353  gss_name_t * authorization_hostname);
354 
364 extern int
366  char * globusidp,
367  char ** useridp);
368 
369 extern int
371  char * globusid,
372  char * userid);
373 
374 extern int
376  char * local_user,
377  char ** globusidp);
378 
379 globus_result_t
381  char * username,
382  char ** dns[],
383  int * dn_count);
384 
385 globus_result_t
387  gss_ctx_id_t context,
388  char * service,
389  char * desired_identity,
390  char * identity_buffer,
391  unsigned int identity_buffer_length);
392 
393 globus_result_t
395  char * shared_user_certificate,
396  gss_ctx_id_t context,
397  char * desired_identity,
398  char * identity_buffer,
399  unsigned int identity_buffer_length);
400 
401 
416 #define GlobusGssAssistFreeDNArray(dn_a) \
417 { \
418  int __ctr = 0; \
419  while(dn_a[__ctr] != NULL) \
420  { \
421  free(dn_a[__ctr]); \
422  __ctr++; \
423  } \
424  free(dn_a); \
425 }
426 
427 
428 #ifdef __cplusplus
429 }
430 #endif
431 
432 #endif /* _GLOBUS_GSS_ASSIST_H */
globus_result_t globus_gss_assist_lookup_all_globusid(char *username, char **dns[], int *dn_count)
Look up all Grid IDs associated with a local user ID.
Definition: gridmap.c:1754
OM_uint32 globus_gss_assist_display_status_str(char **str, char *comment, OM_uint32 major_status, OM_uint32 minor_status, int token_status)
Definition: display.c:158
int globus_gss_assist_userok(char *globusid, char *userid)
Gridmap entry existence check.
Definition: gridmap.c:684
OM_uint32 globus_gss_assist_accept_sec_context_async(OM_uint32 *minor_status, gss_ctx_id_t *context_handle, const gss_cred_id_t cred_handle, char **src_name_char, OM_uint32 *ret_flags, int *user_to_user_flag, void *input_buffer, size_t input_buffer_len, void **output_bufferp, size_t *output_buffer_lenp, gss_cred_id_t *delegated_cred_handle)
Accept a Security Context Without Blocking.
Definition: accept.c:308
OM_uint32 globus_gss_assist_get_unwrap(OM_uint32 *minor_status, const gss_ctx_id_t context_handle, char **data, size_t *length, int *token_status, int(*gss_assist_get_token)(void *, void **, size_t *), void *gss_assist_get_context, FILE *fperr)
Get Unwrap.
Definition: unwrap.c:45
OM_uint32 globus_gss_assist_acquire_cred(OM_uint32 *minor_status, gss_cred_usage_t cred_usage, gss_cred_id_t *output_cred_handle)
Definition: acquire.c:52
OM_uint32 globus_gss_assist_accept_sec_context(OM_uint32 *minor_status, gss_ctx_id_t *context_handle, const gss_cred_id_t cred_handle, char **src_name_char, OM_uint32 *ret_flags, int *user_to_user_flag, int *token_status, gss_cred_id_t *delegated_cred_handle, int(*gss_assist_get_token)(void *, void **, size_t *), void *gss_assist_get_context, int(*gss_assist_send_token)(void *, void *, size_t), void *gss_assist_send_context)
Accept a Security Context.
Definition: accept.c:65
OM_uint32 globus_gss_assist_import_sec_context(OM_uint32 *minor_status, gss_ctx_id_t *context_handle, int *token_status, int fdp, FILE *fperr)
Definition: import_sec_context.c:36
OM_uint32 globus_gss_assist_will_handle_restrictions(OM_uint32 *minor_status, gss_ctx_id_t *context_handle)
Definition: set_sec_context_opts.c:30
OM_uint32 globus_gss_assist_acquire_cred_ext(OM_uint32 *minor_status, char *desired_name_char, OM_uint32 time_req, const gss_OID_set desired_mechs, gss_cred_usage_t cred_usage, gss_cred_id_t *output_cred_handle, gss_OID_set *actual_mechs, OM_uint32 *time_rec)
Definition: acquire.c:80
int globus_gss_assist_token_send_fd(void *arg, void *buf, size_t size)
Send token via a FILE *.
Definition: tokens_f.c:232
globus_result_t globus_gss_assist_map_and_authorize_sharing(char *shared_user_certificate, gss_ctx_id_t context, char *desired_identity, char *identity_buffer, unsigned int identity_buffer_length)
Authorize a particular credential for shared access.
Definition: gridmap.c:2111
OM_uint32 globus_gss_assist_export_sec_context(OM_uint32 *minor_status, gss_ctx_id_t *context_handle, int *token_status, int fdp, FILE *fperr)
Definition: export_sec_context.c:37
OM_uint32 globus_gss_assist_wrap_send(OM_uint32 *minor_status, const gss_ctx_id_t context_handle, char *data, size_t length, int *token_status, int(*gss_assist_send_token)(void *, void *, size_t), void *gss_assist_send_context, FILE *fperr)
Wrap.
Definition: wrap.c:47
OM_uint32 globus_gss_assist_read_vhost_cred_dir(OM_uint32 *minor_status, const char *dir, gss_cred_id_t **output_credentials_array, size_t *output_credentials_array_size)
Acquire all GSSAPI credentials in a directory.
Definition: read_vhost_cred_dir.c:25
int globus_gss_assist_map_local_user(char *local_user, char **globusidp)
Look up the default Grid identity associated with a local user name.
Definition: gridmap.c:821
OM_uint32 globus_gss_assist_init_sec_context(OM_uint32 *, const gss_cred_id_t, gss_ctx_id_t *, char *, OM_uint32, OM_uint32 *, int *, int(*get_token)(void *, void **, size_t *), void *get_arg, int(*send_token)(void *, void *, size_t), void *send_arg)
Definition: init.c:62
int globus_gss_assist_token_send_fd_ex(void *arg, void *buf, size_t size)
Send a token to a FILE *.
Definition: tokens_f.c:304
OM_uint32 globus_gss_assist_init_sec_context_async(OM_uint32 *minor_status, const gss_cred_id_t cred_handle, gss_ctx_id_t *context_handle, char *target_name_char, OM_uint32 req_flags, OM_uint32 *ret_flags, void *input_buffer, size_t input_buffer_len, void **output_bufferp, size_t *output_buffer_lenp)
Definition: init.c:321
int globus_gss_assist_token_get_fd(void *arg, void **bufp, size_t *sizep)
Get token from a FILE *.
Definition: tokens_f.c:35
int globus_gss_assist_gridmap(char *globusidp, char **useridp)
Look up the default mapping for a Grid identity in a gridmap file.
Definition: gridmap.c:537
OM_uint32 globus_gss_assist_display_status(FILE *fp, char *comment, OM_uint32 major_status, OM_uint32 minor_status, int token_status)
Definition: display.c:110
globus_result_t globus_gss_assist_map_and_authorize(gss_ctx_id_t context, char *service, char *desired_identity, char *identity_buffer, unsigned int identity_buffer_length)
Authorize the peer of a security context to use a service.
Definition: gridmap.c:1937
globus_result_t globus_gss_assist_authorization_host_name(char *hostname, gss_name_t *authorization_hostname)
Definition: hostname.c:32
Globus GSI GSS Assist Library.
int globus_gss_assist_token_send_fd_without_length(void *arg, void *buf, size_t size)
Send token to a FILE *.
Definition: tokens_f.c:261