powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Помогите с CryptoAPI
1 сообщений из 1, страница 1 из 1
Помогите с CryptoAPI
    #33669007
=Ozzy=
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите в чем может быть причина и как её решить. Есть клиент и сервер. Клиент хранит свой закрытый ключ. Сервер с помощью открытого ключа клиента шифрует симметричный ключ, которым зашифровано сообщение. Клиент получает зашифрованный симметричный ключ и расшифровывает его своим закрытым. Все эти действия проходят. Но теперь из расшифрованного симметричного ключа я не могу получить HCRYPTKEY, т.е. CryptImportKey не проходит и выдает сообщение типа "неверный провайдер" (самая последняя функция в примере) . В чем я ошибся???????


void CCryptoClass::DeCryptMsg(/*out-in*/char* message,/*out*/DWORD& newlen,
/*out*/char* hashKey,char* RSACloseKey,DWORD lenCloseKey)
{ // расшифровать сообщение
HCRYPTPROV hProv;
HCRYPTKEY hSessionKey = 0;
BOOL bRes;
BYTE *pCryptBuf=0;
HCRYPTKEY hKey=0;
DWORD buflen;
DWORD datalen;

bRes=CryptAcquireContext(&hProv,NULL,NULL,PROV_RSA_FULL,0);
if(!bRes)ShowError(GetLastError());
if(!bRes)
{
if(GetLastError()==NTE_BAD_KEYSET)
if(!CryptAcquireContext(&hProv,NULL,NULL,PROV_RSA_FULL, CRYPT_NEWKEYSET))
ShowError(GetLastError());
}
bRes=CryptImportKey(hProv,(BYTE*)RSACloseKey,lenCloseKey,NULL,0,&hKey);
if(!bRes)ShowError(GetLastError());

DWORD dwhash=strlen(hashKey);
bRes=CryptDecrypt(hKey,0,TRUE,0,(BYTE*)hashKey,&dwhash);
if(!bRes)ShowError(GetLastError());

BYTE *pbKeyMaterial = NULL;

pbKeyMaterial = new BYTE[dwhash];
for(unsigned int c=0; c < dwhash; c++)
pbKeyMaterial[c] = hashKey[c];
pbKeyMaterial[dwhash]='\0';
int slen=strlen((char*)pbKeyMaterial);

bRes=CryptImportKey(hProv,pbKeyMaterial,slen,0,CRYPT_OAEP,&hSessionKey);
}
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Помогите с CryptoAPI
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]