proxycertinfo.h

Go to the documentation of this file.
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 */

Generated on 27 Oct 2014 for globus_gsi_proxy_ssl by  doxygen 1.4.7