Использование MakeCat

Средство MakeCat создает файл каталога без знака, который содержит хэши набора файлов, а также связанные атрибуты каждого файла в наборе. Файл каталога позволяет пользователю подписывать один файл (каталог), а не подписывать несколько отдельных файлов.

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

Перед использованием средства MakeCat пользователь должен подготовить файл определения каталога (.cdf) с помощью любого текстового редактора. CDF-файл содержит список файлов и атрибуты файлов для каталогизации (спецификации приведены ниже). Средство MakeCat сканирует CDF-файл, проверяет список атрибутов каждого из перечисленных файлов, добавляет перечисленные атрибуты в сам каталог, хэширует все перечисленные файлы и сохраняет хэши каждого файла в файле каталога. Каждый файл имеет свой хэш и атрибуты, хранящиеся отдельно в каталоге. Затем этот файл каталога можно подписать и передать. Получатель может впоследствии сравнить хэш каждого файла в каталоге с хэшом исходных файлов, чтобы доказать, что исходное содержимое не несанкционированно. MakeCat не изменяет CDF-файл.

В следующих примерах используются команды MakeCat .

  • Создайте файл каталога из файла Good.cdf.

    MakeCat -v good.cdf

Файл Good.cdf создает файл каталога Good.cat путем анализа файлов UnsignedPE.exe, UnsignedDOS.exe, Unsigned.cab, Unsigned.Class и SignedPE.exe. Проанализированные файлы, а также Good.cdf и вновь созданные Good.cat находятся в одном каталоге.

[CatalogHeader]
Name=Good.cat
ResultDir=.\
PublicVersion=0x00000001
EncodingType=
CATATTR1=0x10010001:Movie1:FirstMovie
CATATTR2=0x10010001:Movie2:SecondMovie
CATATTR3=0x10010001:Movie3:ThirdMovie

[CatalogFiles]
UnsignedPE=.\UnsignedPE.EXE
UnsignedDOS=.\UnsignedDOS.EXE
<HASH>UnsignedCAB=.\Unsigned.CAB
UnsignedClass=.\Unsigned.Class
SignedPE=.\SignedPE.EXE

Примечание

Последняя запись в CDF-файле всегда должна иметь явный символ новой строки в конце строки.