Usando MakeCat
A ferramenta MakeCat cria um arquivo de catálogo sem sinal, que contém os hashes de um conjunto de arquivos, juntamente com atributos associados de cada arquivo no conjunto. Um arquivo de catálogo permite que o usuário assine um arquivo (o catálogo) em vez de assinar vários arquivos individuais.
Depois que o arquivo de catálogo não assinado é assinado e transmitido, o receptor pode comparar os hashes dos arquivos originais com os hashes contidos no arquivo de catálogo e verificar se os arquivos estão livres de adulteração.
Antes de usar a ferramenta MakeCat , o usuário deve preparar um Arquivo de Definição de Catálogo (.cdf), usando qualquer editor de texto. O arquivo .cdf contém a lista de arquivos e os atributos dos arquivos a serem catalogados (as especificações estão listadas abaixo). A ferramenta MakeCat examina o arquivo .cdf, verifica a lista de atributos de cada arquivo listado, adiciona os atributos listados ao próprio catálogo, faz hashes de cada um dos arquivos listados e armazena os hashes de cada arquivo no arquivo de catálogo. Cada arquivo tem seu hash e atributos armazenados separadamente no catálogo. Esse arquivo de catálogo pode ser assinado e transmitido. O receptor pode comparar posteriormente o hash de cada arquivo dentro do catálogo com o hash dos arquivos originais para provar que o conteúdo original está livre de adulteração. MakeCat não modifica o arquivo .cdf.
Os exemplos a seguir usam comandos MakeCat .
Gere um arquivo de catálogo do arquivo Good.cdf.
MakeCat -v good.cdf
Um arquivo, Good.cdf, produz um arquivo de catálogo, Good.cat, analisando os arquivos UnsignedPE.exe, UnsignedDOS.exe, Unsigned.cab, Unsigned.Class e SignedPE.exe. Os arquivos analisados, juntamente com Good.cdf e os Good.cat recém-gerados, estão todos no mesmo diretório.
[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
Observação
A última entrada no arquivo .cdf sempre deve ter um caractere de nova linha explícito no final da linha.