globus_gsi_credential.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 
00023 #ifndef GLOBUS_INCLUDE_GLOBUS_GSI_CREDENTIAL_H
00024 #define GLOBUS_INCLUDE_GLOBUS_GSI_CREDENTIAL_H
00025 
00026 #include "globus_common.h"
00027 #include "globus_error_openssl.h"
00028 #include "globus_gsi_cred_constants.h"
00029 #include "globus_gsi_callback.h"
00030 #include "globus_gsi_cert_utils.h"
00031 #include "globus_gsi_cred_constants.h"
00032 
00033 #include "openssl/x509.h"
00034 #include "openssl/bio.h"
00035 #include "openssl/ssl.h"
00036 #include "globus_error_generic.h"
00037 #include "globus_error_openssl.h"
00038 
00039 #ifdef __cplusplus
00040 extern "C" {
00041 #endif
00042 
00043 #ifndef GLOBUS_GLOBAL_DOCUMENT_SET
00044 
00048 #endif
00049 
00097 #define GLOBUS_GSI_CREDENTIAL_MODULE    (&globus_i_gsi_credential_module)
00098 
00099 extern 
00100 globus_module_descriptor_t              globus_i_gsi_credential_module;
00101 
00102 #define _GCRSL(s) globus_common_i18n_get_string( \
00103                     GLOBUS_GSI_CREDENTIAL_MODULE, \
00104                     s) 
00105 
00156 typedef struct globus_l_gsi_cred_handle_s * 
00157                                         globus_gsi_cred_handle_t;
00158 
00168 #if OPENSSL_VERSION_NUMBER >= 0x10000000L
00169 #define STACK STACK_OF(OPENSSL_STRING)
00170 #endif
00171 
00172 typedef struct globus_l_gsi_cred_handle_attrs_s *
00173                                         globus_gsi_cred_handle_attrs_t;
00174 
00175 
00176 globus_result_t globus_gsi_cred_handle_init(
00177     globus_gsi_cred_handle_t *          handle,
00178     globus_gsi_cred_handle_attrs_t      handle_attrs);
00179 
00180 globus_result_t globus_gsi_cred_handle_destroy(
00181     globus_gsi_cred_handle_t            handle);
00182 
00183 globus_result_t globus_gsi_cred_handle_copy(
00184     globus_gsi_cred_handle_t            source,
00185     globus_gsi_cred_handle_t *          dest);
00186 
00187 globus_result_t globus_gsi_cred_handle_attrs_init(
00188     globus_gsi_cred_handle_attrs_t *    handle_attrs);
00189 
00190 globus_result_t globus_gsi_cred_handle_attrs_destroy(
00191     globus_gsi_cred_handle_attrs_t      handle_attrs);
00192 
00193 globus_result_t globus_gsi_cred_handle_attrs_copy(
00194     globus_gsi_cred_handle_attrs_t      source,
00195     globus_gsi_cred_handle_attrs_t *    dest);
00196 
00197 globus_result_t
00198 globus_gsi_cred_handle_init_ssl_context(
00199     globus_gsi_cred_handle_t            cred_handle);
00200 
00201 globus_result_t globus_gsi_cred_read(
00202     globus_gsi_cred_handle_t            handle,
00203     X509_NAME *                         desired_subject);
00204 
00205 globus_result_t globus_gsi_cred_read_proxy(
00206     globus_gsi_cred_handle_t            handle,
00207     const char *                        proxy_filename);
00208 
00209 globus_result_t globus_gsi_cred_read_proxy_bio(
00210     globus_gsi_cred_handle_t            handle,
00211     BIO *                               bio);
00212 
00213 globus_result_t globus_gsi_cred_read_key(
00214     globus_gsi_cred_handle_t            handle,
00215     char *                              key_filename,
00216     int                                 (*pw_cb)());
00217 
00218 globus_result_t globus_gsi_cred_read_cert(
00219     globus_gsi_cred_handle_t            handle,
00220     char *                              cert_filename);
00221 
00222 globus_result_t globus_gsi_cred_read_cert_bio(
00223     globus_gsi_cred_handle_t            handle,
00224     BIO *                               bio);
00225 
00226 globus_result_t globus_gsi_cred_read_cert_buffer(
00227     char *                              pem_buf,
00228     globus_gsi_cred_handle_t *          out_handle,
00229     X509 **                             out_cert,
00230     STACK_OF(X509) **                   out_cert_chain,
00231     char **                             out_subject);
00232 
00233 globus_result_t globus_gsi_cred_read_pkcs12(
00234     globus_gsi_cred_handle_t            handle,
00235     char *                              pkcs12_filename);
00236 
00237 globus_result_t globus_gsi_cred_write(
00238     globus_gsi_cred_handle_t            handle,
00239     BIO *                               bio);
00240 
00241 globus_result_t globus_gsi_cred_write_proxy(
00242     globus_gsi_cred_handle_t            handle,
00243     char *                              proxy_filename);
00244 
00245 globus_result_t
00246 globus_gsi_cred_verify_cert_chain(
00247     globus_gsi_cred_handle_t            cred_handle,
00248     globus_gsi_callback_data_t          callback_data);
00249 
00250 globus_result_t
00251 globus_gsi_cred_verify_cert_chain_when(
00252     globus_gsi_cred_handle_t            cred_handle,
00253     globus_gsi_callback_data_t          callback_data,
00254     time_t                              check_time);
00255 
00256 globus_result_t globus_gsi_cred_verify(
00257     globus_gsi_cred_handle_t            handle);
00258 
00259 globus_result_t globus_gsi_cred_get_X509_subject_name(
00260     globus_gsi_cred_handle_t            handle,
00261     X509_NAME **                        subject_name);
00262 
00263 globus_result_t globus_gsi_cred_get_subject_name(
00264     globus_gsi_cred_handle_t            handle,
00265     char **                             subject_name);
00266 
00267 globus_result_t globus_gsi_cred_get_policies(
00268     globus_gsi_cred_handle_t            handle,
00269     STACK **                            policies);
00270 
00271 globus_result_t globus_gsi_cred_get_policy_languages(
00272     globus_gsi_cred_handle_t            handle,
00273     STACK_OF(ASN1_OBJECT) **            languages);
00274 
00275 globus_result_t globus_gsi_cred_get_path_lengths(
00276     globus_gsi_cred_handle_t            handle,
00277     STACK_OF(ASN1_INTEGER) *            integer);
00278 
00279 globus_result_t globus_gsi_cred_get_X509_issuer_name(
00280     globus_gsi_cred_handle_t            handle,
00281     X509_NAME **                        issuer_name);
00282 
00283 globus_result_t globus_gsi_cred_get_issuer_name(
00284     globus_gsi_cred_handle_t            handle,
00285     char **                             issuer_name);
00286 
00287 globus_result_t globus_gsi_cred_get_X509_identity_name(
00288     globus_gsi_cred_handle_t            handle,
00289     X509_NAME **                        identity_name);
00290 
00291 globus_result_t globus_gsi_cred_get_identity_name(
00292     globus_gsi_cred_handle_t            handle,
00293     char **                             identity_name);
00294 
00295 globus_result_t globus_gsi_cred_set_cert(
00296     globus_gsi_cred_handle_t            handle,
00297     X509 *                              cert);
00298 
00299 globus_result_t globus_gsi_cred_set_key(
00300     globus_gsi_cred_handle_t            handle,
00301     EVP_PKEY *                          key);
00302 
00303 globus_result_t globus_gsi_cred_set_cert_chain(
00304     globus_gsi_cred_handle_t            handle,
00305     STACK_OF(X509) *                    cert_chain);
00306 
00307 globus_result_t globus_gsi_cred_get_cert(
00308     globus_gsi_cred_handle_t            handle,
00309     X509 **                             cert);
00310 
00311 globus_result_t globus_gsi_cred_get_key(
00312     globus_gsi_cred_handle_t            handle,
00313     EVP_PKEY **                         key);
00314 
00315 globus_result_t globus_gsi_cred_get_cert_chain(
00316     globus_gsi_cred_handle_t            handle,
00317     STACK_OF(X509) **                   cert_chain);
00318 
00319 globus_result_t globus_gsi_cred_get_handle_attrs(
00320     globus_gsi_cred_handle_t            handle,
00321     globus_gsi_cred_handle_attrs_t *    handle_attrs);
00322 
00323 globus_result_t globus_gsi_cred_get_lifetime(
00324     globus_gsi_cred_handle_t            handle,
00325     time_t *                            lifetime);
00326 
00327 globus_result_t globus_gsi_cred_get_goodtill(
00328     globus_gsi_cred_handle_t            handle,
00329     time_t *                            goodtill);
00330  
00331 globus_result_t globus_gsi_cred_get_cert_type(
00332     globus_gsi_cred_handle_t            handle,
00333     globus_gsi_cert_utils_cert_type_t * type);
00334 
00335 globus_result_t globus_gsi_cred_get_key_bits(
00336     globus_gsi_cred_handle_t            handle,
00337     int *                               key_bits);
00338 
00339 globus_result_t globus_gsi_cred_handle_attrs_set_ca_cert_dir(
00340     globus_gsi_cred_handle_attrs_t      handle_attrs,
00341     char *                              ca_cert_dir);
00342 
00343 globus_result_t globus_gsi_cred_handle_attrs_get_ca_cert_dir(
00344     globus_gsi_cred_handle_attrs_t      handle_attrs,
00345     char **                             ca_cert_dir);
00346 
00347 globus_result_t globus_gsi_cred_handle_attrs_set_search_order(
00348     globus_gsi_cred_handle_attrs_t      handle_attrs,
00349     globus_gsi_cred_type_t              search_order[]); /*{PROXY,USER,HOST}*/
00350 
00351 
00352 globus_result_t globus_gsi_cred_handle_attrs_get_search_order(
00353     globus_gsi_cred_handle_attrs_t      handle_attrs,
00354     globus_gsi_cred_type_t *            search_order[]);/*{PROXY,USER,HOST}*/
00355 
00356 #ifdef __cplusplus
00357 }
00358 #endif
00359 
00360 #endif /* GLOBUS_INCLUDE_GLOBUS_GSI_CREDENTIAL_H */

Generated on 27 Oct 2014 for globus_gsi_credential by  doxygen 1.4.7