Delphi Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

Delphi Examples

Bounced Mail
Character Encoding
Digital Certificates
Digital Signatures
Email
FTP
HTML-to-XML
HTTP
IMAP
Encryption
MHT / HTML Email
RSA Encryption
S/MIME
Socket
Spider
String
Tar
Upload
XML
XMP
Zip Compression

More Examples...
Byte Array
Email Object
POP3
SMTP
RSS
Atom
Self-Extractor
Service
PPMD
Deflate
DH Key Exchange
DSA
SSH Key
SSH
SSH Tunnel
SFTP

Unreleased...
Bzip2
LZW
Bz2
Icon

Type Conversion

 

Article: Understanding COM References in Delphi

Sign with .pfx to create .p7s, Verify with .cer

Delphi example to sign a file using a .pfx and creating a .p7s file as output. It then uses a .cer file to verify the signature.

Download Chilkat Crypt ActiveX

uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, StdCtrls,
    CHILKATCRYPT2Lib_TLB,
    CHILKATCERTIFICATELib_TLB,
    CHILKATUTILLib_TLB,
    OleCtrls;

...

procedure TForm1.Button1Click(Sender: TObject);
var
crypt: TChilkatCrypt2;
success: Integer;
certStore: CHILKATCERTIFICATELib_TLB.IChilkatCertStore;
cert: CHILKATCRYPT2Lib_TLB.IChilkatCert;
csp: TChilkatCSP;
cert2: TChilkatCert;

begin
crypt := TChilkatCrypt2.Create(Self);

//  Any string argument automatically begins the 30-day trial.
success := crypt.UnlockComponent('30-day trial');
if (success <> 1) then
  begin
    ShowMessage('Crypt component unlock failed');
    Exit;
  end;

certStore := CoChilkatCertStore.Create();
success := certStore.LoadPfxFile('chilkat.pfx','myPfxPassword');
if (success <> 1) then
  begin
    ShowMessage(certStore.LastErrorText);
    Exit;
  end;

cert := certStore.FindCertBySubjectCN('Chilkat Software, Inc.') As CHILKATCRYPT2Lib_TLB.IChilkatCert;
if (cert = nil ) then
  begin
    ShowMessage('Failed to find certificate');
    Exit;
  end;

//  We can explicitly choose hash/encryption algorithms using a CSP.
csp := TChilkatCSP.Create(Self);
csp.SetProviderMicrosoftEnhanced();
csp.SetHashAlgorithm('sha-1');

//  Tell the crypt component to use this cert and this CSP.
crypt.SetSigningCert(cert As CHILKATCRYPT2Lib_TLB.IChilkatCert);
crypt.SetCSP(csp As CHILKATCRYPT2Lib_TLB.IChilkatCSP);

//  We can sign any type of file, creating a .p7s as output:
success := crypt.CreateP7S('hamlet.xml','hamlet.p7s');
if (success = 1) then
  begin
    ShowMessage('Signature created.');
  end
else
  begin
    ShowMessage(crypt.LastErrorText);
  end;

//  Verify and restore the original file:
//  Use a cert from a .cer file (which only contains the public key)
cert2 := TChilkatCert.Create(Self);
success := cert2.LoadFromFile('chilkat.cer');
if (success <> 1) then
  begin
    ShowMessage(cert2.LastErrorText);
    Exit;
  end;
crypt.SetVerifyCert(cert2.ControlInterface As CHILKATCRYPT2Lib_TLB.IChilkatCert);

success := crypt.VerifyP7S('hamlet.xml','hamlet.p7s');
if (success = 1) then
  begin
    ShowMessage('Signature verified.');
  end
else
  begin
    ShowMessage(crypt.LastErrorText);
  end;
end;

 

Need a specific example? Send a request to support@chilkatsoft.com

© 2000-2008 Chilkat Software, Inc. All Rights Reserved.

Mail Component · .NET Email Component · XML Parser