globus_gsi_credential.h(3)
π globus_gsi_credential.h β the Globus GSI Credential Library β¨
okay bestie, sit down, hydrate, because this is the globus_gsi_credential.h manual page from the Library Functions Manual and it's lowkey a whole vibe. it's the header for the Globus GSI Credential Library β yes, the one that handles your certs, your keys, your proxies, your whole identity situation. π
πΈ NAME πΈ
globus_gsi_credential.h β the Globus GSI Credential Library. it's giving "i hold your credentials and i hold them responsibly." π
β¨ SYNOPSIS β¨
first things first, you gotta invite the whole friend group in:
#include 'globus_common.h'
#include 'globus_error_openssl.h'
#include 'globus_gsi_cred_constants.h'
#include 'globus_gsi_callback.h'
#include 'globus_gsi_cert_utils.h'
#include 'openssl/x509.h'
#include 'openssl/bio.h'
#include 'openssl/ssl.h'
#include 'globus_error_generic.h'
π§ Macros
#define GLOBUS_GSI_CREDENTIAL_MODULEβ the module macro. it's here, it exists, it said hi. π
π¦ Typedefs
typedef struct globus_l_gsi_cred_handle_s * globus_gsi_cred_handle_tβ your credential handle. the main character fr.typedef struct globus_l_gsi_cred_handle_attrs_s * globus_gsi_cred_handle_attrs_tβ the handle's attributes. the handle's supportive bestie. π
π Functions
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. birth of a legend, no cap.globus_result_t globus_gsi_cred_handle_destroy (globus_gsi_cred_handle_t handle)β Destroy the credential handle. it lived a good life. ποΈglobus_result_t globus_gsi_cred_handle_copy (globus_gsi_cred_handle_t source, globus_gsi_cred_handle_t *dest)β Copy a handle. twin energy.globus_result_t globus_gsi_cred_handle_attrs_init (globus_gsi_cred_handle_attrs_t *handle_attrs)β Initialize credential handle attributes. β¨globus_result_t globus_gsi_cred_handle_attrs_destroy (globus_gsi_cred_handle_attrs_t handle_attrs)β Destroy credential handle attributes. bye bestie π«Ά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.globus_result_t globus_gsi_cred_read (globus_gsi_cred_handle_t handle, X509_NAME *desired_subject)β Read a credential.globus_result_t globus_gsi_cred_read_proxy (globus_gsi_cred_handle_t handle, const char *proxy_filename)β Read proxy credential. from a file, with a filename and everything. πglobus_result_t globus_gsi_cred_read_proxy_bio (globus_gsi_cred_handle_t handle, BIO *bio)β Read proxy credential from a BIO. same energy, different source.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. π€«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.globus_result_t globus_gsi_cred_read_cert_bio (globus_gsi_cred_handle_t handle, BIO *bio)β Read a certificate chain from a BIO.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. yes it gives you the handle, the cert, the chain AND the subject. overachiever behavior π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.globus_result_t globus_gsi_cred_write (globus_gsi_cred_handle_t handle, BIO *bio)β Write Credential.globus_result_t globus_gsi_cred_write_proxy (globus_gsi_cred_handle_t handle, const char *proxy_filename)β Write a proxy credential.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.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. time travel but make it PKI. β°globus_result_t globus_gsi_cred_verify (globus_gsi_cred_handle_t handle)β Verify a credential.globus_result_t globus_gsi_cred_get_X509_subject_name (globus_gsi_cred_handle_t handle, X509_NAME **subject_name)β Get credential subject name. the raw X509 version.globus_result_t globus_gsi_cred_get_subject_name (globus_gsi_cred_handle_t handle, char **subject_name)β Get credential subject name. the string version, for when you want it readable.globus_result_t globus_gsi_cred_get_policies (globus_gsi_cred_handle_t handle, STACK_OF(OPENSSL_STRING) **policies)β Get certificate chain policies.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.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.globus_result_t globus_gsi_cred_get_issuer_name (globus_gsi_cred_handle_t handle, char **issuer_name)β Get issuer name.globus_result_t globus_gsi_cred_get_X509_identity_name (globus_gsi_cred_handle_t handle, X509_NAME **identity_name)β Get X.509 identity.globus_result_t globus_gsi_cred_get_identity_name (globus_gsi_cred_handle_t handle, char **identity_name)β Get identity name. who even are you? this knows. πͺglobus_result_t globus_gsi_cred_set_cert (globus_gsi_cred_handle_t handle, X509 *cert)β Set the credential's certificate.globus_result_t globus_gsi_cred_set_key (globus_gsi_cred_handle_t handle, EVP_PKEY *key)β Set the credential's private key.globus_result_t globus_gsi_cred_set_cert_chain (globus_gsi_cred_handle_t handle, STACK_OF(X509) *cert_chain)β Set the certificate chain.globus_result_t globus_gsi_cred_get_cert (globus_gsi_cred_handle_t handle, X509 **cert)β Get the credential's certificate.globus_result_t globus_gsi_cred_get_key (globus_gsi_cred_handle_t handle, EVP_PKEY **key)β Get the credential's private key.globus_result_t globus_gsi_cred_get_cert_chain (globus_gsi_cred_handle_t handle, STACK_OF(X509) **cert_chain)β Get the certificate chain.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.globus_result_t globus_gsi_cred_get_lifetime (globus_gsi_cred_handle_t handle, time_t *lifetime)β Get credential lifetime.globus_result_t globus_gsi_cred_get_goodtill (globus_gsi_cred_handle_t handle, time_t *goodtill)β Get credential expiration.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.globus_result_t globus_gsi_cred_get_key_bits (globus_gsi_cred_handle_t handle, int *key_bits)β Get credential strength. πͺ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.
π Detailed Description π
Globus GSI Credential Library. that's the whole thing, bestie. that's what we're working with. it's iconic, it's load-bearing, and every function above is in this file. periodt. π
π Author
Sam Lang, Sam Meder β the actual authors, absolute legends, we love them, we thank them. π
π Author π
okay so this page itself? it was Generated automatically by Doxygen for globus_gsi_credential from the source code. so no human hand-typed it, it just materialized. very demure, very automated. β¨
and that's the whole page β this is globus_gsi_credential.h(3), sitting pretty at Version 8.5, in the globus_gsi_credential era. go read your certs, bestie, you got this π«Άππ
π¦ where this page comes from
- epel 10: globus-gsi-credential-doc 8.5-1.el10_2 Β· Apache-2.0
- fedora 43: globus-gsi-credential-doc 8.5-1.fc43 Β· Apache-2.0
- fedora 44: globus-gsi-credential-doc 8.5-2.fc44 Β· Apache-2.0
- ubuntu resolute: libglobus-gsi-credential-doc 8.5-1 Β· Apache-2.0
- ubuntu stonking: libglobus-gsi-credential-doc 8.5-2build1 Β· Apache-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms