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;
   
  
  
  

Reply via email to