00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef HEADER_PROXYCERTINFO_H
00018 #define HEADER_PROXYCERTINFO_H
00019
00026 #ifndef GLOBUS_GLOBAL_DOCUMENT_SET
00027
00031 #endif
00032
00057 #include "proxypolicy.h"
00058 #include <openssl/asn1.h>
00059 #include <openssl/x509.h>
00060
00061 #include <openssl/x509.h>
00062 #include <openssl/x509v3.h>
00063 #include <string.h>
00064
00065 #ifdef __cplusplus
00066 extern "C" {
00067 #endif
00068
00077 #define PROXYCERTINFO_OLD_OID "1.3.6.1.4.1.3536.1.222"
00078 #define PROXYCERTINFO_OID "1.3.6.1.5.5.7.1.14"
00079 #define PROXYCERTINFO_SN "PROXYCERTINFO"
00080 #define PROXYCERTINFO_LN "Proxy Certificate Info Extension"
00081 #define PROXYCERTINFO_OLD_SN "OLD_PROXYCERTINFO"
00082 #define PROXYCERTINFO_OLD_LN "Proxy Certificate Info Extension (old OID)"
00083
00084
00085
00086
00087 #define ASN1_F_PROXYCERTINFO_NEW 430
00088 #define ASN1_F_D2I_PROXYCERTINFO 431
00089
00090
00091
00092
00110 struct PROXYCERTINFO_st
00111 {
00112 ASN1_INTEGER * path_length;
00113 PROXYPOLICY * policy;
00114 };
00115
00116 typedef struct PROXYCERTINFO_st PROXYCERTINFO;
00117
00118 DECLARE_STACK_OF(PROXYCERTINFO)
00119 DECLARE_ASN1_SET_OF(PROXYCERTINFO)
00120
00121
00122
00123 #define d2i_PROXYCERTINFO_bio(bp, pci) \
00124 (PROXYCERTINFO *) ASN1_d2i_bio((char *(*)()) PROXYCERTINFO_new, \
00125 (char *(*)()) d2i_PROXYCERTINFO, \
00126 (bp), (unsigned char **) pci)
00127
00128 #define i2d_PROXYCERTINFO_bio(bp, pci) \
00129 ASN1_i2d_bio(i2d_PROXYCERTINFO, bp, \
00130 (unsigned char *)pci)
00131
00132
00133
00134 #if OPENSSL_VERSION_NUMBER < 0x10000000L
00135 ASN1_METHOD * PROXYCERTINFO_asn1_meth();
00136 #endif
00137
00138 PROXYCERTINFO * PROXYCERTINFO_new();
00139
00140 void PROXYCERTINFO_free(
00141 PROXYCERTINFO * cert_info);
00142
00143 PROXYCERTINFO * PROXYCERTINFO_dup(
00144 PROXYCERTINFO * cert_info);
00145
00146 int PROXYCERTINFO_cmp(
00147 const PROXYCERTINFO * a,
00148 const PROXYCERTINFO * b);
00149
00150 int PROXYCERTINFO_print(
00151 BIO * bp,
00152 PROXYCERTINFO * cert_info);
00153
00154 int PROXYCERTINFO_print_fp(
00155 FILE * fp,
00156 PROXYCERTINFO * cert_info);
00157
00158 int PROXYCERTINFO_set_policy(
00159 PROXYCERTINFO * cert_info,
00160 PROXYPOLICY * policy);
00161
00162 PROXYPOLICY * PROXYCERTINFO_get_policy(
00163 PROXYCERTINFO * cert_info);
00164
00165 int PROXYCERTINFO_set_path_length(
00166 PROXYCERTINFO * cert_info,
00167 long path_length);
00168
00169 long PROXYCERTINFO_get_path_length(
00170 PROXYCERTINFO * cert_info);
00171
00172 int i2d_PROXYCERTINFO(
00173 PROXYCERTINFO * cert_info,
00174 unsigned char ** a);
00175
00176 PROXYCERTINFO * d2i_PROXYCERTINFO(
00177 PROXYCERTINFO ** cert_info,
00178 unsigned char ** a,
00179 long length);
00180
00181 int i2d_PROXYCERTINFO_OLD(
00182 PROXYCERTINFO * cert_info,
00183 unsigned char ** a);
00184
00185 PROXYCERTINFO * d2i_PROXYCERTINFO_OLD(
00186 PROXYCERTINFO ** cert_info,
00187 unsigned char ** a,
00188 long length);
00189
00190 X509V3_EXT_METHOD * PROXYCERTINFO_x509v3_ext_meth();
00191
00192 X509V3_EXT_METHOD * PROXYCERTINFO_OLD_x509v3_ext_meth();
00193
00194 STACK_OF(CONF_VALUE) * i2v_PROXYCERTINFO(
00195 struct v3_ext_method * method,
00196 PROXYCERTINFO * ext,
00197 STACK_OF(CONF_VALUE) * extlist);
00198
00199 #ifdef __cplusplus
00200 }
00201 #endif
00202
00203 #endif