24#ifndef GLOBUS_GSI_CERT_UTILS_H
25#define GLOBUS_GSI_CERT_UTILS_H
28#include "globus_common.h"
34#ifndef GLOBUS_GLOBAL_DOCUMENT_SET
89#define GLOBUS_GSI_CERT_UTILS_MODULE (&globus_i_gsi_cert_utils_module)
92globus_module_descriptor_t globus_i_gsi_cert_utils_module;
94#define _CUSL(s) globus_common_i18n_get_string(GLOBUS_GSI_CERT_UTILS_MODULE,\
99#include "openssl/x509.h"
100#include "openssl/asn1.h"
101#include "globus_error_openssl.h"
102#include "globus_gsi_cert_utils_constants.h"
104#define GLOBUS_GSI_CERT_UTILS_IS_PROXY(cert_type) \
105 ((cert_type & GLOBUS_GSI_CERT_UTILS_TYPE_PROXY_MASK) != 0)
107#define GLOBUS_GSI_CERT_UTILS_IS_RFC_PROXY(cert_type) \
108 (((cert_type & GLOBUS_GSI_CERT_UTILS_TYPE_PROXY_MASK) != 0) && \
109 ((cert_type & GLOBUS_GSI_CERT_UTILS_TYPE_RFC) != 0))
111#define GLOBUS_GSI_CERT_UTILS_IS_GSI_3_PROXY(cert_type) \
112 (((cert_type & GLOBUS_GSI_CERT_UTILS_TYPE_PROXY_MASK) != 0) && \
113 ((cert_type & GLOBUS_GSI_CERT_UTILS_TYPE_GSI_3) != 0))
115#define GLOBUS_GSI_CERT_UTILS_IS_GSI_2_PROXY(cert_type) \
116 (((cert_type & GLOBUS_GSI_CERT_UTILS_TYPE_PROXY_MASK) != 0) && \
117 ((cert_type & GLOBUS_GSI_CERT_UTILS_TYPE_GSI_2) != 0))
119#define GLOBUS_GSI_CERT_UTILS_IS_INDEPENDENT_PROXY(cert_type) \
120 ((cert_type & GLOBUS_GSI_CERT_UTILS_TYPE_INDEPENDENT_PROXY) != 0)
122#define GLOBUS_GSI_CERT_UTILS_IS_RESTRICTED_PROXY(cert_type) \
123 ((cert_type & GLOBUS_GSI_CERT_UTILS_TYPE_RESTRICTED_PROXY) != 0)
125#define GLOBUS_GSI_CERT_UTILS_IS_LIMITED_PROXY(cert_type) \
126 ((cert_type & GLOBUS_GSI_CERT_UTILS_TYPE_LIMITED_PROXY) != 0)
128#define GLOBUS_GSI_CERT_UTILS_IS_IMPERSONATION_PROXY(cert_type) \
129 ((cert_type & GLOBUS_GSI_CERT_UTILS_TYPE_IMPERSONATION_PROXY) != 0)
133 const ASN1_UTCTIME * ctm,
139 STACK_OF(X509) * cert_chain);
143 STACK_OF(X509) * cert_chain,
148 STACK_OF(X509) * cert_chain,
158 const char * subject_string,
160 X509_NAME * x509_name);
163globus_i_gsi_cert_utils_dn_cmp(
169#define globus_gsi_cert_utils_create_string \
170 globus_common_create_string
172#define globus_gsi_cert_utils_create_nstring \
173 globus_common_create_nstring
175#define globus_gsi_cert_utils_v_create_string \
176 globus_common_v_create_string
178#define globus_gsi_cert_utils_v_create_nstring \
179 globus_common_v_create_nstring
enum globus_gsi_cert_utils_cert_type_e globus_gsi_cert_utils_cert_type_t
globus_result_t globus_gsi_cert_utils_get_identity_cert(STACK_OF(X509) *cert_chain, X509 **identity_cert)
Get the identity certificate from a certificate chain.
Definition: globus_gsi_cert_utils.c:919
globus_result_t globus_gsi_cert_utils_get_x509_name(const char *subject_string, int length, X509_NAME *x509_name)
Get the certificate name.
Definition: globus_gsi_cert_utils.c:609
globus_result_t globus_gsi_cert_utils_make_time(const ASN1_UTCTIME *ctm, time_t *newtime)
Convert ASN1_UTCTIME to time_t.
Definition: globus_gsi_cert_utils.c:188
globus_result_t globus_gsi_cert_utils_get_eec(STACK_OF(X509) *cert_chain, X509 **eec)
Get the end-entity certificate from a certificate chain.
Definition: globus_gsi_cert_utils.c:865
globus_result_t globus_gsi_cert_utils_get_base_name(X509_NAME *subject, STACK_OF(X509) *cert_chain)
Get the base certificate name from a certificate chain.
Definition: globus_gsi_cert_utils.c:795
globus_result_t globus_gsi_cert_utils_get_cert_type(X509 *cert, globus_gsi_cert_utils_cert_type_t *type)
Get the X509 certificate type.
Definition: globus_gsi_cert_utils.c:298