globus_gsi_proxy_handle(3)
π NAME π
globus_gsi_proxy_handle(3) β Handle Management
Create/Destroy/Modify a GSI Proxy Handle.
β¨ SYNOPSIS β¨
Typedefs
typedef struct globus_l_gsi_proxy_handle_s * globus_gsi_proxy_handle_tβ GSI Proxy Handle.
Functions
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_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_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_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.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_language_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 *ext)β Add X.509 Extensions.globus_result_t globus_gsi_proxy_handle_set_extensions (globus_gsi_proxy_handle_t handle, STACK_OF(X509_EXTENSION) *exts)β Set X.509 Extensions.globus_result_t globus_gsi_proxy_handle_get_extensions (globus_gsi_proxy_handle_t handle, STACK_OF(X509_EXTENSION) **exts)β 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_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_clear_cert_info (globus_gsi_proxy_handle_t handle)β Clear Cert Info.globus_result_t globus_gsi_proxy_handle_get_proxy_cert_info_openssl (globus_gsi_proxy_handle_t handle, PROXY_CERT_INFO_EXTENSION **pci)β Get Cert Info.globus_result_t globus_gsi_proxy_handle_set_proxy_cert_info_openssl (globus_gsi_proxy_handle_t handle, PROXY_CERT_INFO_EXTENSION *pci)β Set Cert Info.globus_result_t globus_gsi_proxy_handle_get_signing_algorithm (globus_gsi_proxy_handle_t handle, const EVP_MD **signing_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_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_is_limited (globus_gsi_proxy_handle_t handle, globus_bool_t is_limited)β Set/Check Proxy Is Limited.
π Detailed Description π
Create/Destroy/Modify a GSI Proxy Handle.
Okay so inside the Globus GSI Proxy Library, every single proxy operation needs a handle parameter. No handle, no vibes, periodt. Right now, only one proxy operation can be in progress at a time per proxy handle β it's giving exclusive, main-character energy. π
This section defines the operations to create, modify, and destroy GSI Proxy handles. β¨
𧬠Typedef Documentation π§¬
typedef struct globus_l_gsi_proxy_handle_s* globus_gsi_proxy_handle_t
GSI Proxy Handle. An GSI Proxy handle is used to associate state with a group of operations. Handles can have immutable attributes associated with them. All proxy operations take a handle pointer as a parameter.
See also:
globus_gsi_proxy_handle_init()globus_gsi_proxy_handle_destroy()Handle Attributes
π οΈ Function Documentation π οΈ
globus_result_t globus_gsi_proxy_handle_add_extension (globus_gsi_proxy_handle_t handle, X509_EXTENSION * ext)
Add X.509 Extensions. Add an X.509 extension to the GSI Proxy handle to be added to certificate.
This function adds a X.509 extension to the proxy certificate. β¨
Parameters
handleβ The handle for the proxy to which the extension should be added.extβ The extension to be added.
Returns GLOBUS_SUCCESS if the addition was successful, otherwise an error is returned.
See also:
globus_gsi_proxy_handle_get_extensions()globus_gsi_proxy_handle_set_extensions()
globus_result_t globus_gsi_proxy_handle_clear_cert_info (globus_gsi_proxy_handle_t handle)
Clear Cert Info. Clear the proxy cert info extension stored in the GSI Proxy handle.
This function clears proxy cert info extension related setting in the GSI Proxy handle.
Parameters
handleβ The handle for which to clear the proxy cert info extension.
Returns GLOBUS_SUCCESS if the handle is valid, otherwise an error is returned.
globus_result_t globus_gsi_proxy_handle_get_clock_skew_allowable (globus_gsi_proxy_handle_t handle, int * skew)
Get Clock Skew. Get the clock skew of the proxy handle.
Parameters
handleβ The handle to get the clock skew of.skewβ The resulting clock skew.
Returns GLOBUS_SUCCESS unless an error occurred, in which case an error object identifier (in the form of a globus_result_t) is returned.
globus_result_t globus_gsi_proxy_handle_get_common_name (globus_gsi_proxy_handle_t handle, char ** common_name)
Get/Set Proxy Common Name. Get the proxy common name stored in the GSI Proxy handle.
This function retrieves the proxy common name from the GSI Proxy handle. The common name only impacts draft compliant proxies.
Parameters
handleβ The handle from which to get the proxy common name.common_nameβ Contains the proxy common name upon successful return. If the handle does not contain a common name, this parameter will beNULLupon return.
Returns GLOBUS_SUCCESS upon success. GLOBUS_GSI_PROXY_ERROR_WITH_HANDLE if handle is invalid.
globus_result_t globus_gsi_proxy_handle_get_extensions (globus_gsi_proxy_handle_t handle, STACK_OF(X509_EXTENSION) ** exts)
Get X.509 Extensions. Get the X.509 extensions from a GSI Proxy handle.
This function returns the X.509 extensions from the proxy certificate.
Parameters
handleβ The handle for the proxy from which the extensions should be retrieved.extsβ The variable to hold the extensions. The caller is responsible for freeing the extensions withsk_X509_EXTENSION_free()when they are done with them.
Returns GLOBUS_SUCCESS if the retrieval was successful, otherwise an error is returned.
See also:
globus_gsi_proxy_handle_add_extension()globus_gsi_proxy_handle_set_extensions()
globus_result_t globus_gsi_proxy_handle_get_init_prime (globus_gsi_proxy_handle_t handle, int * init_prime)
Get Init Prime. Get the init prime of the proxy handle.
Parameters
handleβ The handle to get the init prime used in generating the key pair.init_primeβ The resulting init prime.
Returns GLOBUS_SUCCESS unless an error occurred, in which case an error object identifier (in the form of a globus_result_t) is returned.
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. Get the callback for creating the public/private key pair.
Parameters
handleβ The proxy handle to get the callback from.callbackβ Parameter used for returning the callback.
Returns GLOBUS_SUCCESS or an error object identifier.
globus_result_t globus_gsi_proxy_handle_get_keybits (globus_gsi_proxy_handle_t handle, int * key_bits)
Get Key Bits. Get the key bits used for the pub/private key pair of the proxy.
Parameters
handleβ The proxy handle to get the key bits of.key_bitsβ key bits of the proxy handle.
Returns GLOBUS_SUCCESS unless an error occurred, in which case, a globus error object ID is returned GLOBUS_SUCCESS.
globus_result_t globus_gsi_proxy_handle_get_pathlen (globus_gsi_proxy_handle_t handle, int * pathlen)
Get Path Length. Get the path length from the GSI Proxy handle.
This function gets the path length that is being used in the proxy cert info extension.
Parameters
handleβ The handle to be interrogated.pathlenβ The maximum allowable path length.
Returns GLOBUS_SUCCESS if the handle is valid, otherwise an error is returned.
See also:
globus_gsi_proxy_handle_set_pathlen()
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. Get the policy from the GSI Proxy handle.
This function gets the policy that is being used in the proxy cert info extension.
Parameters
handleβ The handle to be interrogated.policy_dataβ The policy data.policy_lengthβ The length of the returned policy.policy_NIDβ The NID of the policy language.
Returns GLOBUS_SUCCESS if the handle is valid, otherwise an error is returned.
See also:
globus_gsi_proxy_handle_set_policy()
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. Copies the private key associated with the proxy handle to the value pointed to by the proxy_key parameter.
Parameters
handleβ The handle from which to get the private key.proxy_keyβ Parameter used to return the key. It is the users responsibility to free the returned key by callingEVP_PKEY_free().
Returns GLOBUS_SUCCESS unless an error occurred, in which case, a globus error object ID is returned.
And if you're feeling curious, the related function is globus_gsi_proxy_handle_set_private_key(). π
πΈ globus_result_t globus_gsi_proxy_handle_get_proxy_cert_info_openssl πΈ
globus_result_t globus_gsi_proxy_handle_get_proxy_cert_info_openssl
(globus_gsi_proxy_handle_t handle, PROXY_CERT_INFO_EXTENSION ** pci)
Get Cert Info. This one is all about snagging the proxy cert info extension that's stored in your GSI Proxy handle. Like, it retrieves it for you. So fetch. π
Parameters
handleβ The handle from which to get the proxy cert info extension. It's the source, bestie.pciβ Contains the proxy cert info extension upon successful return. If the handle doesn't have apciextension, this parameter will beNULLupon return. So if it's empty, you get aNULL, no cap.
Returns
GLOBUS_SUCCESSupon success. Slay! β¨GLOBUS_GSI_PROXY_ERROR_WITH_HANDLEifhandleis invalid. Oops. πGLOBUS_GSI_PROXY_ERROR_WITH_PROXYCERTINFOif thepcipointer is invalid or if the get failed. Big yikes. π
π¦ globus_result_t globus_gsi_proxy_handle_get_req π¦
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. It copies the certificate request associated with the proxy handle to the req parameter. So you get the req, literally. π
Parameters
handleβ The handle from which to get the certificate request. That's where it's at.reqβ Parameter used to return the request. It is the user's responsibility to free the returned request. So don't forget to free it, bestie. Memory leaks are not the vibe. π§Ή
Returns
GLOBUS_SUCCESSunless an error occurred, in which case, a globus error object ID is returned. So if it's not success, you get an error ID. Periodt.
See also
globus_gsi_proxy_handle_set_req()β the setter, iykyk.
π globus_result_t globus_gsi_proxy_handle_get_signing_algorithm π
globus_result_t globus_gsi_proxy_handle_get_signing_algorithm
(globus_gsi_proxy_handle_t handle, const EVP_MD ** signing_algorithm)
Get Signing Algorithm. Get the signing algorithm used to sign the proxy cert request. So you can see what's signing the tea. π
Parameters
handleβ The proxy handle containing the type of signing algorithm used. It's the holder of the algo.signing_algorithmβ Signing algorithm of the proxy handle. This is where it gets returned.
Return values
GLOBUS_SUCCESSunless an error occurred, in which case, a globus error object ID is returned. Same energy as before. π
π globus_result_t globus_gsi_proxy_handle_get_time_valid π
globus_result_t globus_gsi_proxy_handle_get_time_valid
(globus_gsi_proxy_handle_t handle, int * time_valid)
Get Time Valid. Get the validity time of the proxy. Like, when does it expire? β°
Parameters
handleβ The proxy handle to get the expiration date of. It's the one with the deets.time_validβ Expiration date of the proxy handle. Returned here.
Returns
GLOBUS_SUCCESSunless an error occurred, in which case, a globus error object ID is returned. You know the drill. πββοΈ
π globus_result_t globus_gsi_proxy_handle_get_type π
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. Determine the type of proxy that will be generated when using this handle. So you know what kind of proxy you're getting. π΅οΈββοΈ
Parameters
handleβ The handle from which to get the type. The source.typeβ Parameter used to return the type. It gets filled in.
Returns
GLOBUS_SUCCESSunless an error occurred, in which case, a globus error object ID is returned. Standard.
See also
globus_gsi_proxy_handle_set_type()β the setter, obviously.
β¨ globus_result_t globus_gsi_proxy_handle_init β¨
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. Initialize a proxy handle which can be used in subsequent operations. The handle may only be used in one sequence of operations at a time. So don't try to multitask with it, bestie. One thing at a time. π§ββοΈ
Parameters
handleβ A pointer to the handle to be initialized. If the handle is originallyNULL, space is allocated for it. Otherwise, the current values of the handle are overwritten. So it's like a fresh start or a reset.handle_attrsβ Initial attributes to be used to create this handle. You gotta give it some initial vibes.
Returns
GLOBUS_SUCCESSunless an error occurred, in which case, a globus error object ID is returned. Yep.
See also
globus_gsi_proxy_handle_destroy()β to clean up after, because we don't leave messes. π§Ό
πΈ globus_result_t globus_gsi_proxy_handle_set_extensions πΈ
globus_result_t globus_gsi_proxy_handle_set_extensions
(globus_gsi_proxy_handle_t handle, STACK_OF(X509_EXTENSION) * exts)
Set X.509 Extensions. Set the X.509 extensions from a GSI Proxy handle. This function sets the X.509 extensions for a proxy certificate. So you're adding some extra flair to your cert. π
Parameters
handleβ The handle for the proxy from which the extension should be set. It's the one getting the extensions.extsβ The extensions to be set. Can beNULLto clear extensions. So if you passNULL, you're clearing them. Clean slate. π§½
Returns
GLOBUS_SUCCESSif the addition was successful, otherwise an error is returned. Slay if it works, sad if not.
See also
globus_gsi_proxy_handle_add_extension()β to add just one, maybe.globus_gsi_proxy_handle_get_extensions()β to get them back.
π¦ globus_result_t globus_gsi_proxy_handle_set_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. Set the limited proxy flag on the proxy handle. So you can mark it as limited or not. π«
Parameters
handleβ the proxy handle. The one and only.is_limitedβ boolean value to set on the proxy handle.globus_bool_t, soGLOBUS_TRUEorGLOBUS_FALSE. You decide.
Returns
GLOBUS_SUCCESSunless an error occurred, in which case, a globus error object ID is returned. The usual.
π globus_result_t globus_gsi_proxy_handle_set_pathlen π
globus_result_t globus_gsi_proxy_handle_set_pathlen
(globus_gsi_proxy_handle_t handle, long pathlen)
Set Path Length. Set the path length to be used in the GSI Proxy handle. This function sets the path length to be used in the proxy cert info extension. So it's about how long the chain can be. π
Parameters
handleβ The handle to be modified. The one getting the pathlen.pathlenβ The maximum allowable path length. Along. Don't make it too long, or do, idk.
Returns
GLOBUS_SUCCESSif the handle is valid, otherwise an error is returned. So if the handle is good, you're good.
See also
globus_gsi_proxy_handle_get_pathlen()β to get it back.
π globus_result_t globus_gsi_proxy_handle_set_policy π
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_language_NID)
Set Policy. Set the policy to be used in the GSI Proxy handle. This function sets the policy to be used in the proxy cert info extension. So you're defining the rules. π
Parameters
handleβ The handle to be modified. The one getting the policy.policy_dataβ The policy data. A pointer to unsigned char. The actual policy.policy_lengthβ The length of the policy data. Anint. Gotta know how long it is.policy_language_NIDβ The NID of the policy language. Anint. The language identifier.
Returns
GLOBUS_SUCCESSif the handle and its associated fields are valid otherwise an error is returned. So if everything checks out, you get success.
See also
globus_gsi_proxy_handle_get_policy()β to get the policy back.
β¨ globus_result_t globus_gsi_proxy_handle_set_proxy_cert_info_openssl β¨
globus_result_t globus_gsi_proxy_handle_set_proxy_cert_info_openssl
(globus_gsi_proxy_handle_t handle, PROXY_CERT_INFO_EXTENSION * pci)
Set Cert Info. Set the proxy cert info extension stored in the GSI Proxy handle. This function sets the proxy cert info extension in the GSI Proxy handle. So you're putting the info in. π₯
Parameters
handleβ The handle for which to set the proxy cert info extension. The target.pciβ The proxy cert info extension to set. The thing you're setting.
Return values
GLOBUS_SUCCESSβ Success. πGLOBUS_GSI_PROXY_ERROR_WITH_HANDLEβ Handle is invalid. Oops.GLOBUS_GSI_PROXY_ERROR_WITH_PROXYCERTINFOβpcipointer is invalid or if the set failed. Big yikes.
π globus_result_t globus_gsi_proxy_handle_set_time_valid π
globus_result_t globus_gsi_proxy_handle_set_time_valid
(globus_gsi_proxy_handle_t handle, int time_valid)
Set Time Valid. Set the validity time of the proxy. So you're setting when it expires. β³
Parameters
handleβ The proxy handle to set the expiration date for. The one getting the time.time_validβ Desired expiration date of the proxy. Anint. When you want it to expire.
Returns
GLOBUS_SUCCESSunless an error occurred, in which case, a globus error object ID is returnedGLOBUS_SUCCESS. (Yes, it says that. The original is a little extra, but we keep it exactly. π )
π
globus_result_t globus_gsi_proxy_handle_set_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, it says "Get Proxy Type" but it's actually setting. Original is quirky. We'll keep it.) Set the type of proxy that will be generated when using this handle. Note that this will have no effect when generating a proxy from a proxy. In that case the generated proxy will inherit the type of the parent. So if you're making a proxy from a proxy, this setting is ignored, and it takes after the parent. Like mother like daughter. π©βπ§
Parameters
handleβ The handle for which to set the type. The one getting the type.typeβ Parameter used to pass the type. The type you want.
Returns
GLOBUS_SUCCESSunless an error occurred, in which case, a globus error object ID is returned. Standard.
See also
globus_gsi_proxy_handle_set_type()β yes, it's referencing itself. Iconic. π
Author
Generated automatically by Doxygen for globus_gsi_proxy_core from the source code. So no human wrote this, it's all Doxygen magic. π€β¨
And that's the tea, bestie! This manual page is from globus_gsi_proxy_core, version 9.9. No cap, that's the version. And the date? Well, the footer didn't show one, so it's giving "timeless". π Stay slay, and don't forget to free your requests! π«Ά
π¦ 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