2 * Copyright 2001-2005 Internet2
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
25 #ifndef __internal_h__
26 #define __internal_h__
28 #include <saml/saml.h>
29 #include <shib/shib.h>
30 #include <shib/shib-threads.h>
31 #include <openssl/ssl.h>
33 #define XMLPROVIDERS_LOGCAT "XMLProviders"
35 #define SHIB_L(s) ::XML::Literals::s
36 #define SHIB_L_QNAME(p,s) ::XML::Literals::p##_##s
38 // direct OpenSSL error content to log4cpp
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);
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[];
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
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[];
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[];
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[];
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[];
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[];
131 static const XMLCh literal[];
132 static const XMLCh regexp[];
133 static const XMLCh xpath[];
135 static const XMLCh Include[];
136 static const XMLCh Exclude[];
137 static const XMLCh url[];
138 static const XMLCh verify[];
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[];
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[];