globus_gsi_credential  7.12
 All Files Functions Typedefs Enumerations Enumerator Groups Pages
globus_gsi_credential.h
Go to the documentation of this file.
1 /*
2  * Copyright 1999-2006 University of Chicago
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
23 #ifndef GLOBUS_INCLUDE_GLOBUS_GSI_CREDENTIAL_H
24 #define GLOBUS_INCLUDE_GLOBUS_GSI_CREDENTIAL_H
25 
26 #include "globus_common.h"
27 #include "globus_error_openssl.h"
29 #include "globus_gsi_callback.h"
30 #include "globus_gsi_cert_utils.h"
32 
33 #include "openssl/x509.h"
34 #include "openssl/bio.h"
35 #include "openssl/ssl.h"
36 #include "globus_error_generic.h"
37 #include "globus_error_openssl.h"
38 
39 #ifdef __cplusplus
40 extern "C" {
41 #endif
42 
43 #ifndef GLOBUS_GLOBAL_DOCUMENT_SET
44 
48 #endif
49 
97 #define GLOBUS_GSI_CREDENTIAL_MODULE (&globus_i_gsi_credential_module)
98 
99 extern
100 globus_module_descriptor_t globus_i_gsi_credential_module;
101 
102 #define _GCRSL(s) globus_common_i18n_get_string( \
103  GLOBUS_GSI_CREDENTIAL_MODULE, \
104  s)
105 
156 typedef struct globus_l_gsi_cred_handle_s *
158 
168 #if OPENSSL_VERSION_NUMBER >= 0x10000000L
169 #define STACK STACK_OF(OPENSSL_STRING)
170 #endif
171 
172 typedef struct globus_l_gsi_cred_handle_attrs_s *
174 
175 
176 globus_result_t globus_gsi_cred_handle_init(
177  globus_gsi_cred_handle_t * handle,
178  globus_gsi_cred_handle_attrs_t handle_attrs);
179 
180 globus_result_t globus_gsi_cred_handle_destroy(
181  globus_gsi_cred_handle_t handle);
182 
183 globus_result_t globus_gsi_cred_handle_copy(
184  globus_gsi_cred_handle_t source,
185  globus_gsi_cred_handle_t * dest);
186 
187 globus_result_t globus_gsi_cred_handle_attrs_init(
188  globus_gsi_cred_handle_attrs_t * handle_attrs);
189 
191  globus_gsi_cred_handle_attrs_t handle_attrs);
192 
193 globus_result_t globus_gsi_cred_handle_attrs_copy(
194  globus_gsi_cred_handle_attrs_t source,
195  globus_gsi_cred_handle_attrs_t * dest);
196 
197 globus_result_t globus_gsi_cred_read(
198  globus_gsi_cred_handle_t handle,
199  X509_NAME * desired_subject);
200 
201 globus_result_t globus_gsi_cred_read_proxy(
202  globus_gsi_cred_handle_t handle,
203  const char * proxy_filename);
204 
205 globus_result_t globus_gsi_cred_read_proxy_bio(
206  globus_gsi_cred_handle_t handle,
207  BIO * bio);
208 
209 globus_result_t globus_gsi_cred_read_key(
210  globus_gsi_cred_handle_t handle,
211  const char * key_filename,
212  int (*pw_cb)());
213 
214 globus_result_t globus_gsi_cred_read_cert(
215  globus_gsi_cred_handle_t handle,
216  const char * cert_filename);
217 
218 globus_result_t globus_gsi_cred_read_cert_bio(
219  globus_gsi_cred_handle_t handle,
220  BIO * bio);
221 
222 globus_result_t globus_gsi_cred_read_cert_buffer(
223  const char * pem_buf,
224  globus_gsi_cred_handle_t * out_handle,
225  X509 ** out_cert,
226  STACK_OF(X509) ** out_cert_chain,
227  char ** out_subject);
228 
229 globus_result_t globus_gsi_cred_read_pkcs12(
230  globus_gsi_cred_handle_t handle,
231  const char * pkcs12_filename);
232 
233 globus_result_t globus_gsi_cred_write(
234  globus_gsi_cred_handle_t handle,
235  BIO * bio);
236 
237 globus_result_t globus_gsi_cred_write_proxy(
238  globus_gsi_cred_handle_t handle,
239  const char * proxy_filename);
240 
241 globus_result_t
243  globus_gsi_cred_handle_t cred_handle,
244  globus_gsi_callback_data_t callback_data);
245 
246 globus_result_t
248  globus_gsi_cred_handle_t cred_handle,
249  globus_gsi_callback_data_t callback_data,
250  time_t check_time);
251 
252 globus_result_t globus_gsi_cred_verify(
253  globus_gsi_cred_handle_t handle);
254 
256  globus_gsi_cred_handle_t handle,
257  X509_NAME ** subject_name);
258 
259 globus_result_t globus_gsi_cred_get_subject_name(
260  globus_gsi_cred_handle_t handle,
261  char ** subject_name);
262 
263 globus_result_t globus_gsi_cred_get_policies(
264  globus_gsi_cred_handle_t handle,
265  STACK ** policies);
266 
268  globus_gsi_cred_handle_t handle,
269  STACK_OF(ASN1_OBJECT) ** languages);
270 
271 globus_result_t globus_gsi_cred_get_path_lengths(
272  globus_gsi_cred_handle_t handle,
273  STACK_OF(ASN1_INTEGER) * integer);
274 
276  globus_gsi_cred_handle_t handle,
277  X509_NAME ** issuer_name);
278 
279 globus_result_t globus_gsi_cred_get_issuer_name(
280  globus_gsi_cred_handle_t handle,
281  char ** issuer_name);
282 
284  globus_gsi_cred_handle_t handle,
285  X509_NAME ** identity_name);
286 
287 globus_result_t globus_gsi_cred_get_identity_name(
288  globus_gsi_cred_handle_t handle,
289  char ** identity_name);
290 
291 globus_result_t globus_gsi_cred_set_cert(
292  globus_gsi_cred_handle_t handle,
293  X509 * cert);
294 
295 globus_result_t globus_gsi_cred_set_key(
296  globus_gsi_cred_handle_t handle,
297  EVP_PKEY * key);
298 
299 globus_result_t globus_gsi_cred_set_cert_chain(
300  globus_gsi_cred_handle_t handle,
301  STACK_OF(X509) * cert_chain);
302 
303 globus_result_t globus_gsi_cred_get_cert(
304  globus_gsi_cred_handle_t handle,
305  X509 ** cert);
306 
307 globus_result_t globus_gsi_cred_get_key(
308  globus_gsi_cred_handle_t handle,
309  EVP_PKEY ** key);
310 
311 globus_result_t globus_gsi_cred_get_cert_chain(
312  globus_gsi_cred_handle_t handle,
313  STACK_OF(X509) ** cert_chain);
314 
315 globus_result_t globus_gsi_cred_get_handle_attrs(
316  globus_gsi_cred_handle_t handle,
317  globus_gsi_cred_handle_attrs_t * handle_attrs);
318 
319 globus_result_t globus_gsi_cred_get_lifetime(
320  globus_gsi_cred_handle_t handle,
321  time_t * lifetime);
322 
323 globus_result_t globus_gsi_cred_get_goodtill(
324  globus_gsi_cred_handle_t handle,
325  time_t * goodtill);
326 
327 globus_result_t globus_gsi_cred_get_cert_type(
328  globus_gsi_cred_handle_t handle,
329  globus_gsi_cert_utils_cert_type_t * type);
330 
331 globus_result_t globus_gsi_cred_get_key_bits(
332  globus_gsi_cred_handle_t handle,
333  int * key_bits);
334 
335 GLOBUS_DEPRECATED(
337  globus_gsi_cred_handle_attrs_t handle_attrs,
338  const char * ca_cert_dir));
339 
340 GLOBUS_DEPRECATED(
342  globus_gsi_cred_handle_attrs_t handle_attrs,
343  char ** ca_cert_dir));
344 
346  globus_gsi_cred_handle_attrs_t handle_attrs,
347  globus_gsi_cred_type_t search_order[]); /*{PROXY,USER,HOST}*/
348 
349 
351  globus_gsi_cred_handle_attrs_t handle_attrs,
352  globus_gsi_cred_type_t * search_order[]);/*{PROXY,USER,HOST}*/
353 
354 #ifdef __cplusplus
355 }
356 #endif
357 
358 #endif /* GLOBUS_INCLUDE_GLOBUS_GSI_CREDENTIAL_H */
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:1150
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:159
globus_result_t globus_gsi_cred_get_key_bits(globus_gsi_cred_handle_t cred_handle, int *key_bits)
Get credential strength.
Definition: globus_gsi_cred_handle.c:455
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:1627
globus_result_t globus_gsi_cred_get_policies(globus_gsi_cred_handle_t handle, STACK **policies)
Get certificate chain policies.
Definition: globus_gsi_cred_handle.c:1212
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:1850
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:1000
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:1519
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:1979
globus_result_t globus_gsi_cred_verify(globus_gsi_cred_handle_t handle)
Verify a credential.
Definition: globus_gsi_cred_handle.c:2059
globus_result_t globus_gsi_cred_handle_destroy(globus_gsi_cred_handle_t handle)
Destroy the credential handle.
Definition: globus_gsi_cred_handle.c:144
struct globus_l_gsi_cred_handle_s * globus_gsi_cred_handle_t
Definition: globus_gsi_credential.h:156
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:60
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:1499
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:1562
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:235
globus_result_t globus_gsi_cred_get_lifetime(globus_gsi_cred_handle_t cred_handle, time_t *lifetime)
Get credential lifetime.
Definition: globus_gsi_cred_handle.c:403
globus_result_t globus_gsi_cred_get_goodtill(globus_gsi_cred_handle_t cred_handle, time_t *goodtill)
Get credential expiration.
Definition: globus_gsi_cred_handle.c:358
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:541
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:347
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:1392
globus_gsi_cred_type_t
Definition: globus_gsi_cred_constants.h:103
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:924
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:192
globus_result_t globus_gsi_cred_write(globus_gsi_cred_handle_t handle, BIO *bio)
Write Credential.
Definition: globus_gsi_credential.c:1766
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:826
globus_result_t globus_gsi_cred_get_policy_languages(globus_gsi_cred_handle_t handle, STACK_OF(ASN1_OBJECT)**policy_languages)
Get certificate chain policy languages.
Definition: globus_gsi_cred_handle.c:1384
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:749
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:64
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:611
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:1269
globus_result_t globus_gsi_cred_read_key(globus_gsi_cred_handle_t handle, const char *key_filename, int(*pw_cb)())
Read a private key.
Definition: globus_gsi_credential.c:1127
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:200
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:405
Globus GSI Credential Library.
struct globus_l_gsi_cred_handle_attrs_s * globus_gsi_cred_handle_attrs_t
Definition: globus_gsi_credential.h:172
globus_result_t globus_gsi_cred_get_handle_attrs(globus_gsi_cred_handle_t handle, globus_gsi_cred_handle_attrs_t *attrs)
Get the handle attributes.
Definition: globus_gsi_cred_handle.c:298
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:1063
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:661
globus_result_t globus_gsi_cred_verify_cert_chain_when(globus_gsi_cred_handle_t cred_handle, globus_gsi_callback_data_t callback_data_in, time_t check_time)
Verify credential at a specific time.
Definition: globus_gsi_cred_handle.c:1857
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:823
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:123
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:894
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:1707
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:1212
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:285