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

HMAC SHA1 for Amazon S3

Demonstrates the HMAC SHA1 computation required by the Amazon S3 web service.

Download Chilkat Crypt ActiveX

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

...

procedure TForm1.Button1Click(Sender: TObject);
var
strToSign: String;
crypt: TChilkatCrypt2;
success: Integer;
AWSAccessKeyId: String;
AWSSecretAccessKey: String;
signature: String;

begin
//  This example uses sample data from:
//  http://docs.amazonwebservices.com/AmazonS3/2006-03-01/RESTAuthentication.html
strToSign := 'GET' + #10 + #10 + #10 + 'Tue, 27 Mar 2007 19:36:42 +0000' + #10 + '/johnsmith/photos/puppy.jpg';

crypt := TChilkatCrypt2.Create(Self);

success := crypt.UnlockComponent('Anything for 30-day trial.');
if (success <> 1) then
  begin
    //  Unlock Failed.
    ShowMessage(crypt.LastErrorText);
    Exit;
  end;

//  We want SHA1 for the HMAC hash algorithm:
crypt.HashAlgorithm := 'sha1';

AWSAccessKeyId := '0PN5J17HBGZHT7JJ3X82';
AWSSecretAccessKey := 'uV3F3YluFJax1cknvbcGwgjvx4QpvB+leU8dUj2o';

//  Set the HMAC secret key:
crypt.SetHmacKeyString(AWSSecretAccessKey);

//  By setting the charset = "utf-8", the string will be converted
//  to utf-8 (internal to the Chilkat component) prior to signing:
crypt.Charset := 'utf-8';

//  Indicate that Base64 output is desired:
crypt.EncodingMode := 'base64';

signature := crypt.HmacStringENC(strToSign);
Memo1.Lines.Add(crypt.LastErrorText);

//  Display the signature as part of the HTTP Authorization header:
Memo1.Lines.Add('Authorization: AWS ' + AWSAccessKeyId
     + ':' + signature);

Memo1.Lines.Add('Expected:      AWS 0PN5J17HBGZHT7JJ3X82:xXjDGYUmKxnwqr5KXNPGldn5LbA=');
end;

 

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

Mail Component · .NET Email Component · XML Parser