class Gem::S3URISigner

def generate_signature(s3_config, date, string_to_sign)

def generate_signature(s3_config, date, string_to_sign)
  date_key = OpenSSL::HMAC.digest("sha256", "AWS4" + s3_config.secret_access_key, date)
  date_region_key = OpenSSL::HMAC.digest("sha256", date_key, s3_config.region)
  date_region_service_key = OpenSSL::HMAC.digest("sha256", date_region_key, "s3")
  signing_key = OpenSSL::HMAC.digest("sha256", date_region_service_key, "aws4_request")
  OpenSSL::HMAC.hexdigest("sha256", signing_key, string_to_sign)
end