globus_xio_gsi.h

Go to the documentation of this file.
00001 /*
00002  * Copyright 1999-2006 University of Chicago
00003  * 
00004  * Licensed under the Apache License, Version 2.0 (the "License");
00005  * you may not use this file except in compliance with the License.
00006  * You may obtain a copy of the License at
00007  * 
00008  * http://www.apache.org/licenses/LICENSE-2.0
00009  * 
00010  * Unless required by applicable law or agreed to in writing, software
00011  * distributed under the License is distributed on an "AS IS" BASIS,
00012  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013  * See the License for the specific language governing permissions and
00014  * limitations under the License.
00015  */
00016 
00017 #ifndef GLOBUS_XIO_GSI_DRIVER_H
00018 #define GLOBUS_XIO_GSI_DRIVER_H
00019 
00027 #include "gssapi.h"
00028 #include "globus_common.h"
00029 
00030 #ifdef __cplusplus
00031 extern "C" {
00032 #endif
00033 
00034 
00035 #ifndef GLOBUS_GLOBAL_DOCUMENT_SET
00036 
00040 #endif
00041 
00137 typedef enum
00138 {
00142     GLOBUS_XIO_GSI_ERROR_INVALID_PROTECTION_LEVEL,
00144     GLOBUS_XIO_GSI_ERROR_WRAP_GSSAPI,
00148     GLOBUS_XIO_GSI_ERROR_EMPTY_TARGET_NAME,
00152     GLOBUS_XIO_GSI_ERROR_EMPTY_HOST_NAME,
00154     GLOBUS_XIO_GSI_AUTHORIZATION_FAILED,
00158     GLOBUS_XIO_GSI_ERROR_TOKEN_TOO_BIG
00159 } globus_xio_gsi_error_t;
00160 
00168 #define globus_xio_gsi_attr_cntl globus_xio_attr_cntl
00169 #define globus_xio_gsi_handle_cntl globus_xio_handle_cntl
00170 
00175 typedef enum
00176 {
00188     /* gss_cred_id_t                    credential */
00189     GLOBUS_XIO_GSI_SET_CREDENTIAL,
00190 
00201     /* gss_cred_id_t *                  credential */
00202     GLOBUS_XIO_GSI_GET_CREDENTIAL,
00203 
00211     /* OM_uint32                        req_flags */
00212     GLOBUS_XIO_GSI_SET_GSSAPI_REQ_FLAGS,
00213 
00221     /* OM_uint32 *                       req_flags */
00222     GLOBUS_XIO_GSI_GET_GSSAPI_REQ_FLAGS,
00223     
00232     /* globus_xio_gsi_proxy_mode_t      proxy_mode*/
00233     GLOBUS_XIO_GSI_SET_PROXY_MODE,
00234 
00243     /* globus_xio_gsi_proxy_mode_t *    proxy_mode*/
00244     GLOBUS_XIO_GSI_GET_PROXY_MODE,
00245 
00253     /* globus_xio_gsi_authorization_mode_t      authz_mode*/
00254     GLOBUS_XIO_GSI_SET_AUTHORIZATION_MODE,
00255 
00263     /* globus_xio_gsi_authorization_mode_t *    authz_mode*/
00264     GLOBUS_XIO_GSI_GET_AUTHORIZATION_MODE,
00265 
00274     /* globus_xio_gsi_delegation_mode_t delegation_mode*/
00275     GLOBUS_XIO_GSI_SET_DELEGATION_MODE,
00276 
00284     /* globus_xio_gsi_delegation_mode_t *   delegation_mode*/
00285     GLOBUS_XIO_GSI_GET_DELEGATION_MODE,
00286     
00297     /* globus_bool_t                    ssl_mode*/
00298     GLOBUS_XIO_GSI_SET_SSL_COMPATIBLE,
00299 
00309     /* globus_bool_t                    anon_mode*/
00310     GLOBUS_XIO_GSI_SET_ANON,
00311 
00322     /* globus_bool_t                 wrap_mode*/
00323     GLOBUS_XIO_GSI_SET_WRAP_MODE,
00324 
00335     /* globus_bool_t *               wrap_mode*/
00336     GLOBUS_XIO_GSI_GET_WRAP_MODE,
00337 
00349     /* globus_size_t                    buffer_size*/
00350     GLOBUS_XIO_GSI_SET_BUFFER_SIZE,
00351 
00363     /* globus_size_t *                   buffer_size*/
00364     GLOBUS_XIO_GSI_GET_BUFFER_SIZE,
00365 
00374     /* globus_xio_gsi_protection_level_t    protection_level*/
00375     GLOBUS_XIO_GSI_SET_PROTECTION_LEVEL,
00376 
00384     /* globus_xio_gsi_protection_level_t *  protection_level*/
00385     GLOBUS_XIO_GSI_GET_PROTECTION_LEVEL,
00386 
00394     /* gss_name_t *                     target_name */
00395     GLOBUS_XIO_GSI_GET_TARGET_NAME,
00396 
00404     /* gss_name_t                       target_name */
00405     GLOBUS_XIO_GSI_SET_TARGET_NAME,
00406 
00414     /* gss_ctx_id_t *                   context */
00415     GLOBUS_XIO_GSI_GET_CONTEXT,
00416 
00424     /* gss_cred_id_t *                  credential */
00425     GLOBUS_XIO_GSI_GET_DELEGATED_CRED,
00426 
00434     /* gss_name_t *                     peer_name */
00435     GLOBUS_XIO_GSI_GET_PEER_NAME,
00436 
00444     /* gss_name_t *                     local_name */
00445     GLOBUS_XIO_GSI_GET_LOCAL_NAME,
00446 
00461     /* gss_cred_id_t                    credential,
00462        gss_OID_set                      restriction_oids,
00463        gss_buffer_set_t                 restriction_buffers,
00464        OM_uint32                        time_req */
00465     GLOBUS_XIO_GSI_INIT_DELEGATION,
00466 
00485     /* gss_cred_id_t                                credential,
00486        gss_OID_set                                  restriction_oids,
00487        gss_buffer_set_t                             restriction_buffers,
00488        OM_uint32                                    time_req,
00489        globus_xio_gsi_delegation_init_callback_t    callback,
00490        void *                                       callback_arg */
00491     GLOBUS_XIO_GSI_REGISTER_INIT_DELEGATION,
00506     /* gss_cred_id_t *                  credential,
00507        gss_OID_set                      restriction_oids,
00508        gss_buffer_set_t                 restriction_buffers,
00509        OM_uint32                        time_req */
00510     GLOBUS_XIO_GSI_ACCEPT_DELEGATION,
00511 
00528     /* gss_OID_set                                  restriction_oids,
00529        gss_buffer_set_t                             restriction_buffers,
00530        OM_uint32                                    time_req,
00531        globus_xio_gsi_delegation_accept_callback_t  callback,
00532        void *                                       callback_arg */
00533     GLOBUS_XIO_GSI_REGISTER_ACCEPT_DELEGATION,
00534 
00545     /* globus_bool_t                    server_mode */
00546     GLOBUS_XIO_GSI_FORCE_SERVER_MODE,
00547     
00556     /* globus_bool_t    allow*/
00557     GLOBUS_XIO_GSI_SET_ALLOW_MISSING_SIGNING_POLICY,
00558 
00566     /* globus_bool_t *  allow*/
00567     GLOBUS_XIO_GSI_GET_ALLOW_MISSING_SIGNING_POLICY
00568 } globus_xio_gsi_cmd_t;
00569 
00574 typedef enum
00575 {
00577     GLOBUS_XIO_GSI_PROTECTION_LEVEL_NONE,
00579     GLOBUS_XIO_GSI_PROTECTION_LEVEL_INTEGRITY,
00581     GLOBUS_XIO_GSI_PROTECTION_LEVEL_PRIVACY
00582 } globus_xio_gsi_protection_level_t;
00583 
00588 typedef enum
00589 {
00591     GLOBUS_XIO_GSI_DELEGATION_MODE_NONE,
00593     GLOBUS_XIO_GSI_DELEGATION_MODE_LIMITED,
00595     GLOBUS_XIO_GSI_DELEGATION_MODE_FULL
00596 } globus_xio_gsi_delegation_mode_t;
00597 
00602 typedef enum
00603 {
00605     GLOBUS_XIO_GSI_PROXY_MODE_FULL,
00609     GLOBUS_XIO_GSI_PROXY_MODE_LIMITED,
00611     GLOBUS_XIO_GSI_PROXY_MODE_MANY
00612 } globus_xio_gsi_proxy_mode_t;
00613 
00614 
00619 typedef enum
00620 {
00624     GLOBUS_XIO_GSI_NO_AUTHORIZATION,
00626     GLOBUS_XIO_GSI_SELF_AUTHORIZATION,
00630     GLOBUS_XIO_GSI_IDENTITY_AUTHORIZATION,
00634     GLOBUS_XIO_GSI_HOST_AUTHORIZATION
00635 } globus_xio_gsi_authorization_mode_t;
00636 
00641 typedef void (* globus_xio_gsi_delegation_init_callback_t)(
00642     globus_result_t                     result,
00643     void *                              user_arg);
00644 
00649 typedef void (* globus_xio_gsi_delegation_accept_callback_t)(
00650     globus_result_t                     result,
00651     gss_cred_id_t                       delegated_cred,
00652     OM_uint32                           time_rec,
00653     void *                              user_arg);
00654 
00655 #ifdef __cplusplus
00656 }
00657 #endif
00658 
00659 #endif /* GLOBUS_XIO_GSI_DRIVER_H */

Generated on 27 Oct 2014 for globus_xio_gsi_driver by  doxygen 1.4.7