Статус: Участник
Группы: Участники
Зарегистрирован: 13.12.2011(UTC) Сообщений: 22
|
Андрей * написал: на данном форуме + на старом = все есть, уж поверь p.s. а ЭЦП через COM (Capicom) - уже осилил? или сразу, за CryptoAPI ;)
Андрей, тут однозначно что-то не так, подскажите, пожалуйста! Я, так и быть, решил сделать совершенно стандартную подпись без использования каких-то там уже имеющихся контейнеров, созданных с помощью КриптоПро 2.0 - ничего лишнего! Вот: Код:
Result:='';
CryptAcquireContext(@Prov,nil,nil,PROV_RSA_FULL,0);
CryptCreateHash(Prov,CALG_MD5,0,0,@Hash);
CryptHashData(Hash,PByte(sMessage),Length(sMessage),0);
BufLen:=0;
CryptSignHash(Hash,AT_SIGNATURE,nil,0,nil,@BufLen);
if BufLen>0 then begin
SetLength(Result,BufLen);
CryptSignHash(Hash,AT_SIGNATURE,nil,0,PByte(Result),@BufLen);
end;
CryptDestroyHash(Hash);
CryptReleaseContext(Prov,0);
Этот код можно встретить в каждом примере. Кстати, я даже подключил модуль Wcrypt2, хоть его и все не любят за его урезанность. Но для формирования ЭЦП его, кажется, достаточно. И что бы Вы думали - опять никаких результатов! не подписывает и все тут! С каким ещё бубном тут плясать надо?
|