Programming Examples

ChilkatHOMEASPVisual BasicVB.NETC#CC++MFCDelphiFoxProJavaPerlPythonRubySQL ServerVBScript

PHP ActiveX Examples

Bounced Mail
Bz2
Certificates/Keys
Charset
CSV
DKIM / DomainKey
Diffie-Hellman
DSA
Email Object
Encryption
FileAccess
FTP
HTML Conversion
HTTP
IMAP
MHT / HTML Email
MIME
NTLM
POP3
RSA
SMTP
Socket
Spider
SSH Key
SSH
SSH Tunnel
SFTP
Tar
Upload
XML
Zip
Amazon S3


 

 

 

 

 

 

 

 

HMAC SHA1 for Amazon S3

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

Download Chilkat Crypt ActiveX

<?php

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

$crypt = new COM("Chilkat.Crypt2");

$success = $crypt->UnlockComponent('Anything for 30-day trial.');
if ($success != true) {
    //  Unlock Failed.
    print $crypt->lastErrorText() . "\n";
    exit;
}

//  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);
print $crypt->lastErrorText() . "\n";

//  Display the signature as part of the HTTP Authorization header:
print 'Authorization: AWS ' . $AWSAccessKeyId
     . ':' . $signature . "\n";

print 'Expected:      AWS 0PN5J17HBGZHT7JJ3X82:xXjDGYUmKxnwqr5KXNPGldn5LbA=' . "\n";
?>

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

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