You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@santuario.apache.org by bl...@apache.org on 2003/04/11 14:27:23 UTC
cvs commit: xml-security/c/src/utils XSECPlatformUtils.cpp
blautenb 2003/04/11 05:27:23
Modified: c/Projects/VC6.0/xsec/templatesign templatesign.dsp
c/Projects/VC6.0/xsec/threadTest threadTest.dsp
c/Projects/VC6.0/xsec/txfmout txfmout.dsp
c/Projects/VC6.0/xsec/xsec_lib xsec_lib.dsp
c/src/dsig DSIGSignature.cpp DSIGSignature.hpp
c/src/framework XSECDefs.hpp XSECW32Config.hpp
c/src/utils XSECPlatformUtils.cpp
Log:
Full Windows Crypto API support
Revision Changes Path
1.3 +2 -2 xml-security/c/Projects/VC6.0/xsec/templatesign/templatesign.dsp
Index: templatesign.dsp
===================================================================
RCS file: /home/cvs/xml-security/c/Projects/VC6.0/xsec/templatesign/templatesign.dsp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- templatesign.dsp 7 Feb 2003 11:15:06 -0000 1.2
+++ templatesign.dsp 11 Apr 2003 12:27:22 -0000 1.3
@@ -52,7 +52,7 @@
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib xerces-c_2.lib Xalan-C_1.lib libeay32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib xerces-c_2.lib Xalan-C_1.lib libeay32.lib /nologo /subsystem:console /machine:I386
!ELSEIF "$(CFG)" == "templatesign - Win32 Debug"
@@ -125,7 +125,7 @@
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib xerces-c_2.lib Xalan-C_1.lib libeay32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib xerces-c_2.lib libeay32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib xerces-c_2.lib libeay32.lib /nologo /subsystem:console /machine:I386
!ENDIF
1.3 +6 -2 xml-security/c/Projects/VC6.0/xsec/threadTest/threadTest.dsp
Index: threadTest.dsp
===================================================================
RCS file: /home/cvs/xml-security/c/Projects/VC6.0/xsec/threadTest/threadTest.dsp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- threadTest.dsp 7 Feb 2003 11:15:06 -0000 1.2
+++ threadTest.dsp 11 Apr 2003 12:27:22 -0000 1.3
@@ -41,6 +41,7 @@
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "../../../../Build/Win32/VC6/Release"
# PROP Intermediate_Dir "../../../../Build/Win32/VC6/Release/obj"
+# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /W3 /GX /O2 /I "../../../../include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
@@ -51,7 +52,7 @@
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib xerces-c_2.lib Xalan-C_1.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib xerces-c_2.lib Xalan-C_1.lib libeay32.lib /nologo /subsystem:console /machine:I386
!ELSEIF "$(CFG)" == "threadTest - Win32 Debug"
@@ -64,6 +65,7 @@
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "../../../../Build/Win32/VC6/Debug"
# PROP Intermediate_Dir "../../../../Build/Win32/VC6/Debug/obj"
+# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../../include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "_AFXDLL" /YX /FD /GZ /c
@@ -87,6 +89,7 @@
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "threadTest___Win32_Release_No_Xalan"
# PROP Intermediate_Dir "threadTest___Win32_Release_No_Xalan"
+# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /I "../../../../include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /W3 /GX /O2 /I "../../../../include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
@@ -97,7 +100,7 @@
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib xerces-c_2.lib Xalan-C_1.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib xerces-c_2.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib xerces-c_2.lib libeay32.lib /nologo /subsystem:console /machine:I386
!ELSEIF "$(CFG)" == "threadTest - Win32 Debug No Xalan"
@@ -110,6 +113,7 @@
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "threadTest___Win32_Debug_No_Xalan"
# PROP Intermediate_Dir "threadTest___Win32_Debug_No_Xalan"
+# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../../include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "_AFXDLL" /YX /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../../../include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "_AFXDLL" /YX /FD /GZ /c
1.3 +4 -4 xml-security/c/Projects/VC6.0/xsec/txfmout/txfmout.dsp
Index: txfmout.dsp
===================================================================
RCS file: /home/cvs/xml-security/c/Projects/VC6.0/xsec/txfmout/txfmout.dsp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- txfmout.dsp 7 Feb 2003 11:15:06 -0000 1.2
+++ txfmout.dsp 11 Apr 2003 12:27:22 -0000 1.3
@@ -52,7 +52,7 @@
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib xerces-c_2.lib Xalan-C_1.lib libeay32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib xerces-c_2.lib Xalan-C_1.lib libeay32.lib /nologo /subsystem:console /machine:I386
!ELSEIF "$(CFG)" == "txfmout - Win32 Debug"
@@ -76,7 +76,7 @@
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 xerces-c_2D.lib Xalan-C_1D.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 xerces-c_2D.lib Xalan-C_1D.lib libeay32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
!ELSEIF "$(CFG)" == "txfmout - Win32 Release No Xalan"
@@ -101,7 +101,7 @@
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib xerces-c_2.lib Xalan-C_1.lib libeay32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib xerces-c_2.lib libeay32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib xerces-c_2.lib libeay32.lib /nologo /subsystem:console /machine:I386
!ELSEIF "$(CFG)" == "txfmout - Win32 Debug No Xalan"
@@ -126,7 +126,7 @@
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib xerces-c_2D.lib Xalan-C_1D.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 xerces-c_2D.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 xerces-c_2D.lib libeay32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
!ENDIF
1.8 +17 -9 xml-security/c/Projects/VC6.0/xsec/xsec_lib/xsec_lib.dsp
Index: xsec_lib.dsp
===================================================================
RCS file: /home/cvs/xml-security/c/Projects/VC6.0/xsec/xsec_lib/xsec_lib.dsp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- xsec_lib.dsp 7 Apr 2003 12:27:12 -0000 1.7
+++ xsec_lib.dsp 11 Apr 2003 12:27:22 -0000 1.8
@@ -55,7 +55,7 @@
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib xerces-c_2.lib Xalan-C_1.lib libeay32.lib /nologo /dll /machine:I386 /out:"../../../../Build/Win32/VC6/Release/xsec_lib_01.dll"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib xerces-c_2.lib Xalan-C_1.lib crypt32.lib libeay32.lib /nologo /dll /machine:I386 /out:"../../../../Build/Win32/VC6/Release/xsec_lib_01.dll"
!ELSEIF "$(CFG)" == "xsec_lib - Win32 Debug"
@@ -429,6 +429,14 @@
# End Source File
# Begin Source File
+SOURCE=..\..\..\..\src\enc\WinCAPI\WinCAPICryptoKeyRSA.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\enc\WinCAPI\WinCAPICryptoKeyRSA.hpp
+# End Source File
+# Begin Source File
+
SOURCE=..\..\..\..\src\enc\WinCAPI\WinCAPICryptoProvider.cpp
# End Source File
# Begin Source File
@@ -741,6 +749,14 @@
# End Source File
# Begin Source File
+SOURCE=..\..\..\..\src\transformers\TXFMMD5.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\..\src\transformers\TXFMMD5.hpp
+# End Source File
+# Begin Source File
+
SOURCE=..\..\..\..\src\transformers\TXFMOutputFile.cpp
# End Source File
# Begin Source File
@@ -804,13 +820,5 @@
SOURCE=..\..\..\..\src\framework\version.rc
# End Source File
# End Group
-# Begin Source File
-
-SOURCE=..\..\..\..\src\transformers\TXFMMD5.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\..\src\transformers\TXFMMD5.hpp
-# End Source File
# End Target
# End Project
1.10 +21 -1 xml-security/c/src/dsig/DSIGSignature.cpp
Index: DSIGSignature.cpp
===================================================================
RCS file: /home/cvs/xml-security/c/src/dsig/DSIGSignature.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- DSIGSignature.cpp 7 Apr 2003 12:27:13 -0000 1.9
+++ DSIGSignature.cpp 11 Apr 2003 12:27:23 -0000 1.10
@@ -611,6 +611,26 @@
}
+DSIGKeyInfoValue * DSIGSignature::appendRSAKeyValue(const XMLCh * modulus,
+ const XMLCh * exponent) {
+
+ createKeyInfoElement();
+
+ // Create the new element
+ DSIGKeyInfoValue * v;
+ XSECnew(v, DSIGKeyInfoValue(this));
+
+ mp_KeyInfoNode->appendChild(v->createBlankRSAKeyValue(modulus, exponent));
+ mp_KeyInfoNode->appendChild(mp_doc->createTextNode(DSIGConstants::s_unicodeStrNL));
+
+ // Add to the list
+ m_keyInfoList.addKeyInfo(v);
+
+ return v;
+
+}
+
+
DSIGKeyInfoX509 * DSIGSignature::appendX509Data(void) {
createKeyInfoElement();
1.5 +14 -1 xml-security/c/src/dsig/DSIGSignature.hpp
Index: DSIGSignature.hpp
===================================================================
RCS file: /home/cvs/xml-security/c/src/dsig/DSIGSignature.hpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- DSIGSignature.hpp 2 Mar 2003 08:21:01 -0000 1.4
+++ DSIGSignature.hpp 11 Apr 2003 12:27:23 -0000 1.5
@@ -494,6 +494,19 @@
const XMLCh * Y);
/**
+ * \brief Append a RSA KeyValue element
+ *
+ * Add a new KeyInfo element for a RSA Value
+ *
+ * @param modulus Base64 encoded value of the modulus
+ * @param exponent Base64 encoded value of exponent
+ * @returns A pointer to the created object.
+ */
+
+ DSIGKeyInfoValue * appendRSAKeyValue(const XMLCh * modulus,
+ const XMLCh * exponent);
+
+ /**
* \brief Append a X509Data element.
*
* Add a new KeyInfo element for X509 data.
1.5 +4 -1 xml-security/c/src/framework/XSECDefs.hpp
Index: XSECDefs.hpp
===================================================================
RCS file: /home/cvs/xml-security/c/src/framework/XSECDefs.hpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- XSECDefs.hpp 15 Mar 2003 04:21:24 -0000 1.4
+++ XSECDefs.hpp 11 Apr 2003 12:27:23 -0000 1.5
@@ -79,6 +79,9 @@
# if defined (_DEBUG)
# include <afx.h>
# include <crtdbg.h>
+# else
+# define WIN32_LEAN_AND_MEAN
+# include <windows.h>
# endif
# include <xsec/framework/XSECW32Config.hpp>
#else
1.5 +8 -1 xml-security/c/src/framework/XSECW32Config.hpp
Index: XSECW32Config.hpp
===================================================================
RCS file: /home/cvs/xml-security/c/src/framework/XSECW32Config.hpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- XSECW32Config.hpp 22 Feb 2003 11:17:23 -0000 1.4
+++ XSECW32Config.hpp 11 Apr 2003 12:27:23 -0000 1.5
@@ -90,3 +90,10 @@
/* Windows direct.h */
#define HAVE_DIRECT_H 1
+/*
+ * Macros used to identify what crypto providers are available
+ */
+
+#define HAVE_OPENSSL 1
+
+#define HAVE_WINCAPI 1
1.6 +25 -3 xml-security/c/src/utils/XSECPlatformUtils.cpp
Index: XSECPlatformUtils.cpp
===================================================================
RCS file: /home/cvs/xml-security/c/src/utils/XSECPlatformUtils.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- XSECPlatformUtils.cpp 7 Apr 2003 12:27:13 -0000 1.5
+++ XSECPlatformUtils.cpp 11 Apr 2003 12:27:23 -0000 1.6
@@ -72,17 +72,34 @@
#include <xsec/utils/XSECPlatformUtils.hpp>
#include <xsec/framework/XSECError.hpp>
-#include <xsec/enc/OpenSSL/OpenSSLCryptoProvider.hpp>
#include <xsec/dsig/DSIGConstants.hpp>
#if defined(_WIN32)
#include <xsec/utils/winutils/XSECBinHTTPURIInputStream.hpp>
#endif
+#if defined (HAVE_OPENSSL)
+# include <xsec/enc/OpenSSL/OpenSSLCryptoProvider.hpp>
+#endif
+
+#if defined (HAVE_WINCAPI)
+# include <xsec/enc/WinCAPI/WinCAPICryptoProvider.hpp>
+#endif
+
// Static data used by all of XSEC
int XSECPlatformUtils::initCount = 0;
XSECCryptoProvider * XSECPlatformUtils::g_cryptoProvider = NULL;
+// Determine default crypto provider
+
+#if defined (HAVE_OPENSSL)
+# define XSEC_DEFAULT_PROVIDER OpenSSLCryptoProvider()
+#else
+# if defined (HAVE_WINCAPI)
+# define XSEC_DEFAULT_PROVIDER WinCAPICryptoProvider()
+# endif
+#endif
+
void XSECPlatformUtils::Initialise(XSECCryptoProvider * p) {
if (++initCount > 1)
@@ -91,7 +108,12 @@
if (p != NULL)
g_cryptoProvider = p;
else
- XSECnew(g_cryptoProvider, OpenSSLCryptoProvider());
+#if defined XSEC_DEFAULT_PROVIDER
+ XSECnew(g_cryptoProvider, XSEC_DEFAULT_PROVIDER);
+#else
+ throw XSECException(XSECException::CryptoProviderError,
+ "XSECPlatformUtils::Initialise() called with NULL provider, but no default defined");
+#endif
// Set up necessary constants
DSIGConstants::create();