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