#include ".\opencsp_m$csp.h"
OPENCSP_M$CSP* OPENCSP_M$CSP::_instance;
OPENCSP_M$CSP::OPENCSP_M$CSP(void)
{
BOOL fOK = FALSE;
fOK = CryptAcquireContext(&_hProv, TEXT("Keyset in MSCSP used by OpenCSP"),
MS_ENHANCED_PROV, PROV_RSA_FULL, 0);//获取有某个容器的CSP模块的指针
if (!fOK)
{
if (GetLastError() == NTE_BAD_KEYSET)
{
CryptAcquireContext(&_hProv, TEXT("Keyset in MSCSP used by OpenCSP"),
MS_ENHANCED_PROV, PROV_RSA_FULL, CRYPT_NEWKEYSET);
HCRYPTKEY hKey = 0;
CryptGenKey(_hProv, AT_KEYEXCHANGE, RSA1024BIT_KEY | CRYPT_EXPORTABLE, &hKey);
}
}
}
OPENCSP_M$CSP::~OPENCSP_M$CSP(void)
{
CryptReleaseContext(_hProv, 0);
}
OPENCSP_M$CSP*