Delphi Examples

ChilkatHOMEAndroid™ASPVisual BasicVB.NETC#iOS (IPhone)Objective-CC++CMFCDelphiFoxProJavaPerl
PHP ExtensionPHP ActiveXPythonPowerShellRubySQL ServerVBScript

Delphi Examples

Bounced Mail
Bz2
Character Encoding
CSV
DKIM / DomainKey
Digital Certificates
Digital Signatures
DH Key Exchange
DSA
Email
Email Object
FTP
HTML Conversion
HTTP
IMAP
Encryption
MHT / HTML Email
NTLM
POP3
RSA
S/MIME
SMTP
Socket
Spider
SFTP
SSH
SSH Key
SSH Tunnel
String
Tar
Upload
XML
XMP
Zip Compression

More Examples...
Amazon S3
Byte Array
FileAccess
RSS
Atom
Self-Extractor
Service
PPMD
Deflate
Bzip2
LZW

Type Conversion

 

Article: Understanding COM References in Delphi

Use Certificate and Private Key PEM Files to Create a Digital Signature

Demonstrates how to load a digital certificate from a PEM file, load it's corresponding private key from a PEM file, save the private key to a key container (if necessary), link the certificate to the key container, and use it to create a digital signature.

Download Chilkat Crypt ActiveX

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

...

procedure TForm1.Button1Click(Sender: TObject);
var
cert: TChilkatCert;
pkey: CHILKATCERTIFICATELib_TLB.IPrivateKey;
success: Integer;
crypt: TChilkatCrypt2;

begin
cert := TChilkatCert.Create(Self);

//  Load the cert from a PEM file;
cert.LoadFromFile('cert.pem');

pkey := TprivateKey.Create(Self).ControlInterface;

//  Load the private key from an RSA PEM file:
pkey.LoadPemFile('pkey_rsa.pem');

success := cert.SetPrivateKey(pkey);
if (success <> 1) then
  begin
    Memo1.Lines.Add(cert.LastErrorText);
    Exit;
  end;

//  Use Chilkat Crypt (a non-freeware component) to create
//  a digital signature using the certificate w/ private key:
crypt := TChilkatCrypt2.Create(Self);

//  Any string argument automatically begins the 30-day trial.
success := crypt.UnlockComponent('30-day trial');
if (success <> 1) then
  begin
    Memo1.Lines.Add(crypt.LastErrorText);
    Exit;
  end;

//  Tell the crypt component to use this cert.
crypt.SetSigningCert(cert.ControlInterface As CHILKATCRYPT2Lib_TLB.IChilkatCert);

//  A PKCS7 signature for any type of file content can be created:
success := crypt.CreateP7S('license.rtf','license.p7s');
if (success = 0) then
  begin
    Memo1.Lines.Add(crypt.LastErrorText);
    Exit;
  end;
Memo1.Lines.Add(crypt.LastErrorText);

//  Verify and restore the original file:
crypt.SetVerifyCert(cert.ControlInterface As CHILKATCRYPT2Lib_TLB.IChilkatCert);

success := crypt.VerifyP7S('license.rtf','license.p7s');
if (success = 0) then
  begin
    Memo1.Lines.Add(crypt.LastErrorText);
    Exit;
  end;

ShowMessage('Success!');


end;

 

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

Mail Component · .NET Email Component · XML Parser