Chilkat
HOME
Android™
ASP
Visual Basic
VB.NET
C#
iOS (IPhone)
Objective-C
C++
C
MFC
Delphi
FoxPro
Java
Perl
PHP Extension
PHP ActiveX
Python
PowerShell
Ruby
SQL Server
VBScript
HMAC SHA1 for Amazon S3Demonstrates the HMAC SHA1 computation required by the Amazon S3 web service.
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.