Delphi ActiveX
Delphi ActiveX
Example: Crypt2.GetSignedAttributes method
Demonstrates how to call the GetSignedAttributes method.Chilkat Delphi ActiveX Downloads
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Chilkat_TLB;
...
procedure TForm1.Button1Click(Sender: TObject);
var
success: Integer;
crypt: TChilkatCrypt2;
bdPkcs7: TChilkatBinData;
json: TChilkatJsonObject;
sbJson: TChilkatStringBuilder;
i: Integer;
tryNext: Integer;
begin
success := 0;
crypt := TChilkatCrypt2.Create(Self);
bdPkcs7 := TChilkatBinData.Create(Self);
success := bdPkcs7.LoadFile('qa_data/cades/CAdES-T/Signature-C-T-1.p7m');
if (success = 0) then
begin
Memo1.Lines.Add(bdPkcs7.LastErrorText);
Exit;
end;
json := TChilkatJsonObject.Create(Self);
json.EmitCompact := 0;
sbJson := TChilkatStringBuilder.Create(Self);
i := 0;
tryNext := 1;
while tryNext do
begin
if (crypt.GetSignedAttributes(i,bdPkcs7.ControlInterface,sbJson.ControlInterface) = 1) then
begin
json.LoadSb(sbJson.ControlInterface);
Memo1.Lines.Add(IntToStr(i) + ': ');
Memo1.Lines.Add(json.Emit());
end
else
begin
tryNext := 0;
end;
i := i + 1;
end;
// Sample output:
// 0:
// {
// "signedAttributes": [
// {
// "oid": "1.2.840.113549.1.9.3",
// "name": "Content Type"
// },
// {
// "oid": "1.2.840.113549.1.9.5",
// "name": "Signing Time"
// },
// {
// "oid": "1.2.840.113549.1.9.4",
// "name": "Message Digest"
// },
// {
// "oid": "1.2.840.113549.1.9.16.2.47",
// "name": "Signing Certificate V2"
// }
// ]
// }
end;