You seem to have loaded a key twice. Is it password protected?
Try to use this instead: https://www.cyberens.fr/wp-content/uploads/2025/11/TMSSigner.zip
When I test it, I receive the error:
When I run it as an Administrator, the file is successfully signed.
-
How should my code look like to have this effect?
Current code is following:
function SignInvoice (FileToSign, OutputFilePath, PrivKeyFile, CertFile, CertPass: string): Boolean;
var
XAdES : TXAdES;
begin
XAdES := TXAdES.Create (Parent);
try
XAdES.Password := CertPass;
XAdES.KeyFilePath := PrivKeyFile;
XAdES.CertFilePath := CertFile;
XAdES.PKCS11Param.isToken := false;
XAdES.Packaging := Enveloped;
XAdES.PathToOriginalFile := ExtractFilePath(FileToSign);
XAdES.GenerateSignature(FileToSign, OutputFilePath);
Result := True;
finally
FreeAndNil (XADes);
end;
end; -
Can I get this result without Administrator privileges to C:\Windows\System32 folder?
Hi,
In XMLCanon.pas, line 251, comment or delete:
// DEBUG
if FileExists('.\canon1.txt') = true then begin
if FileExists('.\canon2.txt') = true then begin
if FileExists('.\canon3.txt') = true then begin
if FileExists('.\canon4.txt') = true then begin
DeleteFile('.\canon1.txt');
DeleteFile('.\canon2.txt');
DeleteFile('.\canon3.txt');
DeleteFile('.\canon4.txt');
FTs.SaveToFile('.\canon1.txt');
end
else
FTs.SaveToFile('.\canon4.txt');
end
else
FTs.SaveToFile('.\canon3.txt');
end
else
FTs.SaveToFile('.\canon2.txt');
end
else
FTs.SaveToFile('.\canon1.txt');
// DEBUG

