Class: Miasma::Contrib::AzureApiCore::Hmac

Inherits:
Object
  • Object
show all
Defined in:
lib/miasma/contrib/azure.rb

Overview

HMAC helper class

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(kind, key) ⇒ self

Create new HMAC helper

Parameters:

  • kind (String)

    digest type (sha1, sha256, sha512, etc)

  • key (String)

    secret key



32
33
34
35
# File 'lib/miasma/contrib/azure.rb', line 32

def initialize(kind, key)
  @digest = OpenSSL::Digest.new(kind)
  @key = key
end

Instance Attribute Details

#digestOpenSSL::Digest (readonly)

Returns:

  • (OpenSSL::Digest)


23
24
25
# File 'lib/miasma/contrib/azure.rb', line 23

def digest
  @digest
end

#keyString (readonly)

Returns secret key.

Returns:

  • (String)

    secret key



25
26
27
# File 'lib/miasma/contrib/azure.rb', line 25

def key
  @key
end

Instance Method Details

#hex_sign(data, key_override = nil) ⇒ String

Sign the given data and return hexdigest

Parameters:

  • data (String)
  • key_override (Object) (defaults to: nil)

Returns:

  • (String)

    hex encoded signature



69
70
71
72
73
# 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) ⇒ String

Generate the hexdigest of the content

Parameters:

  • content (String)

    content to digest

Returns:

  • (String)

    hashed result



46
47
48
49
50
51
# 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) ⇒ Object

Sign the given data

Parameters:

  • data (String)
  • key_override (Object) (defaults to: nil)

Returns:

  • (Object)

    signature



58
59
60
61
62
# 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_sString

Returns:

  • (String)


38
39
40
# File 'lib/miasma/contrib/azure.rb', line 38

def to_s
  "Hmac#{digest.name}"
end