/[openpgpmdrv]/trunk/OpenPGPminidriverTest/BaseCSP.cpp
ViewVC logotype

Diff of /trunk/OpenPGPminidriverTest/BaseCSP.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2 by vletoux, Tue Feb 23 19:18:59 2010 UTC revision 3 by vletoux, Thu Feb 25 22:09:17 2010 UTC
# Line 19  Line 19 
19  #include <tchar.h>  #include <tchar.h>
20  #include <Cryptuiapi.h>  #include <Cryptuiapi.h>
21  #include <commctrl.h>  #include <commctrl.h>
22    #include <cardmod.h>
23  #include "dialog.h"  #include "dialog.h"
24    #include "global.h"
25  #pragma comment(lib,"Cryptui")  #pragma comment(lib,"Cryptui")
26  #pragma comment(lib,"Crypt32")  #pragma comment(lib,"Crypt32")
27    
# Line 319  DWORD Sign(PTSTR szContainer, DWORD dwKe Line 321  DWORD Sign(PTSTR szContainer, DWORD dwKe
321          HCRYPTHASH hHash = NULL;          HCRYPTHASH hHash = NULL;
322          PBYTE pbSignature = NULL;          PBYTE pbSignature = NULL;
323          DWORD dwSignatureSize = 0;          DWORD dwSignatureSize = 0;
324            PBYTE pbSignatureTest = NULL;
325            DWORD dwSignatureTestSize = 0;
326          BYTE pbChallenge[20];          BYTE pbChallenge[20];
327          TCHAR szDescription[] = TEXT("Test");          TCHAR szDescription[] = TEXT("Test");
328            TCHAR szContainerName[] = OPENPGP_TEST_CONTAINER;
329          __try          __try
330          {          {
331                  bStatus = CryptAcquireContext(&hProv,szContainer, MS_SCARD_PROV, PROV_RSA_FULL, 0);                  bStatus = CryptAcquireContext(&hProv,szContainer, MS_SCARD_PROV, PROV_RSA_FULL, 0);
# Line 378  DWORD Sign(PTSTR szContainer, DWORD dwKe Line 383  DWORD Sign(PTSTR szContainer, DWORD dwKe
383                          LocalFree(pbSignature);                          LocalFree(pbSignature);
384                  if (hHash)                  if (hHash)
385                          CryptDestroyHash(hHash);                          CryptDestroyHash(hHash);
                 if (hKey)  
                         CryptDestroyKey(hKey);  
386                  if (hProv)                  if (hProv)
387                          CryptReleaseContext(hProv, 0);                          CryptReleaseContext(hProv, 0);
388          }          }
# Line 395  DWORD Decrypt(PTSTR szContainer, DWORD d Line 398  DWORD Decrypt(PTSTR szContainer, DWORD d
398          HCRYPTHASH hHash = NULL;          HCRYPTHASH hHash = NULL;
399          PBYTE pbCrypt = NULL;          PBYTE pbCrypt = NULL;
400          DWORD dwCryptSize = 0, dwBufferSize;          DWORD dwCryptSize = 0, dwBufferSize;
401          BYTE pbChallenge[]=          BYTE pbChallenge[20] = "test";
         {0x09,0x59,0x1B,0x38,0x56,0xBD,0x71,0xA2,0x38,0x70,0x4E,0xDC,0x47,0xB3,0x0B,0x19,0xB3,  
         0x33,0x65,0x79,0xF7,0x46,0x4C,0xBF,0x24,0x77,  
         0x7E,0x06,0x1D,0xA6,0x97,0x46,0x08,0x0C,0x95};  
         BYTE pbDecrypt[] =  
         {0x5D,0x29,0xB8,0xC2,0x27,0x26,0xAC,0x36,0x29,0x40,0xEF,0x38,0x65,0xD0,0x37,0x85,0x11,0x91  
 ,0x18,0x98,0x6A,0xDF,0xA4,0x5A,0xC2,0x66,0x4F,0x1E,0xF6,0xC5,0xE5,0xEE,0x85,0xC2,0x0A,0xA6,0xFF,0x69,0x6D,0xF1,0xF5,0xEA,0x83,0x49  
 ,0xB6,0x8E,0xE2,0xE8,0x2C,0x0B,0x38,0x9B,0x70,0x60,0xF8,0x1F,0xE1,0xCC,0xE5,0xA4,0xD9,0xF6,0x39,0x8D,0x94,0x6A,0x36,0xF0,0xA5,0x8B  
 ,0xF3,0x7F,0xC1,0xC8,0x53,0x42,0x70,0x33,0x6E,0x28,0xFC,0x5E,0xAC,0x7B,0xBC,0xB5,0x0D,0x93,0xD6,0xCC,0xF3,0x05,0x47,0xD8,0xAB,0x5E  
 ,0x43,0x8B,0x17,0x27,0x38,0x70,0xC9,0x0D,0xFC,0xF6,0x8F,0xEA,0x63,0xBB,0xF4,0x58,0xB1,0x8B,0x8D,0xC7,0x89,0x43,0x7A,0x69,0xEC,0x1E  
 ,0x9F,0x13,0xFC,0xC2,0x73,0xEA,0x04,0x0C,0x4E,0x1B,0x1B,0x55,0x51,0x14,0x20,0x90,0x60,0x30,0x73,0x11,0xE8,0x6F,0xF0,0x45,0xC0,0x49  
 ,0x1A,0x0B,0x9F,0x7C,0x30,0x5E,0xF9,0x69,0x2F,0x98,0x2C,0x53,0x06,0x02,0x93,0xAE,0xC8,0x12,0xEE,0x81,0xD4,0x9C,0xE6,0x16,0xB2,0x7D  
 ,0xF3,0x3E,0x9D,0xB5,0xDC,0x39,0x39,0x43,0xA1,0x37,0x81,0x06,0xC8,0x8D,0x40,0xB0,0x62,0x8F,0xE1,0x6C,0xB3,0xDE,0x08,0xC2,0x06,0xD5  
 ,0x8A,0x57,0xB5,0x3A,0x24,0x7A,0x75,0x97,0xDD,0x06,0x3B,0x16,0x4D,0xEE,0xC7,0x5E,0x88,0x49,0xF0,0x02,0x3C,0x99,0x93,0xE2,0x98,0xC5  
 ,0x8A,0x65,0x2F,0x85,0x99,0x25,0xC3,0x91,0x62,0x9E,0x39,0xB7,0xAB,0xB6,0x51,0x0C,0x74,0x98,0x5C,0x58,0x70,0x44,0xDE,0x79,0xF0,0xC5  
 ,0x04,0xAF,0x59,0xA5};  
402          __try          __try
403          {          {
404                  bStatus = CryptAcquireContext(&hProv,szContainer, MS_SCARD_PROV, PROV_RSA_FULL, 0);                  bStatus = CryptAcquireContext(&hProv,szContainer, MS_SCARD_PROV, PROV_RSA_FULL, 0);
# Line 425  DWORD Decrypt(PTSTR szContainer, DWORD d Line 413  DWORD Decrypt(PTSTR szContainer, DWORD d
413                          dwReturn = GetLastError();                          dwReturn = GetLastError();
414                          __leave;                          __leave;
415                  }                  }
416                  //bStatus = CryptGenRandom(hProv,ARRAYSIZE(pbChallenge),pbChallenge);                  bStatus = CryptGenRandom(hProv,ARRAYSIZE(pbChallenge),pbChallenge);
417                  if (!bStatus)                  if (!bStatus)
418                  {                  {
419                          dwReturn = GetLastError();                          dwReturn = GetLastError();
# Line 446  DWORD Decrypt(PTSTR szContainer, DWORD d Line 434  DWORD Decrypt(PTSTR szContainer, DWORD d
434                  }                  }
435                  memcpy(pbCrypt, pbChallenge,  ARRAYSIZE(pbChallenge));                  memcpy(pbCrypt, pbChallenge,  ARRAYSIZE(pbChallenge));
436                  dwCryptSize =  ARRAYSIZE(pbChallenge);                  dwCryptSize =  ARRAYSIZE(pbChallenge);
437                  if (!CryptEncrypt(hKey,NULL, FALSE, 0, pbCrypt, &dwCryptSize,dwBufferSize))                  if (!CryptEncrypt(hKey,NULL, TRUE, 0, pbCrypt, &dwCryptSize,dwBufferSize))
438                  {                  {
439                          dwReturn = GetLastError();                          dwReturn = GetLastError();
440                          __leave;                          __leave;
441                  }                  }
442                          //if (!CryptDecrypt(hKey, NULL, FALSE, 0, pbCrypt, &dwCryptSize))                  if (!CryptDecrypt(hKey, NULL, TRUE, 0, pbCrypt, &dwCryptSize))
                 dwCryptSize = ARRAYSIZE(pbDecrypt);  
                 if (!CryptDecrypt(hKey, NULL, FALSE, 0, pbDecrypt, &dwCryptSize))  
443                  {                  {
444                          dwReturn = GetLastError();                          dwReturn = GetLastError();
445                          __leave;                          __leave;

Legend:
Removed from v.2  
changed lines
  Added in v.3

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26