Sha256: d63f4e2ae09ec6973954cf6cbd890dcf7b64143a2be570cbf9f8ee91b1dbbf78
Contents?: true
Size: 1.12 KB
Versions: 2
Compression:
Stored size: 1.12 KB
Contents
require 'openssl' require 'cgi' require 'nokogiri' require 'time' module AceClient class Base3 < Base attr_accessor :signature_method # TODO: HMAC-SHA256 or HMAC-SHA1 attr_accessor :sampler format :xml def initialize(options={}) super(options) @signature_method = options[:signature_method] || 'HmacSHA256' @authorization_key = options[:authorization_key] || 'authorization' @date_key = options[:date_key] || 'x-date' @nonce_key = options[:nonce_key] || 'x-amz-nonce' @authorization_prefix = options[:authorization_prefix] || 'AWS3-HTTPS' @nonce = options[:nonce] @sampler = options[:sampler] @before_signature = options[:before_signature] @before_request = options[:before_request] end def create_signature digest = OpenSSL::Digest.new(@signature_method.downcase.gsub(/hmac/, '')) Base64.encode64(OpenSSL::HMAC.digest(digest, secret_access_key, string_to_sign)).strip end def string_to_sign @nonce ? date + @nonce : date end def date @date ||= Time.now.utc.rfc822.gsub(/[\-\+]\d{4}$/, 'GMT') end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ace-client-0.0.23 | lib/ace-client/base3.rb |
ace-client-0.0.22 | lib/ace-client/base3.rb |