The HMAC component provides an interface to the OpenSSL HMAC functions.  These functions generate a Message Authentication Code (MAC) based on a key, in such a way that no one without the key could plausibly generate the MAC.  HMAC uses a digest (hash) algorithm to generate the MAC.

Supported Interfaces

Description

For additional information on the OpenSSL HMAC functions, please see:

http://www.openssl.org/docs/crypto/hmac.html http://www.openssl.org/docs/crypto/hmac.html

Supported Digest Algorithms:

The supported digest algorithms are the same as those supported by roEVPDigest.

 

Example
hmac = CreateObject("roHMAC") 
signature_key = CreateObject("roByteArray") 
signature_key.fromAsciiString(getKey())
If hmac.setup("sha1", signature_key) = 0 
	message = CreateObject("roByteArray") 
	message.fromAsciiString(getMessage()) 
	result = hmac.process(message) 
	print result.toBase64String() 
End If


hmac = CreateObject("roHMAC") 
signature_key = CreateObject("roByteArray") 
signature_key.fromAsciiString(getKey()) 
If hmac.setup("sha1", signature_key) = 0 
	message1 = CreateObject("roByteArray") 
	message1.fromAsciiString(getMessage1()) 
	hmac.update(message1) 
	message2 = CreateObject("roByteArray") 
	message2.fromAsciiString(getMessage2()) 
	hmac.update(message2) 
	result = hmac.final() 
	print result.toBase64String() 
End If