Программирование: ISSigVerify

Прототип

function ISSigVerify(const AllowedKeysRuntimeIDs: TStringList; const Filename: String; const VerifyFilename: Boolean; const KeepOpen: Boolean): TFileStream;

Описание

Выполняет проверку подписи указанного файла с использованием разрешённых ключей, поиск которых осуществляется по параметру RuntimeID из секции [ISSigKeys]. Чтобы разрешить использование любых ключей, установите для AllowedKeysRuntimeIDs значение nil. В случае ошибки будет вызвано исключение.

Если для параметра VerifyFilename указано значение False, при проверке подписи имя файла не учитывается. Рекомендуется устанавливать значение False только в том случае, если вы не знаете имя файла, которое использовалось при создании подписи. При этом размер файла и хеш всегда должны совпадать.

Возвращает дескриптор для все ещё открытого файла, если в параметре KeepOpen задано значение True, в противном случае возвращает значение nil. Рекомендуется для этого параметра всегда указывать значение True, если планируется использовать файл для чего-либо ещё после выполнения проверки. В противном случае вы рискуете создать уязвимость Time-Of-Check to Time-Of-Use (TOCTOU) [внешняя ссылка].

Пример

var
  F: TFileStream;
begin
  F := ISSigVerify([], Filename, True);
  try
    // Операции с файлом
  finally
    F.Free;
  end;
end;

См. также:

Подписи .issig: Введение
DownloadTemporaryFileWithISSigVerify