|
globus_gsi_proxy_ssl
5.7
|
00001 /* 00002 * Copyright 1999-2006 University of Chicago 00003 * 00004 * Licensed under the Apache License, Version 2.0 (the "License"); 00005 * you may not use this file except in compliance with the License. 00006 * You may obtain a copy of the License at 00007 * 00008 * http://www.apache.org/licenses/LICENSE-2.0 00009 * 00010 * Unless required by applicable law or agreed to in writing, software 00011 * distributed under the License is distributed on an "AS IS" BASIS, 00012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00013 * See the License for the specific language governing permissions and 00014 * limitations under the License. 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 * Used for error checking 00086 */ 00087 #define ASN1_F_PROXYCERTINFO_NEW 430 00088 #define ASN1_F_D2I_PROXYCERTINFO 431 00089 00090 00091 /* data structures */ 00092 00110 struct PROXYCERTINFO_st 00111 { 00112 ASN1_INTEGER * path_length; /* [ OPTIONAL ] */ 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 /* macros */ 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 /* functions */ 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 /* HEADER_PROXYCERTINFO_H */
1.7.6.1