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;