Class: Boomerang::Signature
- Inherits:
-
Object
- Object
- Boomerang::Signature
- Defined in:
- lib/boomerang/signature.rb
Constant Summary collapse
- SHA1_ALGORITHM =
OpenSSL::Digest::Digest.new("sha1")
- SHA256_ALGORITHM =
OpenSSL::Digest::Digest.new("sha256")
Instance Method Summary collapse
-
#initialize(http_verb, url, parameters, algorithm = SHA256_ALGORITHM) ⇒ Signature
constructor
A new instance of Signature.
- #sign(access_key_id, secret_access_key) ⇒ Object
- #signed_fields ⇒ Object
Constructor Details
#initialize(http_verb, url, parameters, algorithm = SHA256_ALGORITHM) ⇒ Signature
Returns a new instance of Signature.
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/boomerang/signature.rb', line 6 def initialize(http_verb, url, parameters, algorithm = SHA256_ALGORITHM) @fps = !!(url =~ /\bfps\b/) @http_verb = http_verb @url = URI.parse(url) @parameters = parameters.merge( Utilities.camel_case( { :signature_version => "2", :signature_method => algorithm == SHA256_ALGORITHM ? "HmacSHA256" : "HmacSHA1" }, fps? ) ) if fps? @parameters["Timestamp"] = Time.now.utc.strftime("%Y-%m-%dT%H:%M:%SZ") end @algorithm = algorithm @signature = nil end |
Instance Method Details
#sign(access_key_id, secret_access_key) ⇒ Object
26 27 28 29 30 |
# File 'lib/boomerang/signature.rb', line 26 def sign(access_key_id, secret_access_key) @parameters[ fps? ? "AWSAccessKeyId" : "callerKey" ] = access_key_id @signature = hash(secret_access_key) end |
#signed_fields ⇒ Object
32 33 34 |
# File 'lib/boomerang/signature.rb', line 32 def signed_fields @parameters.merge(Utilities.camel_case(:signature, fps?) => @signature) end |