00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef HEADER_PROXYPOLICY_H
00019 #define HEADER_PROXYPOLICY_H
00020
00041 #include <openssl/x509.h>
00042 #include <openssl/x509v3.h>
00043 #include <string.h>
00044
00045 #ifdef __cplusplus
00046 extern "C" {
00047 #endif
00048
00049 #define ANY_LANGUAGE_OID "1.3.6.1.5.5.7.21.0"
00050 #define ANY_LANGUAGE_SN "ANY_LANGUAGE"
00051 #define ANY_LANGUAGE_LN "Any Language"
00052
00053 #define IMPERSONATION_PROXY_OID "1.3.6.1.5.5.7.21.1"
00054 #define IMPERSONATION_PROXY_SN "IMPERSONATION_PROXY"
00055 #define IMPERSONATION_PROXY_LN "GSI impersonation proxy"
00056
00057 #define INDEPENDENT_PROXY_OID "1.3.6.1.5.5.7.21.2"
00058 #define INDEPENDENT_PROXY_SN "INDEPENDENT_PROXY"
00059 #define INDEPENDENT_PROXY_LN "GSI independent proxy"
00060
00061 #define LIMITED_PROXY_OID "1.3.6.1.4.1.3536.1.1.1.9"
00062 #define LIMITED_PROXY_SN "LIMITED_PROXY"
00063 #define LIMITED_PROXY_LN "GSI limited proxy"
00064
00065
00066 #define ASN1_F_PROXYPOLICY_NEW 450
00067 #define ASN1_F_D2I_PROXYPOLICY 451
00068
00069
00070
00086 struct PROXYPOLICY_st
00087 {
00088 ASN1_OBJECT * policy_language;
00089 ASN1_OCTET_STRING * policy;
00090 };
00091
00092 typedef struct PROXYPOLICY_st PROXYPOLICY;
00093
00094 DECLARE_STACK_OF(PROXYPOLICY)
00095 DECLARE_ASN1_SET_OF(PROXYPOLICY)
00096
00097
00098
00099 #if OPENSSL_VERSION_NUMBER < 0x10000000L
00100 ASN1_METHOD * PROXYPOLICY_asn1_meth();
00101 #endif
00102
00103 PROXYPOLICY * PROXYPOLICY_new();
00104
00105 void PROXYPOLICY_free();
00106
00107 PROXYPOLICY * PROXYPOLICY_dup(
00108 PROXYPOLICY * policy);
00109
00110 int PROXYPOLICY_cmp(
00111 const PROXYPOLICY * a,
00112 const PROXYPOLICY * b);
00113
00114 int PROXYPOLICY_print(
00115 BIO * bp,
00116 PROXYPOLICY * policy);
00117
00118 int PROXYPOLICY_print_fp(
00119 FILE * fp,
00120 PROXYPOLICY * policy);
00121
00122 int PROXYPOLICY_set_policy_language(
00123 PROXYPOLICY * policy,
00124 ASN1_OBJECT * policy_language);
00125
00126 ASN1_OBJECT * PROXYPOLICY_get_policy_language(
00127 PROXYPOLICY * policy);
00128
00129 int PROXYPOLICY_set_policy(
00130 PROXYPOLICY * proxypolicy,
00131 unsigned char * policy,
00132 int length);
00133
00134 unsigned char * PROXYPOLICY_get_policy(
00135 PROXYPOLICY * policy,
00136 int * length);
00137
00138 int i2d_PROXYPOLICY(
00139 PROXYPOLICY * policy,
00140 unsigned char ** a);
00141
00142 PROXYPOLICY * d2i_PROXYPOLICY(
00143 PROXYPOLICY ** policy,
00144 unsigned char ** a,
00145 long length);
00146
00147 X509V3_EXT_METHOD * PROXYPOLICY_x509v3_ext_meth();
00148
00149 STACK_OF(CONF_VALUE) * i2v_PROXYPOLICY(
00150 struct v3_ext_method * method,
00151 PROXYPOLICY * ext,
00152 STACK_OF(CONF_VALUE) * extlist);
00153
00154 #ifdef __cplusplus
00155 }
00156 #endif
00157
00158 #endif