globus_gsi_credential  7.18
globus_gsi_credential.h
Go to the documentation of this file.
1 
8 #ifndef GLOBUS_INCLUDE_GLOBUS_GSI_CREDENTIAL_H
9 #define GLOBUS_INCLUDE_GLOBUS_GSI_CREDENTIAL_H
10 
11 #include "globus_common.h"
12 #include "globus_error_openssl.h"
14 #include "globus_gsi_callback.h"
15 #include "globus_gsi_cert_utils.h"
17 
18 #include "openssl/x509.h"
19 #include "openssl/bio.h"
20 #include "openssl/ssl.h"
21 #include "globus_error_generic.h"
22 #include "globus_error_openssl.h"
23 
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27 
28 #ifndef GLOBUS_GLOBAL_DOCUMENT_SET
33 #endif
34 
82 #define GLOBUS_GSI_CREDENTIAL_MODULE (&globus_i_gsi_credential_module)
83 
84 extern
85 globus_module_descriptor_t globus_i_gsi_credential_module;
86 
87 #define _GCRSL(s) globus_common_i18n_get_string( \
88  GLOBUS_GSI_CREDENTIAL_MODULE, \
89  s)
141 typedef struct globus_l_gsi_cred_handle_s *
143 
154 typedef struct globus_l_gsi_cred_handle_attrs_s *
156 
157 
158 globus_result_t globus_gsi_cred_handle_init(
159  globus_gsi_cred_handle_t * handle,
160  globus_gsi_cred_handle_attrs_t handle_attrs);
161 
162 globus_result_t globus_gsi_cred_handle_destroy(
163  globus_gsi_cred_handle_t handle);
164 
165 globus_result_t globus_gsi_cred_handle_copy(
167  globus_gsi_cred_handle_t * dest);
168 
169 globus_result_t globus_gsi_cred_handle_attrs_init(
170  globus_gsi_cred_handle_attrs_t * handle_attrs);
171 
173  globus_gsi_cred_handle_attrs_t handle_attrs);
174 
175 globus_result_t globus_gsi_cred_handle_attrs_copy(
178 
179 globus_result_t globus_gsi_cred_read(
181  X509_NAME * desired_subject);
182 
183 globus_result_t globus_gsi_cred_read_proxy(
185  const char * proxy_filename);
186 
187 globus_result_t globus_gsi_cred_read_proxy_bio(
189  BIO * bio);
190 
191 globus_result_t globus_gsi_cred_read_key(
193  const char * key_filename,
194  pem_password_cb * pw_cb);
195 
196 globus_result_t globus_gsi_cred_read_cert(
198  const char * cert_filename);
199 
200 globus_result_t globus_gsi_cred_read_cert_bio(
202  BIO * bio);
203 
204 globus_result_t globus_gsi_cred_read_cert_buffer(
205  const char * pem_buf,
206  globus_gsi_cred_handle_t * out_handle,
207  X509 ** out_cert,
208  STACK_OF(X509) ** out_cert_chain,
209  char ** out_subject);
210 
211 globus_result_t globus_gsi_cred_read_pkcs12(
213  const char * pkcs12_filename);
214 
215 globus_result_t globus_gsi_cred_write(
217  BIO * bio);
218 
219 globus_result_t globus_gsi_cred_write_proxy(
221  const char * proxy_filename);
222 
223 globus_result_t
225  globus_gsi_cred_handle_t cred_handle,
226  globus_gsi_callback_data_t callback_data);
227 
228 globus_result_t
230  globus_gsi_cred_handle_t cred_handle,
231  globus_gsi_callback_data_t callback_data,
232  time_t check_time);
233 
234 globus_result_t globus_gsi_cred_verify(
235  globus_gsi_cred_handle_t handle);
236 
239  X509_NAME ** subject_name);
240 
241 globus_result_t globus_gsi_cred_get_subject_name(
243  char ** subject_name);
244 
245 globus_result_t globus_gsi_cred_get_policies(
247  STACK_OF(OPENSSL_STRING) ** policies);
248 
251  STACK_OF(ASN1_OBJECT) ** languages);
252 
253 globus_result_t globus_gsi_cred_get_path_lengths(
255  STACK_OF(ASN1_INTEGER) * integer);
256 
259  X509_NAME ** issuer_name);
260 
261 globus_result_t globus_gsi_cred_get_issuer_name(
263  char ** issuer_name);
264 
267  X509_NAME ** identity_name);
268 
269 globus_result_t globus_gsi_cred_get_identity_name(
271  char ** identity_name);
272 
273 globus_result_t globus_gsi_cred_set_cert(
275  X509 * cert);
276 
277 globus_result_t globus_gsi_cred_set_key(
279  EVP_PKEY * key);
280 
281 globus_result_t globus_gsi_cred_set_cert_chain(
283  STACK_OF(X509) * cert_chain);
284 
285 globus_result_t globus_gsi_cred_get_cert(
287  X509 ** cert);
288 
289 globus_result_t globus_gsi_cred_get_key(
291  EVP_PKEY ** key);
292 
293 globus_result_t globus_gsi_cred_get_cert_chain(
295  STACK_OF(X509) ** cert_chain);
296 
297 globus_result_t globus_gsi_cred_get_handle_attrs(
299  globus_gsi_cred_handle_attrs_t * handle_attrs);
300 
301 globus_result_t globus_gsi_cred_get_lifetime(
303  time_t * lifetime);
304 
305 globus_result_t globus_gsi_cred_get_goodtill(
307  time_t * goodtill);
308 
309 globus_result_t globus_gsi_cred_get_cert_type(
311  globus_gsi_cert_utils_cert_type_t * type);
312 
313 globus_result_t globus_gsi_cred_get_key_bits(
315  int * key_bits);
316 
317 GLOBUS_DEPRECATED(
319  globus_gsi_cred_handle_attrs_t handle_attrs,
320  const char * ca_cert_dir));
321 
322 GLOBUS_DEPRECATED(
324  globus_gsi_cred_handle_attrs_t handle_attrs,
325  char ** ca_cert_dir));
326 
328  globus_gsi_cred_handle_attrs_t handle_attrs,
329  globus_gsi_cred_type_t search_order[]); /*{PROXY,USER,HOST}*/
330 
331 
333  globus_gsi_cred_handle_attrs_t handle_attrs,
334  globus_gsi_cred_type_t * search_order[]);/*{PROXY,USER,HOST}*/
335 
336 #ifdef __cplusplus
337 }
338 #endif
339 
340 #endif /* GLOBUS_INCLUDE_GLOBUS_GSI_CREDENTIAL_H */
Globus GSI Credential Library.
globus_result_t globus_gsi_cred_handle_attrs_set_ca_cert_dir(globus_gsi_cred_handle_attrs_t handle_attrs, const char *ca_cert_dir)
Set the CA certificate directory.
Definition: globus_gsi_cred_handle_attrs.c:220
globus_result_t globus_gsi_cred_handle_attrs_set_search_order(globus_gsi_cred_handle_attrs_t handle_attrs, globus_gsi_cred_type_t search_order[])
Set the search order.
Definition: globus_gsi_cred_handle_attrs.c:332
globus_result_t globus_gsi_cred_handle_attrs_get_search_order(globus_gsi_cred_handle_attrs_t handle_attrs, globus_gsi_cred_type_t **search_order)
Get the search order.
Definition: globus_gsi_cred_handle_attrs.c:390
globus_result_t globus_gsi_cred_handle_attrs_get_ca_cert_dir(globus_gsi_cred_handle_attrs_t handle_attrs, char **ca_cert_dir)
Get the CA certificate directory.
Definition: globus_gsi_cred_handle_attrs.c:270
globus_result_t globus_gsi_cred_handle_attrs_init(globus_gsi_cred_handle_attrs_t *handle_attrs)
Initialize credential handle attributes.
Definition: globus_gsi_cred_handle_attrs.c:45
struct globus_l_gsi_cred_handle_attrs_s * globus_gsi_cred_handle_attrs_t
Definition: globus_gsi_credential.h:154
globus_result_t globus_gsi_cred_handle_attrs_copy(globus_gsi_cred_handle_attrs_t source, globus_gsi_cred_handle_attrs_t *dest)
Copy credential handle attributes.
Definition: globus_gsi_cred_handle_attrs.c:144
globus_result_t globus_gsi_cred_handle_attrs_destroy(globus_gsi_cred_handle_attrs_t handle_attrs)
Destroy credential handle attributes.
Definition: globus_gsi_cred_handle_attrs.c:108
globus_result_t globus_gsi_cred_get_issuer_name(globus_gsi_cred_handle_t handle, char **issuer_name)
Get issuer name.
Definition: globus_gsi_cred_handle.c:1537
globus_result_t globus_gsi_cred_get_lifetime(globus_gsi_cred_handle_t handle, time_t *lifetime)
Get credential lifetime.
Definition: globus_gsi_cred_handle.c:381
globus_result_t globus_gsi_cred_get_X509_identity_name(globus_gsi_cred_handle_t handle, X509_NAME **identity_name)
Get X.509 identity.
Definition: globus_gsi_cred_handle.c:1050
globus_result_t globus_gsi_cred_get_cert_chain(globus_gsi_cred_handle_t handle, STACK_OF(X509) **cert_chain)
Get the certificate chain.
Definition: globus_gsi_cred_handle.c:911
globus_result_t globus_gsi_cred_verify_cert_chain_when(globus_gsi_cred_handle_t cred_handle, globus_gsi_callback_data_t callback_data, time_t check_time)
Verify credential at a specific time.
Definition: globus_gsi_cred_handle.c:1832
globus_result_t globus_gsi_cred_verify_cert_chain(globus_gsi_cred_handle_t cred_handle, globus_gsi_callback_data_t callback_data)
Verify credential.
Definition: globus_gsi_cred_handle.c:1682
globus_result_t globus_gsi_cred_get_identity_name(globus_gsi_cred_handle_t handle, char **identity_name)
Get identity name.
Definition: globus_gsi_cred_handle.c:1602
globus_result_t globus_gsi_cred_get_policy_languages(globus_gsi_cred_handle_t handle, STACK_OF(ASN1_OBJECT) **languages)
Get certificate chain policy languages.
Definition: globus_gsi_cred_handle.c:1359
globus_result_t globus_gsi_cred_get_policies(globus_gsi_cred_handle_t handle, STACK_OF(OPENSSL_STRING) **policies)
Get certificate chain policies.
Definition: globus_gsi_cred_handle.c:1199
globus_result_t globus_gsi_cred_handle_destroy(globus_gsi_cred_handle_t handle)
Destroy the credential handle.
Definition: globus_gsi_cred_handle.c:122
globus_result_t globus_gsi_cred_get_handle_attrs(globus_gsi_cred_handle_t handle, globus_gsi_cred_handle_attrs_t *handle_attrs)
Get the handle attributes.
Definition: globus_gsi_cred_handle.c:276
globus_result_t globus_gsi_cred_set_cert_chain(globus_gsi_cred_handle_t handle, STACK_OF(X509) *cert_chain)
Set the certificate chain.
Definition: globus_gsi_cred_handle.c:813
globus_result_t globus_gsi_cred_set_cert(globus_gsi_cred_handle_t handle, X509 *cert)
Set the credential's certificate.
Definition: globus_gsi_cred_handle.c:519
globus_result_t globus_gsi_cred_get_cert(globus_gsi_cred_handle_t handle, X509 **cert)
Get the credential's certificate.
Definition: globus_gsi_cred_handle.c:589
globus_result_t globus_gsi_cred_get_goodtill(globus_gsi_cred_handle_t handle, time_t *goodtill)
Get credential expiration.
Definition: globus_gsi_cred_handle.c:336
globus_result_t globus_gsi_cred_get_X509_subject_name(globus_gsi_cred_handle_t handle, X509_NAME **subject_name)
Get credential subject name.
Definition: globus_gsi_cred_handle.c:987
globus_result_t globus_gsi_cred_set_key(globus_gsi_cred_handle_t handle, EVP_PKEY *key)
Set the credential's private key.
Definition: globus_gsi_cred_handle.c:648
globus_result_t globus_gsi_cred_get_key(globus_gsi_cred_handle_t handle, EVP_PKEY **key)
Get the credential's private key.
Definition: globus_gsi_cred_handle.c:736
globus_result_t globus_gsi_cred_handle_copy(globus_gsi_cred_handle_t source, globus_gsi_cred_handle_t *dest)
Copy a handle.
Definition: globus_gsi_cred_handle.c:170
globus_result_t globus_gsi_cred_handle_init(globus_gsi_cred_handle_t *handle, globus_gsi_cred_handle_attrs_t handle_attrs)
Initialize a Handle.
Definition: globus_gsi_cred_handle.c:42
struct globus_l_gsi_cred_handle_s * globus_gsi_cred_handle_t
Definition: globus_gsi_credential.h:141
globus_result_t globus_gsi_cred_get_X509_issuer_name(globus_gsi_cred_handle_t handle, X509_NAME **issuer_name)
Get credential issuer name object.
Definition: globus_gsi_cred_handle.c:1474
globus_result_t globus_gsi_cred_get_key_bits(globus_gsi_cred_handle_t handle, int *key_bits)
Get credential strength.
Definition: globus_gsi_cred_handle.c:433
globus_result_t globus_gsi_cred_verify(globus_gsi_cred_handle_t handle)
Verify a credential.
Definition: globus_gsi_cred_handle.c:2034
globus_result_t globus_gsi_cred_get_subject_name(globus_gsi_cred_handle_t handle, char **subject_name)
Get credential subject name.
Definition: globus_gsi_cred_handle.c:1137
globus_result_t globus_gsi_cred_read_proxy_bio(globus_gsi_cred_handle_t handle, BIO *bio)
Read proxy credential from a BIO.
Definition: globus_gsi_credential.c:879
globus_result_t globus_gsi_cred_read_key(globus_gsi_cred_handle_t handle, const char *key_filename, pem_password_cb *pw_cb)
Read a private key.
Definition: globus_gsi_credential.c:1112
globus_result_t globus_gsi_cred_read_cert_bio(globus_gsi_cred_handle_t handle, BIO *bio)
Read a certificate chain from a BIO.
Definition: globus_gsi_credential.c:1254
globus_result_t globus_gsi_cred_write_proxy(globus_gsi_cred_handle_t handle, const char *proxy_filename)
Write a proxy credential.
Definition: globus_gsi_credential.c:1835
globus_result_t globus_gsi_cred_get_cert_type(globus_gsi_cred_handle_t handle, globus_gsi_cert_utils_cert_type_t *type)
Get the X.509 certificate type.
Definition: globus_gsi_credential.c:1964
globus_result_t globus_gsi_cred_read_cert(globus_gsi_cred_handle_t handle, const char *cert_filename)
Read a certificate chain from a file.
Definition: globus_gsi_credential.c:1197
globus_result_t globus_gsi_cred_read_cert_buffer(const char *pem_buf, globus_gsi_cred_handle_t *out_handle, X509 **out_cert, STACK_OF(X509) **out_cert_chain, char **out_subject)
Read certificate chain from a buffer.
Definition: globus_gsi_credential.c:1377
globus_result_t globus_gsi_cred_write(globus_gsi_cred_handle_t handle, BIO *bio)
Write Credential.
Definition: globus_gsi_credential.c:1751
globus_result_t globus_gsi_cred_read_proxy(globus_gsi_cred_handle_t handle, const char *proxy_filename)
Read proxy credential.
Definition: globus_gsi_credential.c:808
globus_result_t globus_gsi_cred_read_pkcs12(globus_gsi_cred_handle_t handle, const char *pkcs12_filename)
Read certificate and key from a PKCS12 file.
Definition: globus_gsi_credential.c:1504
globus_result_t globus_gsi_cred_read(globus_gsi_cred_handle_t handle, X509_NAME *desired_subject)
Read a credential.
Definition: globus_gsi_credential.c:185
globus_gsi_cred_type_t
Definition: globus_gsi_cred_constants.h:89