Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Tank  
#1 Оставлено : 2 июля 2008 г. 19:13:14(UTC)
Tank

Статус: Новичок

Группы: Участники
Зарегистрирован: 02.07.2008(UTC)
Сообщений: 2
Откуда: MSK

Добрый день!

У меня проблема с определением размера подписи.

Приведу код без обработки ошибок:

HCRYPTPROV hProv;
LPCTSTR pszContainer = _T("2008.06.26");
BYTE *pbBuffer= (BYTE *)"The data that is to be hashed and signed.";
DWORD dwBufferLen = (DWORD)(strlen((char *)pbBuffer)+1);
HCRYPTHASH hHash;
HCRYPTKEY hKey;
HCRYPTKEY hPubKey;
BYTE *pbKeyBlob;
BYTE *pbSignature;
DWORD dwSigLen;
DWORD dwBlobLen;
BYTE *pbHash;
DWORD cbHash;
FILE *signature;
LPTSTR szDescription = NULL;

CryptAcquireContext(&hProv, pszContainer, NULL, 75, 0);
CryptGetUserKey(hProv, AT_KEYEXCHANGE, &hKey);
CryptExportKey(hKey, 0, PUBLICKEYBLOB, 0, NULL, &dwBlobLen);
pbKeyBlob = (BYTE*)malloc(dwBlobLen);
CryptExportKey(hKey, 0, PUBLICKEYBLOB, 0, pbKeyBlob, &dwBlobLen);
CryptCreateHash(hProv, CALG_GR3411, 0, 0, &hHash);
CryptGetHashParam(hHash, HP_OID, NULL, &cbHash, 0);
pbHash = (BYTE*)malloc(cbHash);
CryptGetHashParam(hHash, HP_OID, pbHash, &cbHash, 0);
CryptHashData(hHash, pbBuffer, dwBufferLen, 0);
dwSigLen= 0;
CryptSignHash(hHash, AT_KEYEXCHANGE, szDescription, 0, NULL, &dwSigLen); // Ошибка 80090016
pbSignature = (BYTE *)malloc(dwSigLen);
CryptSignHash(hHash, AT_SIGNATURE, szDescription, 0, pbSignature, &dwSigLen);


Почему при вызове функции CryptSignHash возникает ошибка 80090016?
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.