14.07.2006 17:26:13экспорт ключа Ответов: 2
Ivan
не удаеться даже получить длинну ключа, хотя он создаеться!

if (!::CryptAcquireContext(&o->hCryptProv, 0, "Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider", 75, 0))
{
int ers = ::GetLastError();
DWORD err = ::GetLastError();
if (!::CryptAcquireContext(&o->hCryptProv, 0, "Crypto-Pro GOST R 34.10-2001 Cryptographic Service Provider", 75, CRYPT_NEWKEYSET))
{
int erd = ::GetLastError();
DWORD err = ::GetLastError();
throw CCC_CertificateError(CCC_CertificateError::ContextError, err, L"Error CryptAcquireContext", L"CCC_PrivateKeyCreator::CCC_PrivateKeyCreator" );
}
}

//
// AT_SIGNATURE - ROOT AT_KEYEXCHANGE - client MyCryptoHandle =(int)&hCryptProv;
//
if (!::CryptGenKey(o->hCryptProv, AT_SIGNATURE, cryptlen << 16 | CRYPT_EXPORTABLE, &o->Keys))
{
::CryptReleaseContext(o->hCryptProv, 0);

DWORD err = ::GetLastError();
throw CCC_CertificateError(CCC_CertificateError::ContextError, err, L"Error CryptGenKey", L"CCC_PrivateKeyCreator::CCC_PrivateKeyCreator" );
}

PrivateKeySize = 0;

if (!::CryptExportKey(o->Keys, 0, PRIVATEKEYBLOB, 0, 0, &PrivateKeySize))
{
DWORD err = ::GetLastError();
throw CCC_CertificateError(CCC_CertificateError::ContextError, err, L"Error CryptExportKey", L"CCC_PrivateKeyCreator::CCC_PrivateKeyCreator" );

}

PrivateKey = (BYTE *) _alloca(PrivateKeySize);
if (PrivateKey == NULL)
{
DWORD err = ::GetLastError();
throw CCC_CertificateError(CCC_CertificateError::MemoryFault, err, L"Error _alloca PrivateKey", L"CCC_PrivateKeyCreator::CCC_PrivateKeyCreator" );
}

if (!::CryptExportKey(o->Keys, 0, PRIVATEKEYBLOB, 0, PrivateKey, &PrivateKeySize))
{
DWORD err = ::GetLastError();
throw CCC_CertificateError(CCC_CertificateError::ContextError, err, L"Error CryptExportKey", L"CCC_PrivateKeyCreator::CCC_PrivateKeyCreator" );

}
 
Ответы:
14.07.2006 17:46:51Kirill Sobolev
Естественно.
Воспользуйтесь поиском:
http://www.cryptopro.ru/cryptopro/forum/view.asp?q=1334
"Экспорт секретного ключа, как и сессионного ключа, возможен только на ключе парной связи (Диффи-Хеллмана)."
14.07.2006 18:15:13Ivan
кирил спасибо за ответ, толька я чесно не понял, какие там заголовочные файлы подключать.....?