Index: include/xmlsec/crypto.h
===================================================================
RCS file: /cvs/gnome/xmlsec/include/xmlsec/crypto.h,v
retrieving revision 1.12
diff -u -r1.12 crypto.h
--- include/xmlsec/crypto.h	21 Jul 2003 03:12:37 -0000	1.12
+++ include/xmlsec/crypto.h	31 Aug 2003 11:15:21 -0000
@@ -32,6 +32,11 @@
 #include <xmlsec/gnutls/crypto.h>
 #include <xmlsec/gnutls/symbols.h>
 #else /* XMLSEC_CRYPTO_GNUTLS */
+#ifdef XMLSEC_CRYPTO_MSCRYPTO
+#include <xmlsec/mscrypto/app.h>
+#include <xmlsec/mscrypto/crypto.h>
+#include <xmlsec/mscrypto/symbols.h>
+#else /* XMLSEC_CRYPTO_MSCRYPTO */
 #ifdef XMLSEC_CRYPTO_NSS
 #include <xmlsec/nss/app.h>
 #include <xmlsec/nss/crypto.h>
@@ -39,6 +44,7 @@
 #else /* XMLSEC_CRYPTO_NSS */
 #error No crypto library defined
 #endif /* XMLSEC_CRYPTO_GNUTLS */
+#endif /* XMLSEC_CRYPTO_MSCRYPTO */
 #endif /* XMLSEC_CRYPTO_NSS */
 #endif /* XMLSEC_CRYPTO_OPENSSL */
 
Index: win32/Makefile.msvc
===================================================================
RCS file: /cvs/gnome/xmlsec/win32/Makefile.msvc,v
retrieving revision 1.19
diff -u -r1.19 Makefile.msvc
--- win32/Makefile.msvc	22 Aug 2003 18:08:26 -0000	1.19
+++ win32/Makefile.msvc	31 Aug 2003 11:15:25 -0000
@@ -51,6 +51,8 @@
 XMLSEC_OPENSSL_INTDIR_A = $(XMLSEC_BASENAME)_openssl_a.int
 XMLSEC_NSS_INTDIR       = $(XMLSEC_BASENAME)_nss.int
 XMLSEC_NSS_INTDIR_A     = $(XMLSEC_BASENAME)_nss_a.int
+XMLSEC_MSCRYPTO_INTDIR  = $(XMLSEC_BASENAME)_mscrypto.int
+XMLSEC_MSCRYPTO_INTDIR_A= $(XMLSEC_BASENAME)_mscrypto_a.int
 XMLSEC_APPS_INTDIR      = apps.int
 XMLSEC_APPS_INTDIR_A    = apps_a.int
 
@@ -197,6 +199,38 @@
 	$(XMLSEC_NSS_INTDIR_A)\kw_aes.obj\
 	$(XMLSEC_NSS_INTDIR_A)\strings.obj
 
+# xmlsec-mscrypto object files.
+XMLSEC_MSCRYPTO_OBJS = \
+	$(XMLSEC_MSCRYPTO_INTDIR)\app.obj\
+	$(XMLSEC_MSCRYPTO_INTDIR)\crypto.obj \
+	$(XMLSEC_MSCRYPTO_INTDIR)\ciphers.obj \
+	$(XMLSEC_MSCRYPTO_INTDIR)\digests.obj \
+	$(XMLSEC_MSCRYPTO_INTDIR)\symkeys.obj \
+	$(XMLSEC_MSCRYPTO_INTDIR)\kt_rsa.obj \
+	$(XMLSEC_MSCRYPTO_INTDIR)\hmac.obj \
+	$(XMLSEC_MSCRYPTO_INTDIR)\strings.obj \
+	$(XMLSEC_MSCRYPTO_INTDIR)\signatures.obj \
+	$(XMLSEC_MSCRYPTO_INTDIR)\certkeys.obj \
+	$(XMLSEC_MSCRYPTO_INTDIR)\keysstore.obj \
+	$(XMLSEC_MSCRYPTO_INTDIR)\msx509.obj \
+	$(XMLSEC_MSCRYPTO_INTDIR)\x509vfy.obj
+
+# static xmlsec-mscrypto object files.
+XMLSEC_MSCRYPTO_OBJS_A = \
+	$(XMLSEC_MSCRYPTO_INTDIR_A)\app.obj\
+	$(XMLSEC_MSCRYPTO_INTDIR_A)\crypto.obj \
+	$(XMLSEC_MSCRYPTO_INTDIR_A)\ciphers.obj \
+	$(XMLSEC_MSCRYPTO_INTDIR_A)\digests.obj \
+	$(XMLSEC_MSCRYPTO_INTDIR_A)\symkeys.obj \
+	$(XMLSEC_MSCRYPTO_INTDIR_A)\hmac.obj \
+	$(XMLSEC_MSCRYPTO_INTDIR_A)\kt_rsa.obj \
+	$(XMLSEC_MSCRYPTO_INTDIR_A)\strings.obj \
+	$(XMLSEC_MSCRYPTO_INTDIR_A)\signatures.obj \
+	$(XMLSEC_MSCRYPTO_INTDIR_A)\certkeys.obj \
+	$(XMLSEC_MSCRYPTO_INTDIR_A)\keysstore.obj \
+	$(XMLSEC_MSCRYPTO_INTDIR_A)\msx509.obj \
+	$(XMLSEC_MSCRYPTO_INTDIR_A)\x509vfy.obj
+
 # configurable options
 !if "$(WITH_LIBXSLT)" == "1"
 !else 
@@ -239,6 +273,18 @@
 XMLSEC_CRYPTO_ALIBS    = smime3.lib ssl3.lib nss3.lib libnspr4_s.lib libplds4_s.lib libplc4_s.lib
 !endif
 
+!if "$(WITH_CRYPTO)" == "mscrypto"
+XMLSEC_CRYPTO          = "mscrypto"
+XMLSEC_CRYPTO_OBJS     = $(XMLSEC_MSCRYPTO_OBJS)
+XMLSEC_CRYPTO_OBJS_A   = $(XMLSEC_MSCRYPTO_OBJS_A)
+XMLSEC_CRYPTO_INTDIR   = $(XMLSEC_MSCRYPTO_INTDIR)
+XMLSEC_CRYPTO_INTDIR_A = $(XMLSEC_MSCRYPTO_INTDIR_A)
+XMLSEC_CRYPTO_SRCDIR   = $(XMLSEC_SRCDIR)\mscrypto
+XMLSEC_CRYPTO_CFLAGS   = /D "XMLSEC_CRYPTO_MSCRYPTO" /D "XMLSEC_CRYPTO=\"mscrypto\""
+XMLSEC_CRYPTO_SOLIBS   = user32.lib gdi32.lib Crypt32.lib Advapi32.lib
+XMLSEC_CRYPTO_ALIBS    = user32.lib gdi32.lib Crypt32.lib Advapi32.lib
+!endif
+
 # Names of various input and output components.
 XMLSEC_NAME = xmlsec
 XMLSEC_BASENAME = lib$(XMLSEC_NAME)
Index: win32/configure.js
===================================================================
RCS file: /cvs/gnome/xmlsec/win32/configure.js,v
retrieving revision 1.6
diff -u -r1.6 configure.js
--- win32/configure.js	22 Apr 2003 11:52:42 -0000	1.6
+++ win32/configure.js	31 Aug 2003 11:15:26 -0000
@@ -88,7 +88,7 @@
 	txt += "Options can be specified in the form <option>=<value>, where the value is\n";
 	txt += "either 'yes' or 'no'.\n\n";
 	txt += "XmlSec Library options, default value given in parentheses:\n\n";
-	txt += "  crypto:     Crypto engine: \"openssl\", \"openssl_096\", \"nss\" (\"" + withCrypto + "\");\n"
+	txt += "  crypto:     Crypto engine: \"openssl\", \"openssl_096\", \"nss\", \"mscrypto\" (\"" + withCrypto + "\");\n"
  	txt += "  xslt:       LibXSLT is used (" + (withLibXSLT? "yes" : "no")  + ")\n";	
  	txt += "  iconv:      Use the iconv library (" + (withIconv? "yes" : "no")  + ")\n";	
 	txt += "\nWin32 build options, default value given in parentheses:\n\n";
