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

About RSA Public/Private Keys

Download 32-bit Chilkat RSA ActiveX (.msi)

Download All 32-bit Chilkat ActiveX Components (.zip)

Download All 64-bit Chilkat ActiveX Components (.zip)

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

...

procedure TForm1.Button1Click(Sender: TObject);
var
cert: TChilkatCert;
success: Integer;
pubKey: CHILKATCERTIFICATELib_TLB.IPublicKey;
privKey: CHILKATCERTIFICATELib_TLB.IPrivateKey;
rsa: TChilkatRsa;
privKeyXml: String;

begin
cert := TChilkatCert.Create(Self);

//  Load a digital certificate.
success := cert.LoadFromFile('digitalCert.cer');
if (success <> 1) then
  begin
    ShowMessage(cert.LastErrorText);
    Exit;
  end;

//  A .cer file does not contain the private key.  It should contain
//  the public key...
pubKey := cert.ExportPublicKey() As CHILKATCERTIFICATELib_TLB.IPublicKey;

//  Let's have a look at it (in XML format).
Memo1.Lines.Add('Public Key from Certificate:');
Memo1.Lines.Add(pubKey.GetXml());

//  An RSA public key consists of a modulus and exponent.

//  An RSA private key includes both the modulus and exponent,
//  as well as other "big" numbers: P, Q, D, etc.

//  Let's load an RSA private key from a DER-encoded file:
privKey := TprivateKey.Create(Self).ControlInterface;

success := privKey.LoadRsaDerFile('PrivateKey.key');
if (success <> 1) then
  begin
    ShowMessage(privKey.LastErrorText);
    Exit;
  end;

//  If this private key is the matching half to the public key from
//  the certificate, then the modulus and exponent should
//  be identical.  (Thus, a "private key" really contains both the public part as well as the private parts...).
Memo1.Lines.Add('Private Key from DER:');
Memo1.Lines.Add(privKey.GetXml());

rsa := TChilkatRsa.Create(Self);
success := rsa.UnlockComponent('Anything for 30-day trial.');
if (success <> 1) then
  begin
    ShowMessage(rsa.LastErrorText);
    Exit;
  end;

//  You now realize that the private key really contains both
//  private and public parts.  Therefore, we may import the private
//  key and the choose to use either the public or private in our
//  encrypt/decrypt operations:
privKeyXml := privKey.GetXml();
success := rsa.ImportPrivateKey(privKeyXml);
if (success <> 1) then
  begin
    ShowMessage(rsa.LastErrorText);
    Exit;
  end;


end;

 

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

Mail Component · .NET Email Component · XML Parser