Това би трябвало да ти свърши работа:
procedure TfrmMain.Button1Click(Sender: TObject);
Const
CAPICOM_MY_STORE = 'My';
var
Store: CAPICOM_TLB.IStore;
sd: CAPICOM_TLB.ISignedData;
signer:CAPICOM_TLB.ISigner;
signer2:ISigner2;
signedData:WideString;
begin
Store:=CoStore.Create;
Store.Open(CAPICOM_CURRENT_USER_STORE, CAPICOM_MY_STORE, CAPICOM_STORE_OPEN_READ_ONLY);
sd := CoSignedData.Create;
sd.Content:='Koko Marinkin';
signer:=CoSigner.Create;
signer2:=signer as ISigner2;
signedData := sd.Sign(signer2, False,CAPICOM_ENCODE_BASE64);
ShowMessage(signedData);
end;
Подписва и криптира 'Koko Marinkin'.
Показва ти сертификатите, и ти иска пин код.
За бинарен файл - BASE64 го енкодваш, подписваш си го,
след това си го BASE64 декодваш отново и готово