7 #ifndef GLOBUS_GLOBUS_GSI_PROXY_H
8 #define GLOBUS_GLOBUS_GSI_PROXY_H
10 #ifndef GLOBUS_GLOBAL_DOCUMENT_SET
48 #ifndef GLOBUS_DONT_DOCUMENT_INTERNAL
49 #include "globus_gsi_credential.h"
50 #include "globus_error_generic.h"
51 #include "globus_error_openssl.h"
52 #include "openssl/evp.h"
53 #include "openssl/x509v3.h"
54 #include "proxypolicy.h"
96 #define GLOBUS_GSI_PROXY_MODULE (&globus_i_gsi_proxy_module)
99 globus_module_descriptor_t globus_i_gsi_proxy_module;
101 #define _PCSL(s) globus_common_i18n_get_string(\
102 GLOBUS_GSI_PROXY_MODULE, \
120 typedef struct globus_l_gsi_proxy_handle_s *
155 globus_gsi_proxy_handle_t * handle,
156 globus_gsi_proxy_handle_attrs_t handle_attrs);
160 globus_gsi_proxy_handle_t handle);
164 globus_gsi_proxy_handle_t handle,
169 globus_gsi_proxy_handle_t handle,
174 globus_gsi_proxy_handle_t handle,
175 EVP_PKEY ** proxy_key);
179 globus_gsi_proxy_handle_t handle,
180 const EVP_PKEY * proxy_key);
184 globus_gsi_proxy_handle_t handle,
185 globus_gsi_cert_utils_cert_type_t * type);
189 globus_gsi_proxy_handle_t handle,
190 globus_gsi_cert_utils_cert_type_t type);
195 globus_gsi_proxy_handle_t handle,
200 globus_gsi_proxy_handle_t handle,
205 globus_gsi_proxy_handle_t handle,
206 const unsigned char * policy_data,
212 globus_gsi_proxy_handle_t handle,
213 unsigned char ** policy_data,
219 globus_gsi_proxy_handle_t handle,
220 X509_EXTENSION * extension);
224 globus_gsi_proxy_handle_t handle,
225 STACK_OF(X509_EXTENSION) * extensions);
229 globus_gsi_proxy_handle_t handle,
230 STACK_OF(X509_EXTENSION) ** extension);
234 globus_gsi_proxy_handle_t handle,
239 globus_gsi_proxy_handle_t handle,
244 globus_gsi_proxy_handle_t handle);
246 #ifdef GLOBUS_GSI_PROXY_CORE_COMPAT_0
247 #include "proxycertinfo.h"
249 #define globus_gsi_proxy_handle_get_proxy_cert_info(h,p) \
250 globus_gsi_proxy_handle_get_proxy_cert_info_proxy_ssl(h,p)
251 #define globus_gsi_proxy_handle_set_proxy_cert_info(h,p) \
252 globus_gsi_proxy_handle_set_proxy_cert_info_proxy_ssl(h,p)
255 globus_gsi_proxy_handle_get_proxy_cert_info_proxy_ssl(
256 globus_gsi_proxy_handle_t handle,
257 PROXYCERTINFO ** pci);
260 globus_gsi_proxy_handle_set_proxy_cert_info_proxy_ssl(
261 globus_gsi_proxy_handle_t handle,
262 PROXYCERTINFO * pci);
265 globus_gsi_proxy_handle_get_proxy_cert_info(
266 globus_gsi_proxy_handle_t handle,
267 PROXY_CERT_INFO_EXTENSION ** pci);
270 globus_gsi_proxy_handle_set_proxy_cert_info(
271 globus_gsi_proxy_handle_t handle,
272 PROXY_CERT_INFO_EXTENSION * pci);
277 globus_gsi_proxy_handle_t handle,
278 char ** common_name);
282 globus_gsi_proxy_handle_t handle,
283 const char * common_name);
287 globus_gsi_proxy_handle_t handle,
288 globus_bool_t * is_limited);
292 globus_gsi_proxy_handle_t handle,
293 globus_bool_t is_limited);
297 globus_gsi_proxy_handle_t handle,
298 const EVP_MD ** algorithm);
302 globus_gsi_proxy_handle_t handle,
307 globus_gsi_proxy_handle_t handle,
312 globus_gsi_proxy_handle_t handle,
317 globus_gsi_proxy_handle_t handle,
318 void (**callback)(
int,
int,
void *));
334 globus_gsi_proxy_handle_attrs_t * handle_attrs);
338 globus_gsi_proxy_handle_attrs_t handle_attrs);
342 globus_gsi_proxy_handle_attrs_t a,
343 globus_gsi_proxy_handle_attrs_t * b);
357 globus_gsi_proxy_handle_t handle,
362 globus_gsi_proxy_handle_t handle,
367 globus_gsi_proxy_handle_t handle,
368 globus_gsi_cred_handle_t issuer_credential,
373 globus_gsi_proxy_handle_t handle,
374 globus_gsi_cred_handle_t issuer_credential,
375 globus_gsi_cred_handle_t peer_credential,
376 globus_gsi_cred_handle_t * resigned_credential);
380 globus_gsi_proxy_handle_t handle,
381 globus_gsi_cred_handle_t * proxy_credential,
386 globus_gsi_proxy_handle_t handle,
387 globus_gsi_cred_handle_t issuer,
388 globus_gsi_cred_handle_t * proxy_credential);
392 globus_gsi_proxy_handle_attrs_t handle_attrs,
397 globus_gsi_proxy_handle_attrs_t handle_attrs,
402 globus_gsi_proxy_handle_attrs_t handle_attrs,
407 globus_gsi_proxy_handle_attrs_t handle_attrs,
412 globus_gsi_proxy_handle_attrs_t handle_attrs,
413 const EVP_MD * algorithm);
417 globus_gsi_proxy_handle_attrs_t handle_attrs,
418 const EVP_MD ** algorithm);
422 globus_gsi_proxy_handle_attrs_t handle,
427 globus_gsi_proxy_handle_attrs_t handle,
432 globus_gsi_proxy_handle_attrs_t handle,
433 void (**callback)(
int,
int,
void *));
437 globus_gsi_proxy_handle_attrs_t handle,
438 void (*callback)(
int,
int,
void *));
globus_result_t globus_gsi_proxy_handle_get_common_name(globus_gsi_proxy_handle_t handle, char **common_name)
Get/Set Proxy Common Name.
Definition: globus_gsi_proxy_handle.c:1956
globus_result_t globus_gsi_proxy_handle_set_private_key(globus_gsi_proxy_handle_t handle, const EVP_PKEY *proxy_key)
Set the private key in a GSI Proxy handle.
Definition: globus_gsi_proxy_handle.c:476
globus_result_t globus_gsi_proxy_handle_get_policy(globus_gsi_proxy_handle_t handle, unsigned char **policy_data, int *policy_length, int *policy_NID)
Get Policy.
Definition: globus_gsi_proxy_handle.c:756
globus_result_t globus_gsi_proxy_handle_attrs_get_key_gen_callback(globus_gsi_proxy_handle_attrs_t handle, void(**callback)(int, int, void *))
Get Key Gen Callback.
Definition: globus_gsi_proxy_handle_attrs.c:513
globus_result_t globus_gsi_proxy_handle_add_extension(globus_gsi_proxy_handle_t handle, X509_EXTENSION *extension)
Add X.509 Extensions.
Definition: globus_gsi_proxy_handle.c:847
globus_result_t globus_gsi_proxy_sign_req(globus_gsi_proxy_handle_t handle, globus_gsi_cred_handle_t issuer_credential, BIO *output_bio)
Sign a proxy certificate request.
Definition: globus_gsi_proxy.c:1044
globus_result_t globus_gsi_proxy_handle_get_type(globus_gsi_proxy_handle_t handle, globus_gsi_cert_utils_cert_type_t *type)
Get Proxy Type.
Definition: globus_gsi_proxy_handle.c:538
globus_result_t globus_gsi_proxy_handle_set_extensions(globus_gsi_proxy_handle_t handle, STACK_OF(X509_EXTENSION)*extensions)
Set X.509 Extensions.
Definition: globus_gsi_proxy_handle.c:918
globus_result_t globus_gsi_proxy_handle_attrs_get_keybits(globus_gsi_proxy_handle_attrs_t handle_attrs, int *bits)
Get Key Bits.
Definition: globus_gsi_proxy_handle_attrs.c:176
globus_result_t globus_gsi_proxy_create_req(globus_gsi_proxy_handle_t handle, BIO *output_bio)
Create a proxy credential request.
Definition: globus_gsi_proxy.c:198
globus_result_t globus_gsi_proxy_handle_get_pathlen(globus_gsi_proxy_handle_t handle, int *pathlen)
Get Path Length.
Definition: globus_gsi_proxy_handle.c:1127
globus_result_t globus_gsi_proxy_handle_attrs_set_clock_skew_allowable(globus_gsi_proxy_handle_attrs_t handle, int skew)
Set Clock Skew Allowable.
Definition: globus_gsi_proxy_handle_attrs.c:419
globus_result_t globus_gsi_proxy_handle_get_init_prime(globus_gsi_proxy_handle_t handle, int *init_prime)
Get Init Prime.
Definition: globus_gsi_proxy_handle.c:1786
globus_result_t globus_gsi_proxy_handle_attrs_get_clock_skew_allowable(globus_gsi_proxy_handle_attrs_t handle, int *skew)
Get Clock Skew Allowable.
Definition: globus_gsi_proxy_handle_attrs.c:463
globus_result_t globus_gsi_proxy_handle_destroy(globus_gsi_proxy_handle_t handle)
Destroy a GSI Proxy handle.
Definition: globus_gsi_proxy_handle.c:190
globus_result_t globus_gsi_proxy_handle_clear_cert_info(globus_gsi_proxy_handle_t handle)
Clear Cert Info.
Definition: globus_gsi_proxy_handle.c:1274
globus_result_t globus_gsi_proxy_handle_set_is_limited(globus_gsi_proxy_handle_t handle, globus_bool_t is_limited)
Set/Check Proxy Is Limited.
Definition: globus_gsi_proxy_handle.c:2077
globus_result_t globus_gsi_proxy_create_signed(globus_gsi_proxy_handle_t handle, globus_gsi_cred_handle_t issuer, globus_gsi_cred_handle_t *proxy_credential)
Create Signed Proxy Certificate.
Definition: globus_gsi_proxy.c:1853
globus_result_t globus_gsi_proxy_handle_attrs_set_init_prime(globus_gsi_proxy_handle_attrs_t handle_attrs, int prime)
Set Initial Prime Number.
Definition: globus_gsi_proxy_handle_attrs.c:226
struct globus_l_gsi_proxy_handle_s * globus_gsi_proxy_handle_t
GSI Proxy Handle.
Definition: globus_gsi_proxy.h:120
globus_result_t globus_gsi_proxy_handle_get_req(globus_gsi_proxy_handle_t handle, X509_REQ **req)
Get the certificate request from a GSI Proxy handle.
Definition: globus_gsi_proxy_handle.c:239
globus_result_t globus_gsi_proxy_resign_cert(globus_gsi_proxy_handle_t handle, globus_gsi_cred_handle_t issuer_credential, globus_gsi_cred_handle_t peer_credential, globus_gsi_cred_handle_t *resigned_credential)
Resign an existing certificate into a proxy.
Definition: globus_gsi_proxy.c:856
globus_result_t globus_gsi_proxy_handle_attrs_destroy(globus_gsi_proxy_handle_attrs_t handle_attrs)
Destroy attributes.
Definition: globus_gsi_proxy_handle_attrs.c:108
globus_result_t globus_gsi_proxy_is_limited(globus_gsi_proxy_handle_t handle, globus_bool_t *is_limited)
Definition: globus_gsi_proxy_handle.c:2157
globus_result_t globus_gsi_proxy_handle_get_keybits(globus_gsi_proxy_handle_t handle, int *key_bits)
Get Key Bits.
Definition: globus_gsi_proxy_handle.c:1731
globus_result_t globus_gsi_proxy_handle_attrs_get_init_prime(globus_gsi_proxy_handle_attrs_t handle_attrs, int *prime)
Get Initial Prime Number.
Definition: globus_gsi_proxy_handle_attrs.c:268
globus_result_t globus_gsi_proxy_handle_attrs_get_signing_algorithm(globus_gsi_proxy_handle_attrs_t handle_attrs, const EVP_MD **algorithm)
Get Signing Algorithm.
Definition: globus_gsi_proxy_handle_attrs.c:368
globus_result_t globus_gsi_proxy_handle_set_req(globus_gsi_proxy_handle_t handle, X509_REQ *req)
Set Request Set the certificate request in a GSI Proxy handle.
Definition: globus_gsi_proxy_handle.c:298
globus_result_t globus_gsi_proxy_handle_init(globus_gsi_proxy_handle_t *handle, globus_gsi_proxy_handle_attrs_t handle_attrs)
Initialize a GSI Proxy handle.
Definition: globus_gsi_proxy_handle.c:71
globus_result_t globus_gsi_proxy_handle_get_extensions(globus_gsi_proxy_handle_t handle, STACK_OF(X509_EXTENSION)**extension)
Get X.509 Extensions.
Definition: globus_gsi_proxy_handle.c:994
globus_result_t globus_gsi_proxy_handle_set_type(globus_gsi_proxy_handle_t handle, globus_gsi_cert_utils_cert_type_t type)
Get Proxy Type.
Definition: globus_gsi_proxy_handle.c:590
globus_result_t globus_gsi_proxy_handle_get_key_gen_callback(globus_gsi_proxy_handle_t handle, void(**callback)(int, int, void *))
Get Callback for Creating Keys.
Definition: globus_gsi_proxy_handle.c:1896
struct globus_l_gsi_proxy_handle_attrs_s * globus_gsi_proxy_handle_attrs_t
Handle Attributes.
Definition: globus_gsi_proxy.h:136
globus_result_t globus_gsi_proxy_handle_get_clock_skew_allowable(globus_gsi_proxy_handle_t handle, int *skew)
Get Clock Skew.
Definition: globus_gsi_proxy_handle.c:1842
globus_result_t globus_gsi_proxy_handle_set_common_name(globus_gsi_proxy_handle_t handle, const char *common_name)
Definition: globus_gsi_proxy_handle.c:2019
globus_result_t globus_gsi_proxy_handle_attrs_set_keybits(globus_gsi_proxy_handle_attrs_t handle_attrs, int bits)
Set Key Bits.
Definition: globus_gsi_proxy_handle_attrs.c:136
globus_result_t globus_gsi_proxy_handle_attrs_copy(globus_gsi_proxy_handle_attrs_t a, globus_gsi_proxy_handle_attrs_t *b)
Copy Attributes.
Definition: globus_gsi_proxy_handle_attrs.c:601
globus_result_t globus_gsi_proxy_handle_set_time_valid(globus_gsi_proxy_handle_t handle, int time_valid)
Set Time Valid.
Definition: globus_gsi_proxy_handle.c:1233
globus_result_t globus_gsi_proxy_handle_set_pathlen(globus_gsi_proxy_handle_t handle, long pathlen)
Set Path Length.
Definition: globus_gsi_proxy_handle.c:1066
globus_result_t globus_gsi_proxy_inquire_req(globus_gsi_proxy_handle_t handle, BIO *input_bio)
Inquire a proxy credential request.
Definition: globus_gsi_proxy.c:650
globus_result_t globus_gsi_proxy_assemble_cred(globus_gsi_proxy_handle_t handle, globus_gsi_cred_handle_t *proxy_credential, BIO *input_bio)
Assemble a proxy credential.
Definition: globus_gsi_proxy.c:2101
globus_result_t globus_gsi_proxy_handle_get_time_valid(globus_gsi_proxy_handle_t handle, int *time_valid)
Get Time Valid.
Definition: globus_gsi_proxy_handle.c:1183
globus_result_t globus_gsi_proxy_handle_attrs_init(globus_gsi_proxy_handle_attrs_t *handle_attrs)
Initialize Attributes.
Definition: globus_gsi_proxy_handle_attrs.c:50
globus_result_t globus_gsi_proxy_handle_get_private_key(globus_gsi_proxy_handle_t handle, EVP_PKEY **proxy_key)
Get the private key from a GSI Proxy handle.
Definition: globus_gsi_proxy_handle.c:360
globus_result_t globus_gsi_proxy_handle_attrs_set_key_gen_callback(globus_gsi_proxy_handle_attrs_t handle, void(*callback)(int, int, void *))
Set Key Gen Callback.
Definition: globus_gsi_proxy_handle_attrs.c:563
globus_result_t globus_gsi_proxy_handle_set_policy(globus_gsi_proxy_handle_t handle, const unsigned char *policy_data, int policy_length, int policy_NID)
Set Policy.
Definition: globus_gsi_proxy_handle.c:664
globus_result_t globus_gsi_proxy_handle_attrs_set_signing_algorithm(globus_gsi_proxy_handle_attrs_t handle_attrs, const EVP_MD *algorithm)
Set Signing Algorithm.
Definition: globus_gsi_proxy_handle_attrs.c:321
globus_result_t globus_gsi_proxy_handle_get_signing_algorithm(globus_gsi_proxy_handle_t handle, const EVP_MD **algorithm)
Get Signing Algorithm.
Definition: globus_gsi_proxy_handle.c:1675