00001 /* 00002 * Copyright 2002-2005 The Apache Software Foundation. 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 /* 00018 * XSEC 00019 * 00020 * Configuration file for Windows platform 00021 * 00022 * Needs to be modified by hand 00023 * 00024 * Author(s): Berin Lautenbach 00025 * 00026 * $Id: XSECW32Config.hpp 464120 2006-10-15 05:15:27Z blautenb $ 00027 * 00028 */ 00029 00030 #include <xercesc/util/XercesVersion.hpp> 00031 00032 /* 00033 * These are the high level numerics that need to be changed to bump the 00034 * version number. 00035 * 00036 * They are used to create version strings - see the details at the end of this file 00037 */ 00038 00039 #define XSEC_VERSION_MAJOR 1 00040 #define XSEC_VERSION_MEDIUM 3 00041 #define XSEC_VERSION_MINOR 1 00042 00043 /* 00044 * Because we don't have a configure script, we need to rely on version 00045 * numbers to understand library idiosycracies 00046 */ 00047 00048 #if (XERCES_VERSION_MAJOR >= 3) 00049 00050 /* Is it possible to setIdAttributes? - DOM level 3 call. V3.x 00051 API Version */ 00052 00053 # define XSEC_XERCES_HAS_BOOLSETIDATTRIBUTE 1 00054 00055 /* 3.0 no longer supports DOMWriter, must use DOMLSSerializer instead 00056 */ 00057 00058 # define XSEC_XERCES_DOMLSSERIALIZER 1 00059 00060 /* 3.0 now uses getInputEncoding rather than getEncoding to determine 00061 encoding that was found in input document */ 00062 00063 # define XSEC_XERCES_DOMENTITYINPUTENCODING 1 00064 #endif 00065 00066 #if (XERCES_VERSION_MAJOR == 3) || ((XERCES_VERSION_MAJOR == 2) && (XERCES_VERSION_MINOR >= 3)) 00067 /* 00068 * As of version 2.3, xerces requires a version parameter in XMLFormatter 00069 * constructors 00070 */ 00071 # define XSEC_XERCES_FORMATTER_REQUIRES_VERSION 1 00072 00073 /* 2.3 and above use a user defined Memory Manager. In some cases, this 00074 actually needs to be passed to functions 00075 */ 00076 00077 # define XSEC_XERCES_REQUIRES_MEMMGR 1 00078 00079 /* Does XMLString::release() exist */ 00080 00081 # define XSEC_XERCES_XMLSTRING_HAS_RELEASE 1 00082 00083 # if (XERCES_VERSION_MAJOR < 3) 00084 /* Is it possible to setIdAttributes? - DOM level 3 call. V2.x API */ 00085 00086 # define XSEC_XERCES_HAS_SETIDATTRIBUTE 1 00087 00088 # endif 00089 00090 #else 00091 /* 00092 * In version 2.2, the XMLUri class was broken for relative URI de-referencing 00093 */ 00094 # define XSEC_XERCES_BROKEN_XMLURI 1 00095 #endif 00096 00097 00098 00099 /* 00100 * The following defines whether Xalan integration is required. 00101 * 00102 * Xalan is used for XSLT and complex XPath processing. 00103 * Activate this #define if Xalan is not required (or desired) 00104 */ 00105 00106 // #define XSEC_NO_XALAN 00107 00108 #if !defined (XSEC_NO_XALAN) 00109 00110 # include <xalanc/Include/XalanVersion.hpp> 00111 00112 # if (_XALAN_VERSION <= 10800) 00113 # define XSEC_XSLEXCEPTION_RETURNS_DOMSTRING 1 00114 # endif 00115 # if (_XALAN_VERSION >= 10900) 00116 00117 /* 1.9 and above have XSLException::getType() returns XalanDOMChar *, not 00118 XalanDOMString 00119 */ 00120 00121 # undef XSEC_XSLEXCEPTION_RETURNS_DOMSTRING 00122 00123 /* 1.9 and above do not take a XercesDOMSupport as input to the ctor */ 00124 00125 # undef XSEC_XERCESPARSERLIAISON_REQS_DOMSUPPORT 00126 00127 /* 1.9 and above require a NodeRefList as input to XPathEvaluator:: 00128 selectNodeList 00129 */ 00130 00131 # define XSEC_SELECTNODELIST_REQS_NODEREFLIST 00132 00133 /* 1.9 and above use MemoryManager for the XPath Function classes 00134 */ 00135 00136 # define XSEC_XALAN_REQS_MEMORYMANAGER 00137 # else 00138 /* 1.9 and above have XSLException::getType() returns XalanDOMChar *, not 00139 XalanDOMString 00140 */ 00141 00142 # define XSEC_XSLEXCEPTION_RETURNS_DOMSTRING 1 00143 00144 /* 1.9 and above do not take a XercesDOMSupport as input to the ctor */ 00145 00146 # define XSEC_XERCESPARSERLIAISON_REQS_DOMSUPPORT 00147 00148 /* 1.9 and above require a NodeRefList as input to XPathEvaluator:: 00149 selectNodeList 00150 */ 00151 00152 # undef XSEC_SELECTNODELIST_REQS_NODEREFLIST 00153 00154 /* 1.9 and above use MemoryManager for the XPath Function classes 00155 */ 00156 00157 # undef XSEC_XALAN_REQS_MEMORYMANAGER 00158 00159 # endif 00160 00161 #endif 00162 00163 /* 00164 * Define presence of cryptographic providers 00165 */ 00166 00167 #define HAVE_OPENSSL 1 00168 00169 #define HAVE_WINCAPI 1 00170 00171 // NSS Code is currently alpha. It should work, but you will also 00172 // need to include the NSS libraries during the link. 00173 00174 /* #define HAVE_NSS 1 */ 00175 00176 00177 /* 00178 * Some settings for OpenSSL if we have it 00179 * 00180 */ 00181 00182 #if defined (HAVE_OPENSSL) 00183 00184 # include <openssl/opensslv.h> 00185 # if (OPENSSL_VERSION_NUMBER >= 0x00907000) 00186 00187 # define XSEC_OPENSSL_CONST_BUFFERS 00188 # define XSEC_OPENSSL_HAVE_AES 00189 # define XSEC_OPENSSL_CANSET_PADDING 00190 # define XSEC_OPENSSL_HAVE_CRYPTO_CLEANUP_ALL_EX_DATA 00191 # endif 00192 # if (OPENSSL_VERSION_NUMBER >= 0x00908000) 00193 # define XSEC_OPENSSL_D2IX509_CONST_BUFFER 00194 # endif 00195 00196 #endif 00197 00198 /* 00199 * Macros used to determine what header files exist on this 00200 * system 00201 */ 00202 00203 /* Posix unistd.h */ 00204 /* #define HAVE_UNISTD_H */ 00205 00206 /* Windows direct.h */ 00207 #define HAVE_DIRECT_H 1 00208 00209 // -------------------------------------------------------------------------------- 00210 // Version Handling 00211 // -------------------------------------------------------------------------------- 00212 00213 /* 00214 * The following code makes use of the Xerces version handling macros to define 00215 * some constants that can be used during conditional compilation. 00216 */ 00217 00218 /* This can be used for conditional compilation and for testing during 00219 * autoconfigures. 00220 * 00221 * It will create a string of the form 10000 * MAJOR + 100 * MEDIUM + MINOR 00222 * E.g. 10301 for version 1.3.1 00223 */ 00224 00225 #define _XSEC_VERSION_FULL CALC_EXPANDED_FORM (XSEC_VERSION_MAJOR,XSEC_VERSION_MEDIUM,XSEC_VERSION_MINOR) 00226 00227 /* Some useful strings for versioning - based on the same strings from Xerces */ 00228 00229 #define XSEC_FULLVERSIONSTR INVK_CAT3_SEP_UNDERSCORE(XSEC_VERSION_MAJOR,XSEC_VERSION_MEDIUM,XSEC_VERSION_MINOR) 00230 #define XSEC_FULLVERSIONDOT INVK_CAT3_SEP_PERIOD(XSEC_VERSION_MAJOR,XSEC_VERSION_MEDIUM,XSEC_VERSION_MINOR) 00231 #define XSEC_FULLVERSIONNUM INVK_CAT3_SEP_NIL(XSEC_VERSION_MAJOR,XSEC_VERSION_MEDIUM,XSEC_VERSION_MINOR) 00232 #define XSEC_VERSIONSTR INVK_CAT2_SEP_UNDERSCORE(XSEC_VERSION_MAJOR,XSEC_VERSION_MEDIUM) 00233 00234 /* The following is used for backwards compatibility with previous version handling */ 00235 00236 #define XSEC_VERSION "XSEC_FULLVERSIONDOT" 00237 00238