globus_gsi_proxy_ssl  5.8
proxypolicy.h
Go to the documentation of this file.
1 /*
2  * Copyright 1999-2006 University of Chicago
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 
18 #ifndef HEADER_PROXYPOLICY_H
19 #define HEADER_PROXYPOLICY_H
20 
41 #include <openssl/x509.h>
42 #include <openssl/x509v3.h>
43 #include <string.h>
44 
45 #ifdef __cplusplus
46 extern "C" {
47 #endif
48 
49 #define ANY_LANGUAGE_OID "1.3.6.1.5.5.7.21.0"
50 #define ANY_LANGUAGE_SN "ANY_LANGUAGE"
51 #define ANY_LANGUAGE_LN "Any Language"
52 
53 #define IMPERSONATION_PROXY_OID "1.3.6.1.5.5.7.21.1"
54 #define IMPERSONATION_PROXY_SN "IMPERSONATION_PROXY"
55 #define IMPERSONATION_PROXY_LN "GSI impersonation proxy"
56 
57 #define INDEPENDENT_PROXY_OID "1.3.6.1.5.5.7.21.2"
58 #define INDEPENDENT_PROXY_SN "INDEPENDENT_PROXY"
59 #define INDEPENDENT_PROXY_LN "GSI independent proxy"
60 
61 #define LIMITED_PROXY_OID "1.3.6.1.4.1.3536.1.1.1.9"
62 #define LIMITED_PROXY_SN "LIMITED_PROXY"
63 #define LIMITED_PROXY_LN "GSI limited proxy"
64 
65 /* Used for error handling */
66 #define ASN1_F_PROXYPOLICY_NEW 450
67 #define ASN1_F_D2I_PROXYPOLICY 451
68 
69 /* data structures */
70 
87 {
88  ASN1_OBJECT * policy_language;
89  ASN1_OCTET_STRING * policy;
90 };
91 
92 typedef struct PROXYPOLICY_st PROXYPOLICY;
93 
94 DECLARE_STACK_OF(PROXYPOLICY)
95 DECLARE_ASN1_SET_OF(PROXYPOLICY)
96 
97 /* functions */
98 
99 #if OPENSSL_VERSION_NUMBER < 0x10000000L
100 ASN1_METHOD * PROXYPOLICY_asn1_meth();
101 #endif
102 
104 
105 void PROXYPOLICY_free();
106 
108  PROXYPOLICY * policy);
109 
110 int PROXYPOLICY_cmp(
111  const PROXYPOLICY * a,
112  const PROXYPOLICY * b);
113 
115  BIO * bp,
116  PROXYPOLICY * policy);
117 
119  FILE * fp,
120  PROXYPOLICY * policy);
121 
123  PROXYPOLICY * policy,
124  ASN1_OBJECT * policy_language);
125 
126 ASN1_OBJECT * PROXYPOLICY_get_policy_language(
127  PROXYPOLICY * policy);
128 
130  PROXYPOLICY * proxypolicy,
131  unsigned char * policy,
132  int length);
133 
134 unsigned char * PROXYPOLICY_get_policy(
135  PROXYPOLICY * policy,
136  int * length);
137 
138 int i2d_PROXYPOLICY(
139  PROXYPOLICY * policy,
140  unsigned char ** a);
141 
143  PROXYPOLICY ** policy,
144  unsigned char ** a,
145  long length);
146 
147 X509V3_EXT_METHOD * PROXYPOLICY_x509v3_ext_meth();
148 
149 STACK_OF(CONF_VALUE) * i2v_PROXYPOLICY(
150  struct v3_ext_method * method,
151  PROXYPOLICY * ext,
152  STACK_OF(CONF_VALUE) * extlist);
153 
154 #ifdef __cplusplus
155 }
156 #endif
157 
158 #endif /* HEADER_PROXYPOLICY_H */
PROXYPOLICY * PROXYPOLICY_dup(PROXYPOLICY *policy)
Definition: proxypolicy.c:117
ASN1_METHOD * PROXYPOLICY_asn1_meth()
Definition: proxypolicy.c:50
int PROXYPOLICY_print(BIO *bp, PROXYPOLICY *policy)
Definition: proxypolicy.c:160
int PROXYPOLICY_set_policy_language(PROXYPOLICY *policy, ASN1_OBJECT *policy_language)
Definition: proxypolicy.c:212
int i2d_PROXYPOLICY(PROXYPOLICY *policy, unsigned char **a)
Definition: proxypolicy.c:323
int PROXYPOLICY_set_policy(PROXYPOLICY *proxypolicy, unsigned char *policy, int length)
Definition: proxypolicy.c:252
int PROXYPOLICY_print_fp(FILE *fp, PROXYPOLICY *policy)
Definition: proxypolicy.c:187
unsigned char * PROXYPOLICY_get_policy(PROXYPOLICY *policy, int *length)
Definition: proxypolicy.c:293
PROXYPOLICY * PROXYPOLICY_new()
Definition: proxypolicy.c:71
Definition: proxypolicy.h:86
void PROXYPOLICY_free(PROXYPOLICY *policy)
Definition: proxypolicy.c:94
int PROXYPOLICY_cmp(const PROXYPOLICY *a, const PROXYPOLICY *b)
Definition: proxypolicy.c:136
PROXYPOLICY * d2i_PROXYPOLICY(PROXYPOLICY **policy, unsigned char **a, long length)
Definition: proxypolicy.c:360
ASN1_OBJECT * PROXYPOLICY_get_policy_language(PROXYPOLICY *policy)
Definition: proxypolicy.c:235