Ruby Examples

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

Ruby
Examples

Quick Start
Unicode
Byte Array
Bz2
Certificates
CSV
Email
Encryption
FTP
HTML Conversion
HTTP
IMAP
MHT
MIME
POP3
RSA
S/MIME
Signatures
SFTP
SMTP
Socket / SSL
Spider
SSH
SSH Key
SSH Tunnel
Tar
HTTP Upload
XML
XMP
Zip

More Examples...
String
Amazon S3
Email Object
DKIM / DomainKey
NTLM
FileAccess
RSS
Atom
Self-Extractor
Service
PPMD
Deflate
Bzip2
DH Key Exchange
DSA
LZW

 

 

 

 

 

 

 

HMAC SHA1 for Amazon S3

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

Downloads for Windows/Linux and Install Instructions

require 'rubygems'
require 'chilkat'

#  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 = Chilkat::CkCrypt2.new()

success = crypt.UnlockComponent("Anything for 30-day trial.")
if (success != true)
    #  Unlock Failed.
    print crypt.lastErrorText() + "\n"
    exit
end

#  We want SHA1 for the HMAC hash algorithm:
crypt.put_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.put_Charset("utf-8")

#  Indicate that Base64 output is desired:
crypt.put_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";
 

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