Delphi DLL
Delphi DLL
Verify the Timestamp Server Token (if any) while Validating a CMS Signature
Demonstrates how to also validate the timestamp server token (if any) while validating a CMS signature.Chilkat Delphi DLL Downloads
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Crypt2, JsonObject;
...
procedure TForm1.Button1Click(Sender: TObject);
var
success: Boolean;
crypt: HCkCrypt2;
cmsOptions: HCkJsonObject;
outputFile: PWideChar;
inFile: PWideChar;
begin
success := False;
crypt := CkCrypt2_Create();
// Tell Chilkat to also validate the timestamp token if a timestamp exists in the CMS message's unauthenticated attributes.
cmsOptions := CkJsonObject_Create();
CkJsonObject_UpdateBool(cmsOptions,'ValidateTimestampTokens',True);
CkCrypt2_putCmsOptions(crypt,CkJsonObject__emit(cmsOptions));
outputFile := 'qa_output/original.xml';
inFile := 'qa_data/p7m/fattura_signature.xml.p7m';
// Verify the signature and extract the contained file, which in this case is XML.
success := CkCrypt2_VerifyP7M(crypt,inFile,outputFile);
if (success = False) then
begin
Memo1.Lines.Add(CkCrypt2__lastErrorText(crypt));
Exit;
end;
Memo1.Lines.Add('Signature validated.');
CkCrypt2_Dispose(crypt);
CkJsonObject_Dispose(cmsOptions);
end;