globus_gsi_proxy.h(3)
π globus_gsi_proxy.h β the Globus GSI Proxy API π
okay bestie, sit down, hydrate, because we're reading a section-3 library manual page together and it's actually kind of a serve. This is globus_gsi_proxy.h, from the globus_gsi_proxy_core library β all the C functions you need to make, sign, poke at, and generally vibe with GSI proxy certificates. π
β¨ NAME β¨
globus_gsi_proxy.h β the Globus GSI Proxy API. That's it, that's the name. Short, sweet, iconic.
πΈ SYNOPSIS πΈ
π§ Macros
#define GLOBUS_GSI_PROXY_MODULEβ the module descriptor. Yes ma'am, she's a macro.
π Typedefs
typedef struct globus_l_gsi_proxy_handle_s * globus_gsi_proxy_handle_tβ the GSI Proxy Handle. Your main character. πtypedef struct globus_l_gsi_proxy_handle_attrs_s * globus_gsi_proxy_handle_attrs_tβ the Handle Attributes. Her supportive bestie.
π¦ Functions
okay this is the long part and I'm not skipping a single one, because every function here is somebody's blorbo. π«Ά
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.globus_result_t globus_gsi_proxy_handle_destroy (globus_gsi_proxy_handle_t handle)β Destroy a GSI Proxy handle.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.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.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.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.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.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. (yes, the docs say "Get" on the setter too, and honestly? she contains multitudes. π)globus_result_t globus_gsi_proxy_handle_get_time_valid (globus_gsi_proxy_handle_t handle, int *time_valid)β Get Time Valid.globus_result_t globus_gsi_proxy_handle_set_time_valid (globus_gsi_proxy_handle_t handle, int time_valid)β Set Time Valid.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.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.globus_result_t globus_gsi_proxy_handle_add_extension (globus_gsi_proxy_handle_t handle, X509_EXTENSION *extension)β Add X.509 Extensions.globus_result_t globus_gsi_proxy_handle_set_extensions (globus_gsi_proxy_handle_t handle, STACK_OF(X509_EXTENSION) *extensions)β Set X.509 Extensions.globus_result_t globus_gsi_proxy_handle_get_extensions (globus_gsi_proxy_handle_t handle, STACK_OF(X509_EXTENSION) **extension)β Get X.509 Extensions.globus_result_t globus_gsi_proxy_handle_set_pathlen (globus_gsi_proxy_handle_t handle, long pathlen)β Set Path Length.globus_result_t globus_gsi_proxy_handle_get_pathlen (globus_gsi_proxy_handle_t handle, int *pathlen)β Get Path Length.globus_result_t globus_gsi_proxy_handle_clear_cert_info (globus_gsi_proxy_handle_t handle)β Clear Cert Info.globus_result_t globus_gsi_proxy_handle_get_common_name (globus_gsi_proxy_handle_t handle, char **common_name)β Get/Set Proxy Common Name.globus_result_t globus_gsi_proxy_handle_set_common_name (globus_gsi_proxy_handle_t handle, const char *common_name)β also Get/Set Proxy Common Name, she's the setter half of the duo.globus_result_t globus_gsi_proxy_is_limited (globus_gsi_proxy_handle_t handle, globus_bool_t *is_limited)β Set/Check Proxy Is Limited.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.globus_result_t globus_gsi_proxy_handle_get_signing_algorithm (globus_gsi_proxy_handle_t handle, const EVP_MD **algorithm)β Get Signing Algorithm.globus_result_t globus_gsi_proxy_handle_get_keybits (globus_gsi_proxy_handle_t handle, int *key_bits)β Get Key Bits.globus_result_t globus_gsi_proxy_handle_get_init_prime (globus_gsi_proxy_handle_t handle, int *init_prime)β Get Init Prime.globus_result_t globus_gsi_proxy_handle_get_clock_skew_allowable (globus_gsi_proxy_handle_t handle, int *skew)β Get Clock Skew.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.globus_result_t globus_gsi_proxy_handle_attrs_init (globus_gsi_proxy_handle_attrs_t *handle_attrs)β Initialize Attributes.globus_result_t globus_gsi_proxy_handle_attrs_destroy (globus_gsi_proxy_handle_attrs_t handle_attrs)β Destroy attributes.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.globus_result_t globus_gsi_proxy_create_req (globus_gsi_proxy_handle_t handle, BIO *output_bio)β Create a proxy credential request.globus_result_t globus_gsi_proxy_inquire_req (globus_gsi_proxy_handle_t handle, BIO *input_bio)β Inquire a proxy credential request.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.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.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.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.globus_result_t globus_gsi_proxy_handle_attrs_set_keybits (globus_gsi_proxy_handle_attrs_t handle_attrs, int bits)β Set Key Bits.globus_result_t globus_gsi_proxy_handle_attrs_get_keybits (globus_gsi_proxy_handle_attrs_t handle_attrs, int *bits)β Get Key Bits.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.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.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.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.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.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.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.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.
π Detailed Description π
Globus GSI Proxy API. That's the whole detailed description, bestie. She said "detailed" and then gave us one line. Lowkey relatable. πβ¨
π Function Documentation π
okay so the docs only go deep on a handful of these, and we're giving them the full red-carpet treatment. π
π globus_result_t globus_gsi_proxy_handle_destroy (globus_gsi_proxy_handle_t handle)
Destroy a GSI Proxy handle. Free the memory used by a GSI proxy handle. Yes, we're freeing her, and that's a slay, not a tragedy β this is how handles get their rest. πΈ
Parameters
handleβ The handle to be destroyed.
Returns
GLOBUS_SUCCESSunless an error occurred, in which case, a globus error object ID is returned.
See also
globus_gsi_proxy_handle_init()
π¦ globus_result_t globus_gsi_proxy_handle_set_common_name (globus_gsi_proxy_handle_t handle, const char * common_name)
Set the proxy common name stored in the GSI Proxy handle.
This function sets the proxy common name in the GSI Proxy handle. Note that the common name is only used for draft compliant proxies. π (important lore, don't skip it.)
Parameters
handleβ The handle for which to set the proxy common name.common_nameβ The proxy common name to set.
Returns
GLOBUS_SUCCESSupon successGLOBUS_GSI_PROXY_ERROR_WITH_HANDLEifhandleis invalid
π 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. Copies the private key pointed to by proxy_key to the handle. It's giving "dupe it and keep it", not "borrow it and give it back". π
Parameters
handleβ The handle for which to set the private keyproxy_keyβ Parameter used to pass the key
Returns
GLOBUS_SUCCESSunless an error occurred, in which case, a globus error object ID is returned
See also
globus_gsi_proxy_handle_get_private_key()
β¨ 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. (That double "Set" is canon, we don't edit canon. π)
Parameters
handleβ The handle for which to set the certificate requestreqβ Request to be copied to handle.
Returns
GLOBUS_SUCCESSunless an error occurred, in which case, a globus error object ID is returned
See also
globus_gsi_proxy_handle_get_req()
π§ globus_result_t globus_gsi_proxy_is_limited (globus_gsi_proxy_handle_t handle, globus_bool_t * is_limited)
Check to see the proxy is a limited proxy. Sometimes you just gotta know if she's limited, fr fr. π₯
Parameters
handleβ the proxy handle to checkis_limitedβ boolean value to set depending on the type of proxy
Returns
GLOBUS_SUCCESSunless an error occurred, in which case, a globus error object ID is returned
π Author π
Generated automatically by Doxygen for globus_gsi_proxy_core from the source code. Not a human author, a robot did this, and honestly the robot ate. π€β¨
and that's the whole page, bestie!! π«Ά This was globus_gsi_proxy.h(3) from globus_gsi_proxy_core, Version 9.9. Go make some proxies, stay hydrated, and remember: you're the main character of your own certificate chain. ππΈππ¦π
π
π¦ where this page comes from
- epel 10: globus-gsi-proxy-core-doc 9.9-1.el10_2 Β· Apache-2.0
- fedora 43: globus-gsi-proxy-core-doc 9.9-1.fc43 Β· Apache-2.0
- fedora 44: globus-gsi-proxy-core-doc 9.9-1.fc44 Β· Apache-2.0
- ubuntu resolute: libglobus-gsi-proxy-core-doc 9.9-1 Β· Apache-2.0
- ubuntu stonking: libglobus-gsi-proxy-core-doc 9.9-2build1 Β· Apache-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms