123456789_123456789_123456789_123456789_123456789_

Exception: OpenSSL::HMACError

Relationships & Source Files
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
self, OpenSSLError, ::StandardError, Exception
Instance Chain:
self, OpenSSLError, ::StandardError, Exception
Inherits: OpenSSL::OpenSSLError
Defined in: ext/openssl/ossl_hmac.c

Overview

HMAC allows computing Hash-based Message Authentication Code (HMAC). It is a type of message authentication code (MAC) involving a hash function in combination with a key. HMAC can be used to verify the integrity of a message as well as the authenticity.

HMAC has a similar interface to Digest.

HMAC-SHA256 using one-shot interface

key = "key"
data = "message-to-be-authenticated"
mac = OpenSSL::HMAC.hexdigest("SHA256", key, data)
#=> "cddb0db23f469c8bf072b21fd837149bd6ace9ab771cceef14c9e517cc93282e"

HMAC-SHA256 using incremental interface

data1 = File.read("file1")
data2 = File.read("file2")
key = "key"
digest = OpenSSL::Digest::SHA256.new
hmac = OpenSSL::HMAC.new(key, digest)
hmac << data1
hmac << data2
mac = hmac.digest