Я создал пару ключей RSA в хранилище ключей Windows.Расшифровка с использованием неэкспортируемого закрытого ключа с CryptoAPI
I зашифрованные данные (симметричный ключ) успешно:
HCERTSTORE hstore = ::CertOpenSystemStore(NULL, L"TestStore");
PCCERT_CONTEXT pctxt = ::CertFindCertificateInStore(hstore, X509_ASN_ENCODING, NULL,
CERT_FIND_SUBJECT_STR, L"My Test Keys", NULL);
HCRYPTPROV hprovider = NULL;
if(!::CryptAcquireContext(&hprovider,
NULL,
MS_ENHANCED_PROV,
PROV_RSA_FULL,
NULL/*CRYPT_NEWKEYSET*/))
{
DWORD err = ::GetLastError();
return 0;
}
HCRYPTKEY hkey = NULL;
if(!::CryptImportPublicKeyInfo(hprovider,
X509_ASN_ENCODING,
&pctxt->pCertInfo->SubjectPublicKeyInfo,
&hkey
))
{
return 0;
}
Теперь я CryptEncrypt() с HCRYPTKEY.
Далее Я хочу расшифровать данные с помощью закрытого ключа, но это не экспортируется. Все примеры, которые я видел, включают импорт ключей.
Как дешифровать данные без экспорта ключа?