IPB
ЛогинПароль:

> Цифровая подпись
сообщение
Сообщение #1


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


Привет всем.

Столкнулся с проблемой, моя программа, написанная на Делфи, при запуске на компьютере с установленным KIS 2010 вызывает у него странную реакцию: антивирус кричит, что программа подозрительна, ибо у неё нету цифровой подписи. Хочу исправить, ибо человек нервничает. Так то программа вполне безобидная. Искал по сети, лишь в одной теме нашёл, что вроде бы в поставке Делфи есть утилита signtool для подписи, но там было довольно запутанно описано это всё.. Что посоветуете?..


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


Я там и был, ну не сказал бы, что всё так уж хорошо описано.. smile.gif SignTool нашёл в системе, только там же ещё файл сертификата надо, я так понял? И ещё, по ссылке человек выкладывал процедуру


uses MSSIGN32;

procedure Sing( const AFile : THandleSignFileInfo;
const Alg : ALG_ID; const ASPC, APVK, AURL : WideString ); overload;
const
CONST_COUNT : DWORD = 0;
var
Url : PWideChar;
SignerCert : SIGNER_CERT;
FileInfo : SIGNER_FILE_INFO;
SubjectInfo : SIGNER_SUBJECT_INFO;
ProviderInfo : SIGNER_PROVIDER_INFO;
SignatureInfo : SIGNER_SIGNATURE_INFO;
begin
CryptoPrepare( FileInfo, SizeOf( SIGNER_FILE_INFO ));
FileInfo.pwszFileName := PWideChar( AFile.Name );
FileInfo.hFile := AFile.Handle;

CryptoPrepare( SubjectInfo, SizeOf( SIGNER_SUBJECT_INFO ));
SubjectInfo.pdwIndex := @CONST_COUNT;
SubjectInfo.dwSubjectChoice := SIGNER_SUBJECT_FILE;
SubjectInfo.pSignerFileInfo := PSIGNER_FILE_INFO( @FileInfo );

CryptoPrepare( SignerCert, SizeOf( SIGNER_CERT ));
SignerCert.dwCertChoice := SIGNER_CERT_SPC_FILE;
SignerCert.Attribute.pwszSpcFile := PWideChar( ASPC );

CryptoPrepare( SignatureInfo, SizeOf( SIGNER_SIGNATURE_INFO ));
SignatureInfo.algidHash := Alg;

CryptoPrepare( ProviderInfo, SizeOf( SIGNER_PROVIDER_INFO ));
ProviderInfo.dwProviderType := 1;
ProviderInfo.dwPvkChoice := PVK_TYPE_FILE_NAME;
ProviderInfo.pwszPvkFileName := PWideChar( APVK );

Url := nil;
if AURL <> '' then
Url := PWideChar( AURL );

CryptoCheck( SignerSign( SubjectInfo, SignerCert, SignatureInfo,
@ProviderInfo, Url, nil, nil ));
end;


Это ж подпишет? И как входной параметр-хендл файла задать?


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.05.2024 18:28
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name