Статус: Новичок
Группы: Участники
Зарегистрирован: 25.09.2009(UTC) Сообщений: 7 Откуда: russia
|
Здравствуйте! Нижеприведенный код (DELPHI) работает при использовании ключа, хранящегося на флешке или в реестре, но не работает с ключом, хранящимся на eToken. Код:Function GetSignSignature(ASignText: String): String;
var
Prov: HCRYPTPROV;
Hash: HCRYPTHASH;
BufLen: DWORD;
AContainerName: string;
begin
AContainerName := DoChooseContainer;
// Подключаемся к провайдеру
CryptAcquireContext(@Prov, PChar(AContainerName), PChar(CP_GR3410_2001_PROV_A), PROV_GOST_2001_DH, 0);
// Создаем ХЭШ объект
CryptCreateHash(Prov, 32798, 0, 0, @Hash);
// Считаем ХЭШ
CryptHashData(Hash, PByte(ASignText), Length(ASignText), 0);
// Определяем длину
BufLen:=0;
if not CryptSignHash(Hash, AT_SIGNATURE, nil, 0, nil, @BufLen)
then
begin
ShowMessage(SysErrorMessage(GetLastError));
end;
// Забираем
if BufLen>0 then begin
SetLength(Result, BufLen);
CryptSignHash(Hash, AT_SIGNATURE, nil, 0, PByte(Result), @BufLen)
end;
CryptDestroyHash(Hash);
CryptReleaseContext(Prov,0);
End;
CryptSignHash возвращает False, при этом код ошибки 0, т.е. "Операция успешно завершена". Где грабли?
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 25.09.2009(UTC) Сообщений: 7 Откуда: russia
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close