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/10/12 03:30:13 UTC
cvs commit: xml-security/c/src/tools/templatesign templatesign.cpp
blautenb 2003/10/11 18:30:13
Modified: c/src/tools/checksig checksig.cpp
c/src/tools/templatesign templatesign.cpp
Log:
Updated to start handling keys in Windows with their own context
Revision Changes Path
1.24 +17 -40 xml-security/c/src/tools/checksig/checksig.cpp
Index: checksig.cpp
===================================================================
RCS file: /home/cvs/xml-security/c/src/tools/checksig/checksig.cpp,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- checksig.cpp 11 Sep 2003 11:11:55 -0000 1.23
+++ checksig.cpp 12 Oct 2003 01:30:13 -0000 1.24
@@ -208,10 +208,6 @@
bool useXSECURIResolver = false;
bool useAnonymousResolver = false;
bool useInteropResolver = false;
-#if defined(_WIN32) && defined (HAVE_WINCAPI)
- HCRYPTPROV win32DSSCSP = 0; // Crypto Providers
- HCRYPTPROV win32RSACSP = 0;
-#endif
bool skipRefs = false;
@@ -253,31 +249,8 @@
else if (stricmp(argv[paramCount], "--wincapi") == 0 || stricmp(argv[paramCount], "-w") == 0 ||
stricmp(argv[paramCount], "--winhmackey") == 0 || stricmp(argv[paramCount], "-wh") == 0) {
- if (win32DSSCSP == 0) {
- WinCAPICryptoProvider * cp;
- // Obtain default PROV_DSS
- if (!CryptAcquireContext(&win32DSSCSP,
- NULL,
- NULL,
- PROV_DSS,
- CRYPT_VERIFYCONTEXT)) {
- cerr << "Error acquiring DSS Crypto Service Provider" << endl;
- return 2;
- }
-
- if (!CryptAcquireContext(&win32RSACSP,
- NULL,
- NULL,
- PROV_RSA_FULL,
- CRYPT_VERIFYCONTEXT)) {
- cerr << "Error acquiring RSA Crypto Service Provider" << endl;
- return 2;
- }
-
- // Use default DSS provider
- cp = new WinCAPICryptoProvider(win32DSSCSP, win32RSACSP);
- XSECPlatformUtils::SetCryptoProvider(cp);
- }
+ WinCAPICryptoProvider * cp = new WinCAPICryptoProvider();
+ XSECPlatformUtils::SetCryptoProvider(cp);
if (stricmp(argv[paramCount], "--winhmackey") == 0 || stricmp(argv[paramCount], "-wh") == 0) {
@@ -285,6 +258,18 @@
paramCount++;
+ HCRYPTPROV win32RSACSP;
+
+ if (!CryptAcquireContext(&win32RSACSP,
+ NULL,
+ NULL,
+ PROV_RSA_FULL,
+ CRYPT_VERIFYCONTEXT))
+ {
+ cerr << "Error obtaining default RSA_PROV" << endl;
+ return 2;
+ }
+
HCRYPTKEY k;
HCRYPTHASH h;
BOOL fResult = CryptCreateHash(
@@ -325,11 +310,12 @@
// Wrap in a WinCAPI object
WinCAPICryptoKeyHMAC * hk;
hk = new WinCAPICryptoKeyHMAC();
- hk->setWinKey(k);
+ hk->setWinKey(win32RSACSP, k);
key = hk;
CryptDestroyHash(h);
+// CryptReleaseContext(win32RSACSP, 0);
}
@@ -610,15 +596,6 @@
retResult = 1;
}
-#if defined (HAVE_WINCAPI)
- if (win32DSSCSP != 0) {
- CryptReleaseContext(win32DSSCSP, 0);
- }
- if (win32RSACSP != 0) {
- CryptReleaseContext(win32RSACSP, 0);
- }
-#endif
- //prov.releaseSignature(sig);
// Janitor will clean up the parser
return retResult;
1.13 +6 -14 xml-security/c/src/tools/templatesign/templatesign.cpp
Index: templatesign.cpp
===================================================================
RCS file: /home/cvs/xml-security/c/src/tools/templatesign/templatesign.cpp,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- templatesign.cpp 28 Sep 2003 12:31:33 -0000 1.12
+++ templatesign.cpp 12 Oct 2003 01:30:13 -0000 1.13
@@ -831,7 +831,7 @@
return 2;
}
// We know RSA provider is not required
- cp = new WinCAPICryptoProvider(win32DSSCSP, 0);
+ cp = new WinCAPICryptoProvider();
XSECPlatformUtils::SetCryptoProvider(cp);
// Now get the key
@@ -871,7 +871,7 @@
return 2;
}
- cp = new WinCAPICryptoProvider(win32DSSCSP, win32RSACSP);
+ cp = new WinCAPICryptoProvider();
XSECPlatformUtils::SetCryptoProvider(cp);
// Now get the key
@@ -894,15 +894,7 @@
else if (stricmp(argv[paramCount], "--winhmac") == 0 || stricmp(argv[paramCount], "-wh") == 0) {
WinCAPICryptoProvider * cp;
- // Obtain default PROV_DSS, with default user key container
- if (!CryptAcquireContext(&win32DSSCSP,
- NULL,
- NULL,
- PROV_DSS,
- 0)) {
- cerr << "Error acquiring DSS Crypto Service Provider" << endl;
- return 2;
- }
+ // Obtain default PROV_RSA, with default user key container
if (!CryptAcquireContext(&win32RSACSP,
NULL,
NULL,
@@ -911,7 +903,7 @@
cerr << "Error acquiring RSA Crypto Service Provider" << endl;
return 2;
}
- cp = new WinCAPICryptoProvider(win32DSSCSP, win32RSACSP);
+ cp = new WinCAPICryptoProvider();
XSECPlatformUtils::SetCryptoProvider(cp);
paramCount++;
@@ -955,7 +947,7 @@
// Wrap in a WinCAPI object
WinCAPICryptoKeyHMAC * hk;
hk = new WinCAPICryptoKeyHMAC();
- hk->setWinKey(k);
+ hk->setWinKey(win32RSACSP, k);
key = hk;