class Miasma::Contrib::AzureApiCore::Hmac

HMAC helper class

Attributes

digest[R]

@return [OpenSSL::Digest]

key[R]

@return [String] secret key

Public Class Methods

new(kind, key) click to toggle source

Create new HMAC helper

@param kind [String] digest type (sha1, sha256, sha512, etc) @param key [String] secret key @return [self]

# File lib/miasma/contrib/azure.rb, line 32
def initialize(kind, key)
  @digest = OpenSSL::Digest.new(kind)
  @key = key
end

Public Instance Methods

hex_sign(data, key_override=nil) click to toggle source

Sign the given data and return hexdigest

@param data [String] @param key_override [Object] @return [String] hex encoded signature

# File lib/miasma/contrib/azure.rb, line 69
def hex_sign(data, key_override=nil)
  result = OpenSSL::HMAC.hexdigest(digest, key_override || key, data)
  digest.reset
  result
end
hexdigest_of(content) click to toggle source

Generate the hexdigest of the content

@param content [String] content to digest @return [String] hashed result

# File lib/miasma/contrib/azure.rb, line 46
def hexdigest_of(content)
  digest << content
  hash = digest.hexdigest
  digest.reset
  hash
end
sign(data, key_override=nil) click to toggle source

Sign the given data

@param data [String] @param key_override [Object] @return [Object] signature

# File lib/miasma/contrib/azure.rb, line 58
def sign(data, key_override=nil)
  result = OpenSSL::HMAC.digest(digest, key_override || key, data)
  digest.reset
  result
end
to_s() click to toggle source

@return [String]

# File lib/miasma/contrib/azure.rb, line 38
def to_s
  "Hmac#{digest.name}"
end