Up-ported ACL plugin.
[shibboleth/cpp-sp.git] / xmlproviders / internal.h
1 /*
2  *  Copyright 2001-2005 Internet2
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 /* internal.h
18
19    Scott Cantor
20    2/14/04
21
22    $History:$
23 */
24
25 #ifndef __internal_h__
26 #define __internal_h__
27
28 #include <saml/saml.h>
29 #include <shib/shib.h>
30 #include <shib/shib-threads.h>
31 #include <openssl/ssl.h>
32
33 #define XMLPROVIDERS_LOGCAT "XMLProviders"
34
35 #define SHIB_L(s) ::XML::Literals::s
36 #define SHIB_L_QNAME(p,s) ::XML::Literals::p##_##s
37
38 // direct OpenSSL error content to log4cpp
39 void log_openssl();
40
41 // build an OpenSSL object out of a base-64 encoded DER buffer (XML style)
42 X509_CRL* B64_to_CRL(const char* buf);
43 X509* B64_to_X509(const char* buf);
44    
45 class XML
46 {
47 public:
48         // URI constants
49     static const XMLCh SHIB_NS[];
50     static const XMLCh SHIB_SCHEMA_ID[];
51     static const XMLCh SHIBMETA_NS[];
52     static const XMLCh SHIBMETA_SCHEMA_ID[];
53     static const XMLCh CREDS_NS[];
54     static const XMLCh CREDS_SCHEMA_ID[];
55     static const XMLCh TRUST_NS[];
56     static const XMLCh TRUST_SCHEMA_ID[];
57     static const XMLCh SAML2ASSERT_NS[];
58     static const XMLCh SAML2ASSERT_SCHEMA_ID[];
59     static const XMLCh SAML2META_NS[];
60     static const XMLCh SAML2META_SCHEMA_ID[];
61     static const XMLCh XMLENC_NS[];
62     static const XMLCh XMLENC_SCHEMA_ID[];
63         
64     // ds:KeyInfo RetrievalMethods
65     static const XMLCh XMLSIG_RETMETHOD_RAWX509[];  // http://www.w3.org/2000/09/xmldsig#rawX509Certificate
66     static const XMLCh XMLSIG_RETMETHOD_RAWX509CRL[]; // http://www.w3.org/2000/09/xmldsig-more#rawX509CRL
67
68     struct Literals
69     {
70         // old metadata constants
71         static const XMLCh AttributeAuthority[];
72         static const XMLCh Contact[];
73         static const XMLCh Domain[];
74         static const XMLCh Email[];
75         static const XMLCh ErrorURL[];
76         static const XMLCh HandleService[];
77         static const XMLCh InvalidHandle[];
78         static const XMLCh Name[];
79         static const XMLCh OriginSite[];
80         static const XMLCh SiteGroup[];
81
82         static const XMLCh administrative[];
83         static const XMLCh billing[];
84         static const XMLCh other[];
85         static const XMLCh support[];
86         static const XMLCh technical[];
87
88         // credentials constants
89         static const XMLCh CAPath[];
90         static const XMLCh Certificate[];
91         static const XMLCh Class[];
92         static const XMLCh Credentials[];
93         static const XMLCh CustomResolver[];
94         static const XMLCh Key[];
95         static const XMLCh FileResolver[];
96         static const XMLCh format[];
97         static const XMLCh Id[];
98         static const XMLCh password[];
99         static const XMLCh Path[];
100         
101         // trust constants
102         static const XMLCh Exponent[];
103         static const XMLCh KeyAuthority[];
104         static const XMLCh KeyName[];
105         static const XMLCh Modulus[];
106         static const XMLCh RetrievalMethod[];
107         static const XMLCh RSAKeyValue[];
108         static const XMLCh Trust[];
109         static const XMLCh URI[];
110         static const XMLCh VerifyDepth[];
111         static const XMLCh X509CRL[];
112
113         // SAML attribute constants
114         static const XMLCh Accept[];
115         static const XMLCh Alias[];
116         static const XMLCh AnyAttribute[];
117         static const XMLCh AnySite[];
118         static const XMLCh AnyValue[];
119         static const XMLCh AttributeAcceptancePolicy[];
120         static const XMLCh AttributeRule[];
121         static const XMLCh CaseSensitive[];
122         static const XMLCh Factory[];
123         static const XMLCh Header[];
124         static const XMLCh Namespace[];
125         static const XMLCh Scope[];
126         static const XMLCh Scoped[];
127         static const XMLCh SiteRule[];
128         static const XMLCh Type[];
129         static const XMLCh Value[];
130
131         static const XMLCh literal[];
132         static const XMLCh regexp[];
133         static const XMLCh xpath[];
134
135         static const XMLCh Include[];
136         static const XMLCh Exclude[];
137         static const XMLCh url[];
138         static const XMLCh verify[];
139         
140         // new metadata constants
141         static const XMLCh AdditionalMetadataLocation[];
142         static const XMLCh AffiliateMember[];
143         static const XMLCh AffiliationDescriptor[];
144         static const XMLCh affiliationOwnerID[];
145         static const XMLCh Algorithm[];
146         static const XMLCh ArtifactResolutionService[];
147         static const XMLCh AssertionConsumerService[];
148         static const XMLCh AssertionIDRequestService[];
149         static const XMLCh AttributeAuthorityDescriptor[];
150         static const XMLCh AttributeConsumingService[];
151         static const XMLCh AttributeProfile[];
152         static const XMLCh AttributeService[];
153         static const XMLCh AuthnAuthorityDescriptor[];
154         static const XMLCh AuthnQueryService[];
155         static const XMLCh AuthnRequestsSigned[];
156         static const XMLCh AuthzService[];
157         static const XMLCh cacheDuration[];
158         static const XMLCh Company[];
159         static const XMLCh ContactPerson[];
160         static const XMLCh contactType[];
161         static const XMLCh DigestMethod[];
162         static const XMLCh EmailAddress[];
163         static const XMLCh encryption[];
164         static const XMLCh EncryptionMethod[];
165         static const XMLCh EntitiesDescriptor[];
166         static const XMLCh EntityDescriptor[];
167         static const XMLCh entityID[];
168         static const XMLCh errorURL[];
169         static const XMLCh Extensions[];
170         static const XMLCh GivenName[];
171         static const XMLCh IDPSSODescriptor[];
172         static const XMLCh index[];
173         static const XMLCh isDefault[];
174         static const XMLCh isRequired[];
175         static const XMLCh KeyDescriptor[];
176         static const XMLCh KeySize[];
177         static const XMLCh ManageNameIDService[];
178         static const XMLCh _namespace[];
179         static const XMLCh NameFormat[];
180         static const XMLCh NameIDFormat[];
181         static const XMLCh NameIDMappingService[];
182         static const XMLCh OAEParams[];
183         static const XMLCh Organization[];
184         static const XMLCh OrganizationName[];
185         static const XMLCh OrganizationDisplayName[];
186         static const XMLCh OrganizationURL[];
187         static const XMLCh PDPDescriptor[];
188         static const XMLCh protocolSupportEnumeration[];
189         static const XMLCh RequestedAttribute[];
190         static const XMLCh ResponseLocation[];
191         static const XMLCh RoleDescriptor[];
192         static const XMLCh ServiceDescription[];
193         static const XMLCh ServiceName[];
194         static const XMLCh signing[];
195         static const XMLCh SingleLogoutService[];
196         static const XMLCh SingleSignOnService[];
197         static const XMLCh SourceID[];
198         static const XMLCh SPSSODescriptor[];
199         static const XMLCh SurName[];
200         static const XMLCh TelephoneNumber[];
201         static const XMLCh use[];
202         static const XMLCh validUntil[];
203         static const XMLCh WantAuthnRequestsSigned[];
204         static const XMLCh WantAssertionsSigned[];
205
206         // access control constants
207         static const XMLCh AccessControl[];
208         static const XMLCh AND[];
209         static const XMLCh NOT[];
210         static const XMLCh OR[];
211         static const XMLCh require[];
212         static const XMLCh Rule[];
213     };
214 };
215
216 #endif