Class: Miasma::Contrib::AwsApiCore::Hmac
- Inherits:
-
Object
- Object
- Miasma::Contrib::AwsApiCore::Hmac
- Defined in:
- lib/miasma/contrib/aws.rb
Overview
HMAC helper class
Instance Attribute Summary collapse
- #digest ⇒ OpenSSL::Digest readonly
-
#key ⇒ String
readonly
Secret key.
Instance Method Summary collapse
-
#hex_sign(data, key_override = nil) ⇒ String
Sign the given data and return hexdigest.
-
#hexdigest_of(content) ⇒ String
Generate the hexdigest of the content.
-
#initialize(kind, key) ⇒ self
constructor
Create new HMAC helper.
-
#sign(data, key_override = nil) ⇒ Object
Sign the given data.
- #to_s ⇒ String
Constructor Details
#initialize(kind, key) ⇒ self
Create new HMAC helper
70 71 72 73 |
# File 'lib/miasma/contrib/aws.rb', line 70 def initialize(kind, key) @digest = OpenSSL::Digest.new(kind) @key = key end |
Instance Attribute Details
#digest ⇒ OpenSSL::Digest (readonly)
61 62 63 |
# File 'lib/miasma/contrib/aws.rb', line 61 def digest @digest end |
#key ⇒ String (readonly)
Returns secret key.
63 64 65 |
# File 'lib/miasma/contrib/aws.rb', line 63 def key @key end |
Instance Method Details
#hex_sign(data, key_override = nil) ⇒ String
Sign the given data and return hexdigest
111 112 113 114 115 |
# File 'lib/miasma/contrib/aws.rb', line 111 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
84 85 86 87 88 89 |
# File 'lib/miasma/contrib/aws.rb', line 84 def hexdigest_of(content) digest << content hash = digest.hexdigest digest.reset hash end |
#sign(data, key_override = nil) ⇒ Object
Sign the given data
96 97 98 99 100 101 102 103 104 |
# File 'lib/miasma/contrib/aws.rb', line 96 def sign(data, key_override = nil) s_key = key_override || key if s_key.nil? raise ArgumentError.new("No key provided for signing data") end result = OpenSSL::HMAC.digest(digest, key_override || key, data.to_s) digest.reset result end |
#to_s ⇒ String
76 77 78 |
# File 'lib/miasma/contrib/aws.rb', line 76 def to_s "Hmac#{digest.name}" end |