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



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

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

Instance Attribute Details

#digestOpenSSL::Digest (readonly)

Returns:

  • (OpenSSL::Digest)


53
54
55
# File 'lib/miasma/contrib/aws.rb', line 53

def digest
  @digest
end

#keyString (readonly)

Returns secret key.

Returns:

  • (String)

    secret key



55
56
57
# File 'lib/miasma/contrib/aws.rb', line 55

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



99
100
101
102
103
# File 'lib/miasma/contrib/aws.rb', line 99

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



76
77
78
79
80
81
# File 'lib/miasma/contrib/aws.rb', line 76

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



88
89
90
91
92
# File 'lib/miasma/contrib/aws.rb', line 88

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

#to_sString

Returns:

  • (String)


68
69
70
# File 'lib/miasma/contrib/aws.rb', line 68

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