Class: Miasma::Contrib::AwsApiCore::Hmac

Inherits:
Object
  • Object
show all
Defined in:
lib/miasma/contrib/aws.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



58
59
60
61
# File 'lib/miasma/contrib/aws.rb', line 58

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

Instance Attribute Details

#digestOpenSSL::Digest (readonly)

Returns:

  • (OpenSSL::Digest)


49
50
51
# File 'lib/miasma/contrib/aws.rb', line 49

def digest
  @digest
end

#keyString (readonly)

Returns secret key.

Returns:

  • (String)

    secret key



51
52
53
# File 'lib/miasma/contrib/aws.rb', line 51

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



95
96
97
98
99
# File 'lib/miasma/contrib/aws.rb', line 95

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



72
73
74
75
76
77
# File 'lib/miasma/contrib/aws.rb', line 72

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



84
85
86
87
88
# File 'lib/miasma/contrib/aws.rb', line 84

def sign(data, key_override=nil)
  result = OpenSSL::HMAC.digest(digest, key_override || key, data)
  digest.reset
  result
end

#to_sString

Returns:

  • (String)


64
65
66
# File 'lib/miasma/contrib/aws.rb', line 64

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