Hello community,

here is the log from the commit of package rubygem-mixlib-authentication for 
openSUSE:Factory checked in at 2016-07-01 09:59:24
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-mixlib-authentication (Old)
 and      /work/SRC/openSUSE:Factory/.rubygem-mixlib-authentication.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "rubygem-mixlib-authentication"

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/rubygem-mixlib-authentication/rubygem-mixlib-authentication.changes
      2016-04-28 16:52:55.000000000 +0200
+++ 
/work/SRC/openSUSE:Factory/.rubygem-mixlib-authentication.new/rubygem-mixlib-authentication.changes
 2016-07-01 09:59:25.000000000 +0200
@@ -1,0 +2,6 @@
+Thu Jun  9 04:33:16 UTC 2016 - co...@suse.com
+
+- updated to version 1.4.1
+  no changelog found
+
+-------------------------------------------------------------------

Old:
----
  mixlib-authentication-1.4.0.gem

New:
----
  mixlib-authentication-1.4.1.gem

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ rubygem-mixlib-authentication.spec ++++++
--- /var/tmp/diff_new_pack.mQarok/_old  2016-07-01 09:59:26.000000000 +0200
+++ /var/tmp/diff_new_pack.mQarok/_new  2016-07-01 09:59:26.000000000 +0200
@@ -24,7 +24,7 @@
 #
 
 Name:           rubygem-mixlib-authentication
-Version:        1.4.0
+Version:        1.4.1
 Release:        0
 %define mod_name mixlib-authentication
 %define mod_full_name %{mod_name}-%{version}
@@ -32,7 +32,7 @@
 BuildRequires:  %{rubygem gem2rpm}
 BuildRequires:  %{ruby}
 BuildRequires:  ruby-macros >= 5
-Url:            http://www.opscode.com
+Url:            https://www.chef.io
 Source:         http://rubygems.org/gems/%{mod_full_name}.gem
 Source1:        gem2rpm.yml
 Summary:        Mixes in simple per-request authentication
@@ -48,7 +48,7 @@
 
 %install
 %gem_install \
-  --doc-files="LICENSE README.rdoc" \
+  --doc-files="LICENSE README.md" \
   -f
 
 %gem_packages

++++++ mixlib-authentication-1.4.0.gem -> mixlib-authentication-1.4.1.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Gemfile new/Gemfile
--- old/Gemfile 2016-01-19 18:37:56.000000000 +0100
+++ new/Gemfile 2016-06-08 12:26:14.000000000 +0200
@@ -2,5 +2,5 @@
 gemspec
 
 group(:development) do
-  gem 'pry'
+  gem "pry"
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/NOTICE new/NOTICE
--- old/NOTICE  2016-01-19 18:37:56.000000000 +0100
+++ new/NOTICE  2016-06-08 12:26:14.000000000 +0200
@@ -1,7 +1,7 @@
 Mixlib::Authentication NOTICE
 =================
 
-Developed at Opscode (http://www.opscode.com).
+Developed at Chef (https://www.chef.io/).
 
- * Copyright 2009, Opscode, Inc. <le...@opscode.com>
+ * Copyright 2009-2016, Chef Software, Inc. <le...@chef.io>
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/README.md new/README.md
--- old/README.md       1970-01-01 01:00:00.000000000 +0100
+++ new/README.md       2016-06-08 12:26:14.000000000 +0200
@@ -0,0 +1,23 @@
+# Mixlib::Authentication
+[![Build Status 
Master](https://travis-ci.org/chef/mixlib-authentication.svg?branch=master)](https://travis-ci.org/chef/mixlib-authentication)
 [![Gem 
Version](https://badge.fury.io/rb/mixlib-authentication.svg)](https://badge.fury.io/rb/mixlib-authentication)
+
+Mixlib::Authentication provides a class-based header signing authentication 
object, like the one used in Chef.
+
+## License
+- Author:: Christopher Brown ([c...@chef.io](mailto:c...@chef.io))
+- Copyright:: Copyright (c) 2009-2016 Chef Software, Inc.
+- License:: Apache License, Version 2.0
+
+```text
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+```
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/README.rdoc new/README.rdoc
--- old/README.rdoc     2016-01-19 18:37:56.000000000 +0100
+++ new/README.rdoc     1970-01-01 01:00:00.000000000 +0100
@@ -1,25 +0,0 @@
-== Mixlib::Authentication
-
-Mixlib::Authentication provides a class-based header signing authentication 
object, like the one used in Chef. 
-
-== License
-
-Author:: Christopher Brown (<c...@opscode.com>)
-Copyright:: Copyright (c) 2009 Opscode, Inc.
-License:: Apache License, Version 2.0
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-== Issue Tracker
-
-Report any issues via Opscode Jira instance at http://tickets.opscode.com 
against Chef project.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Rakefile new/Rakefile
--- old/Rakefile        2016-01-19 18:37:56.000000000 +0100
+++ new/Rakefile        2016-06-08 12:26:14.000000000 +0200
@@ -1,46 +1,18 @@
-require 'rubygems'
-require 'rubygems/package_task'
-require 'rubygems/specification'
-require 'date'
-require 'rspec/core/rake_task'
+require "bundler/gem_tasks"
+require "rspec/core/rake_task"
 
-GEM = "mixlib-authentication"
-GEM_VERSION = "1.2.1"
-AUTHOR = "Opscode, Inc."
-EMAIL = "i...@opscode.com"
-HOMEPAGE = "http://www.opscode.com";
-SUMMARY = "Mixes in simple per-request authentication"
+RSpec::Core::RakeTask.new(:spec)
 
 task :default => :spec
 
-desc "Run specs"
-RSpec::Core::RakeTask.new do |t|
-  t.pattern = 'spec/**/*_spec.rb'
-  t.rspec_opts = %w(--format documentation --color)
-end
-
-gem_spec = eval(File.read("mixlib-authentication.gemspec"))
-
-Gem::PackageTask.new(gem_spec) do |pkg|
-  pkg.gem_spec = gem_spec
-end
-
-desc "install the gem locally"
-task :install => [:package] do
-  sh %{gem install pkg/#{GEM}-#{GEM_VERSION}}
-end
-
-desc "create a gemspec file"
-task :make_spec do
-  File.open("#{GEM}.gemspec", "w") do |file|
-    file.puts spec.to_ruby
+begin
+  require "chefstyle"
+  require "rubocop/rake_task"
+  RuboCop::RakeTask.new(:style) do |task|
+    task.options += ["--display-cop-names", "--no-color"]
   end
+rescue
+  puts "chefstyle/rubocop is not available."
 end
 
-desc "remove build files"
-task :clean do
-  sh %Q{ rm -f pkg/*.gem }
-end
-
-desc "Run the spec and features"
-task :test => [ :features, :spec ]
+task :ci => [:style, :spec]
Files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/mixlib/authentication/digester.rb 
new/lib/mixlib/authentication/digester.rb
--- old/lib/mixlib/authentication/digester.rb   2016-01-19 18:37:56.000000000 
+0100
+++ new/lib/mixlib/authentication/digester.rb   2016-06-08 12:26:14.000000000 
+0200
@@ -6,9 +6,9 @@
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at
-# 
+#
 #     http://www.apache.org/licenses/LICENSE-2.0
-# 
+#
 # Unless required by applicable law or agreed to in writing, software
 # distributed under the License is distributed on an "AS IS" BASIS,
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -16,15 +16,15 @@
 # limitations under the License.
 #
 
-require 'mixlib/authentication'
-require 'openssl'
+require "mixlib/authentication"
+require "openssl"
 
 module Mixlib
   module Authentication
     class Digester
       class << self
 
-        def hash_file(f, digest=OpenSSL::Digest::SHA1)
+        def hash_file(f, digest = OpenSSL::Digest::SHA1)
           digester = digest.new
           buf = ""
           while f.read(16384, buf)
@@ -37,7 +37,7 @@
         #
         # ====Parameters
         #
-        def hash_string(str, digest=OpenSSL::Digest::SHA1)
+        def hash_string(str, digest = OpenSSL::Digest::SHA1)
           ::Base64.encode64(digest.digest(str)).chomp
         end
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/lib/mixlib/authentication/http_authentication_request.rb 
new/lib/mixlib/authentication/http_authentication_request.rb
--- old/lib/mixlib/authentication/http_authentication_request.rb        
2016-01-19 18:37:56.000000000 +0100
+++ new/lib/mixlib/authentication/http_authentication_request.rb        
2016-06-08 12:26:14.000000000 +0200
@@ -6,9 +6,9 @@
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at
-# 
+#
 #     http://www.apache.org/licenses/LICENSE-2.0
-# 
+#
 # Unless required by applicable law or agreed to in writing, software
 # distributed under the License is distributed on an "AS IS" BASIS,
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -16,7 +16,7 @@
 # limitations under the License.
 #
 
-require 'mixlib/authentication'
+require "mixlib/authentication"
 
 module Mixlib
   module Authentication
@@ -33,7 +33,7 @@
       end
 
       def headers
-        @headers ||= @request.env.inject({ }) { |memo, kv| 
memo[$2.gsub(/\-/,"_").downcase.to_sym] = kv[1] if kv[0] =~ /^(HTTP_)(.*)/; 
memo }
+        @headers ||= @request.env.inject({}) { |memo, kv| memo[$2.tr("-", 
"_").downcase.to_sym] = kv[1] if kv[0] =~ /^(HTTP_)(.*)/; memo }
       end
 
       def http_method
@@ -70,13 +70,12 @@
 
       def request_signature
         unless @request_signature
-          @request_signature = headers.find_all { |h| h[0].to_s =~ 
/^x_ops_authorization_/ }.sort { |x,y| x.to_s <=> y.to_s}.map { |i| i[1] 
}.join("\n")
+          @request_signature = headers.find_all { |h| h[0].to_s =~ 
/^x_ops_authorization_/ }.sort { |x, y| x.to_s <=> y.to_s }.map { |i| i[1] 
}.join("\n")
           Mixlib::Authentication::Log.debug "Reconstituted (user-supplied) 
request signature: #{@request_signature}"
         end
         @request_signature
       end
 
-
       def validate_headers!
         missing_headers = MANDATORY_HEADERS - headers.keys
         unless missing_headers.empty?
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/mixlib/authentication/signatureverification.rb 
new/lib/mixlib/authentication/signatureverification.rb
--- old/lib/mixlib/authentication/signatureverification.rb      2016-01-19 
18:37:56.000000000 +0100
+++ new/lib/mixlib/authentication/signatureverification.rb      2016-06-08 
12:26:14.000000000 +0200
@@ -7,9 +7,9 @@
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at
-# 
+#
 #     http://www.apache.org/licenses/LICENSE-2.0
-# 
+#
 # Unless required by applicable law or agreed to in writing, software
 # distributed under the License is distributed on an "AS IS" BASIS,
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -17,11 +17,11 @@
 # limitations under the License.
 #
 
-require 'net/http'
-require 'forwardable'
-require 'mixlib/authentication'
-require 'mixlib/authentication/http_authentication_request'
-require 'mixlib/authentication/signedheaderauth'
+require "net/http"
+require "forwardable"
+require "mixlib/authentication"
+require "mixlib/authentication/http_authentication_request"
+require "mixlib/authentication/signedheaderauth"
 
 module Mixlib
   module Authentication
@@ -52,7 +52,7 @@
 
       include Mixlib::Authentication::SignedHeaderAuth
 
-      def initialize(request=nil)
+      def initialize(request = nil)
         @auth_request = HTTPAuthenticationRequest.new(request) if request
 
         @valid_signature, @valid_timestamp, @valid_content_hash = false, 
false, false
@@ -60,8 +60,7 @@
         @hashed_body = nil
       end
 
-
-      def authenticate_user_request(request, user_lookup, time_skew=(15*60))
+      def authenticate_user_request(request, user_lookup, time_skew = (15 * 
60))
         @auth_request = HTTPAuthenticationRequest.new(request)
         authenticate_request(user_lookup, time_skew)
       end
@@ -74,9 +73,9 @@
       # X-Ops-Sign: algorithm=sha1;version=1.0;
       # X-Ops-UserId: <user_id>
       # X-Ops-Timestamp:
-      # X-Ops-Content-Hash: 
+      # X-Ops-Content-Hash:
       # X-Ops-Authorization-#{line_number}
-      def authenticate_request(user_secret, time_skew=(15*60))
+      def authenticate_request(user_secret, time_skew = (15 * 60))
         Mixlib::Authentication::Log.debug "Initializing header auth : 
#{request.inspect}"
 
         @user_secret       = user_secret
@@ -87,14 +86,14 @@
 
           # version 1.0 clients don't include their algorithm in the
           # signing description, so default to sha1
-          parts[:algorithm] ||= 'sha1'
+          parts[:algorithm] ||= "sha1"
 
           verify_signature(parts[:algorithm], parts[:version])
           verify_timestamp
           verify_content_hash
 
-        rescue StandardError=>se
-          raise AuthenticationError,"Failed to authenticate user request. 
Check your client key and clock: #{se.message}", se.backtrace
+        rescue StandardError => se
+          raise AuthenticationError, "Failed to authenticate user request. 
Check your client key and clock: #{se.message}", se.backtrace
         end
 
         if valid_request?
@@ -121,11 +120,11 @@
       end
 
       # The authorization header is a Base64-encoded version of an RSA 
signature.
-      # The client sent it on multiple header lines, starting at index 1 - 
+      # The client sent it on multiple header lines, starting at index 1 -
       # X-Ops-Authorization-1, X-Ops-Authorization-2, etc. Pull them out and
       # concatenate.
       def headers
-        @headers ||= request.env.inject({ }) { |memo, kv| 
memo[$2.gsub(/\-/,"_").downcase.to_sym] = kv[1] if kv[0] =~ /^(HTTP_)(.*)/; 
memo }
+        @headers ||= request.env.inject({}) { |memo, kv| memo[$2.tr("-", 
"_").downcase.to_sym] = kv[1] if kv[0] =~ /^(HTTP_)(.*)/; memo }
       end
 
       private
@@ -142,7 +141,7 @@
         candidate_block = canonicalize_request(algorithm, version)
         signature = Base64.decode64(request_signature)
         @valid_signature = case version
-                           when '1.3'
+                           when "1.3"
                              digest = validate_sign_version_digest!(algorithm, 
version)
                              @user_secret.verify(digest.new, signature, 
candidate_block)
                            else
@@ -177,10 +176,9 @@
         @valid_content_hash
       end
 
-
       # The request signature is based on any file attached, if any. Otherwise
       # it's based on the body of the request.
-      def hashed_body(digest=Digest::SHA1)
+      def hashed_body(digest = Digest::SHA1)
         unless @hashed_body
           # TODO: tim: 2009-112-28: It'd be nice to remove this special case, 
and
           # always hash the entire request body. In the file case it would 
just be
@@ -189,22 +187,22 @@
           # Pull out any file that was attached to this request, using 
multipart
           # form uploads.
           # Depending on the server we're running in, multipart form uploads 
are
-          # handed to us differently. 
-          # - In Passenger (Cookbooks Community Site), the File is handed to 
us 
-          #   directly in the params hash. The name is whatever the client 
used, 
-          #   its value is therefore a File or Tempfile. 
+          # handed to us differently.
+          # - In Passenger (Cookbooks Community Site), the File is handed to us
+          #   directly in the params hash. The name is whatever the client 
used,
+          #   its value is therefore a File or Tempfile.
           #   e.g. request['file_param'] = File
-          #   
-          # - In Merb (Chef server), the File is wrapped. The original 
parameter 
+          #
+          # - In Merb (Chef server), the File is wrapped. The original 
parameter
           #   name used for the file is used, but its value is a Hash. Within
-          #   the hash is a name/value pair named 'file' which actually 
+          #   the hash is a name/value pair named 'file' which actually
           #   contains the Tempfile instance.
           #   e.g. request['file_param'] = { :file => Tempfile }
           file_param = request.params.values.find { |value| 
value.respond_to?(:read) }
 
           # No file_param; we're running in Merb, or it's just not there..
           if file_param.nil?
-            hash_param = request.params.values.find { |value| 
value.respond_to?(:has_key?) }  # Hash responds to :has_key? .
+            hash_param = request.params.values.find { |value| 
value.respond_to?(:has_key?) } # Hash responds to :has_key? .
             if !hash_param.nil?
               file_param = hash_param.values.find { |value| 
value.respond_to?(:read) } # File/Tempfile responds to :read.
             end
@@ -225,22 +223,19 @@
       end
 
       # Compare the request timestamp with boundary time
-      # 
-      # 
+      #
+      #
       # ====Parameters
       # time1<Time>:: minuend
       # time2<Time>:: subtrahend
       #
       def timestamp_within_bounds?(time1, time2)
-        time_diff = (time2-time1).abs
+        time_diff = (time2 - time1).abs
         is_allowed = (time_diff < @allowed_time_skew)
         Mixlib::Authentication::Log.debug "Request time difference: 
#{time_diff}, within #{@allowed_time_skew} seconds? : #{!!is_allowed}"
-        is_allowed      
+        is_allowed
       end
     end
 
-
   end
 end
-
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/mixlib/authentication/signedheaderauth.rb 
new/lib/mixlib/authentication/signedheaderauth.rb
--- old/lib/mixlib/authentication/signedheaderauth.rb   2016-01-19 
18:37:56.000000000 +0100
+++ new/lib/mixlib/authentication/signedheaderauth.rb   2016-06-08 
12:26:14.000000000 +0200
@@ -17,11 +17,11 @@
 # limitations under the License.
 #
 
-require 'time'
-require 'base64'
-require 'openssl/digest'
-require 'mixlib/authentication'
-require 'mixlib/authentication/digester'
+require "time"
+require "base64"
+require "openssl/digest"
+require "mixlib/authentication"
+require "mixlib/authentication/digester"
 
 module Mixlib
   module Authentication
@@ -31,18 +31,18 @@
       NULL_ARG = Object.new
 
       ALGORITHM_FOR_VERSION = {
-        '1.0' => 'sha1',
-        '1.1' => 'sha1',
-        '1.3' => 'sha256',
+        "1.0" => "sha1",
+        "1.1" => "sha1",
+        "1.3" => "sha256",
       }.freeze()
 
       # Use of SUPPORTED_ALGORITHMS and SUPPORTED_VERSIONS is deprecated. Use
       # ALGORITHM_FOR_VERSION instead
-      SUPPORTED_ALGORITHMS = ['sha1'].freeze
-      SUPPORTED_VERSIONS = ['1.0', '1.1'].freeze
+      SUPPORTED_ALGORITHMS = ["sha1"].freeze
+      SUPPORTED_VERSIONS = ["1.0", "1.1"].freeze
 
-      DEFAULT_SIGN_ALGORITHM = 'sha1'.freeze
-      DEFAULT_PROTO_VERSION = '1.0'.freeze
+      DEFAULT_SIGN_ALGORITHM = "sha1".freeze
+      DEFAULT_PROTO_VERSION = "1.0".freeze
 
       # === signing_object
       # This is the intended interface for signing requests with the
@@ -72,7 +72,7 @@
       # ==== Other Parameters:
       # These parameters are accepted but not used in the computation of the 
signature.
       # * `:host`: The host part of the URI
-      def self.signing_object(args={ })
+      def self.signing_object(args = {})
         SigningObject.new(args[:http_method],
                           args[:path],
                           args[:body],
@@ -97,7 +97,7 @@
       # compute the signature from the request, using the looked-up user secret
       # ====Parameters
       # private_key<OpenSSL::PKey::RSA>:: user's RSA private key.
-      def sign(private_key, sign_algorithm=algorithm, 
sign_version=proto_version)
+      def sign(private_key, sign_algorithm = algorithm, sign_version = 
proto_version)
         digest = validate_sign_version_digest!(sign_algorithm, sign_version)
         # Our multiline hash for authorization will be encoded in multiple 
header
         # lines - X-Ops-Authorization-1, ... (starts at 1, not 0!)
@@ -132,9 +132,9 @@
         end
 
         case sign_algorithm
-        when 'sha1'
+        when "sha1"
           OpenSSL::Digest::SHA1
-        when 'sha256'
+        when "sha256"
           OpenSSL::Digest::SHA256
         else
           # This case should never happen
@@ -156,11 +156,11 @@
       # ====Parameters
       #
       def canonical_path
-        p = path.gsub(/\/+/,'/')
-        p.length > 1 ? p.chomp('/') : p
+        p = path.gsub(/\/+/, "/")
+        p.length > 1 ? p.chomp("/") : p
       end
 
-      def hashed_body(digest=OpenSSL::Digest::SHA1)
+      def hashed_body(digest = OpenSSL::Digest::SHA1)
         # This is weird. sign() is called with the digest type and signing
         # version. These are also expected to be properties of the object.
         # Hence, we're going to assume the one that is passed to sign is
@@ -189,7 +189,7 @@
       # ====Parameters
       #
       #
-      def canonicalize_request(sign_algorithm=algorithm, 
sign_version=proto_version)
+      def canonicalize_request(sign_algorithm = algorithm, sign_version = 
proto_version)
         digest = validate_sign_version_digest!(sign_algorithm, sign_version)
         canonical_x_ops_user_id = canonicalize_user_id(user_id, sign_version, 
digest)
         case sign_version
@@ -209,12 +209,12 @@
             "Hashed Path:#{digester.hash_string(canonical_path, digest)}",
             "X-Ops-Content-Hash:#{hashed_body(digest)}",
             "X-Ops-Timestamp:#{canonical_time}",
-            "X-Ops-UserId:#{canonical_x_ops_user_id}"
+            "X-Ops-UserId:#{canonical_x_ops_user_id}",
           ].join("\n")
         end
       end
 
-      def canonicalize_user_id(user_id, proto_version, 
digest=OpenSSL::Digest::SHA1)
+      def canonicalize_user_id(user_id, proto_version, digest = 
OpenSSL::Digest::SHA1)
         case proto_version
         when "1.1"
           # and 1.2 if that ever gets implemented
@@ -230,7 +230,7 @@
       # ====Parameters
       #
       def parse_signing_description
-        parts = signing_description.strip.split(";").inject({ }) do |memo, 
part|
+        parts = signing_description.strip.split(";").inject({}) do |memo, part|
           field_name, field_value = part.split("=")
           memo[field_name.to_sym] = field_value.strip
           memo
@@ -248,7 +248,7 @@
         string_to_sign = canonicalize_request(sign_algorithm, sign_version)
         Mixlib::Authentication::Log.debug "String to sign: '#{string_to_sign}'"
         case sign_version
-        when '1.3'
+        when "1.3"
           private_key.sign(digest.new, string_to_sign)
         else
           private_key.private_encrypt(string_to_sign)
@@ -269,12 +269,12 @@
       include SignedHeaderAuth
 
       def proto_version
-        (self[:proto_version] or DEFAULT_PROTO_VERSION).to_s
+        (self[:proto_version] || DEFAULT_PROTO_VERSION).to_s
       end
 
       def server_api_version
         key = (self[:headers] || {}).keys.select do |k|
-          k.downcase == 'x-ops-server-api-version'
+          k.downcase == "x-ops-server-api-version"
         end.first
         if key
           self[:headers][key]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/mixlib/authentication/version.rb 
new/lib/mixlib/authentication/version.rb
--- old/lib/mixlib/authentication/version.rb    2016-01-19 18:37:56.000000000 
+0100
+++ new/lib/mixlib/authentication/version.rb    2016-06-08 12:26:14.000000000 
+0200
@@ -13,9 +13,8 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-
 module Mixlib
   module Authentication
-    VERSION = '1.4.0'
+    VERSION = "1.4.1"
   end
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/mixlib/authentication.rb 
new/lib/mixlib/authentication.rb
--- old/lib/mixlib/authentication.rb    2016-01-19 18:37:56.000000000 +0100
+++ new/lib/mixlib/authentication.rb    2016-06-08 12:26:14.000000000 +0200
@@ -6,9 +6,9 @@
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at
-# 
+#
 #     http://www.apache.org/licenses/LICENSE-2.0
-# 
+#
 # Unless required by applicable law or agreed to in writing, software
 # distributed under the License is distributed on an "AS IS" BASIS,
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -16,11 +16,11 @@
 # limitations under the License.
 #
 
-require 'mixlib/log'
+require "mixlib/log"
 
 module Mixlib
   module Authentication
-    DEFAULT_SERVER_API_VERSION = '0'
+    DEFAULT_SERVER_API_VERSION = "0"
 
     class AuthenticationError < StandardError
     end
@@ -29,12 +29,10 @@
     end
 
     class Log
-      extend  Mixlib::Log      
+      extend Mixlib::Log
     end
-    
+
     Log.level = :error
-    
+
   end
 end
-
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/metadata new/metadata
--- old/metadata        2016-01-19 18:37:56.000000000 +0100
+++ new/metadata        2016-06-08 12:26:14.000000000 +0200
@@ -1,14 +1,14 @@
 --- !ruby/object:Gem::Specification
 name: mixlib-authentication
 version: !ruby/object:Gem::Version
-  version: 1.4.0
+  version: 1.4.1
 platform: ruby
 authors:
-- Opscode, Inc.
+- Chef Software, Inc.
 autorequire: 
 bindir: bin
 cert_chain: []
-date: 2016-01-19 00:00:00.000000000 Z
+date: 2016-06-08 00:00:00.000000000 Z
 dependencies:
 - !ruby/object:Gem::Dependency
   name: mixlib-log
@@ -31,7 +31,7 @@
     - - "~>"
       - !ruby/object:Gem::Version
         version: '3.2'
-  type: :runtime
+  type: :development
   prerelease: false
   version_requirements: !ruby/object:Gem::Requirement
     requirements:
@@ -45,7 +45,7 @@
     - - "~>"
       - !ruby/object:Gem::Version
         version: '3.2'
-  type: :runtime
+  type: :development
   prerelease: false
   version_requirements: !ruby/object:Gem::Requirement
     requirements:
@@ -59,7 +59,7 @@
     - - "~>"
       - !ruby/object:Gem::Version
         version: '3.2'
-  type: :runtime
+  type: :development
   prerelease: false
   version_requirements: !ruby/object:Gem::Requirement
     requirements:
@@ -67,6 +67,20 @@
       - !ruby/object:Gem::Version
         version: '3.2'
 - !ruby/object:Gem::Dependency
+  name: chefstyle
+  requirement: !ruby/object:Gem::Requirement
+    requirements:
+    - - ">="
+      - !ruby/object:Gem::Version
+        version: '0'
+  type: :development
+  prerelease: false
+  version_requirements: !ruby/object:Gem::Requirement
+    requirements:
+    - - ">="
+      - !ruby/object:Gem::Version
+        version: '0'
+- !ruby/object:Gem::Dependency
   name: rake
   requirement: !ruby/object:Gem::Requirement
     requirements:
@@ -81,18 +95,15 @@
       - !ruby/object:Gem::Version
         version: '10.4'
 description: Mixes in simple per-request authentication
-email: i...@opscode.com
+email: i...@chef.io
 executables: []
 extensions: []
-extra_rdoc_files:
-- README.rdoc
-- LICENSE
-- NOTICE
+extra_rdoc_files: []
 files:
 - Gemfile
 - LICENSE
 - NOTICE
-- README.rdoc
+- README.md
 - Rakefile
 - lib/mixlib/authentication.rb
 - lib/mixlib/authentication/digester.rb
@@ -105,8 +116,9 @@
 - spec/mixlib/authentication/http_authentication_request_spec.rb
 - spec/mixlib/authentication/mixlib_authentication_spec.rb
 - spec/spec_helper.rb
-homepage: http://www.opscode.com
-licenses: []
+homepage: https://www.chef.io
+licenses:
+- Apache-2.0
 metadata: {}
 post_install_message: 
 rdoc_options: []
@@ -124,7 +136,7 @@
       version: '0'
 requirements: []
 rubyforge_project: 
-rubygems_version: 2.5.0
+rubygems_version: 2.4.5.1
 signing_key: 
 specification_version: 4
 summary: Mixes in simple per-request authentication
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mixlib-authentication.gemspec 
new/mixlib-authentication.gemspec
--- old/mixlib-authentication.gemspec   2016-01-19 18:37:56.000000000 +0100
+++ new/mixlib-authentication.gemspec   2016-06-08 12:26:14.000000000 +0200
@@ -1,25 +1,25 @@
-$:.unshift(File.dirname(__FILE__) + '/lib')
-require 'mixlib/authentication/version'
+$:.unshift(File.dirname(__FILE__) + "/lib")
+require "mixlib/authentication/version"
 
 Gem::Specification.new do |s|
   s.name = "mixlib-authentication"
   s.version = Mixlib::Authentication::VERSION
   s.platform = Gem::Platform::RUBY
-  s.has_rdoc = true
-  s.extra_rdoc_files = ["README.rdoc", "LICENSE", 'NOTICE']
   s.summary = "Mixes in simple per-request authentication"
   s.description = s.summary
-  s.author = "Opscode, Inc."
-  s.email = "i...@opscode.com"
-  s.homepage = "http://www.opscode.com";
+  s.license = "Apache-2.0"
+  s.author = "Chef Software, Inc."
+  s.email = "i...@chef.io"
+  s.homepage = "https://www.chef.io";
 
   # Uncomment this to add a dependency
   s.add_dependency "mixlib-log"
 
-  s.require_path = 'lib'
-  s.files = %w(LICENSE README.rdoc Gemfile Rakefile NOTICE) + 
Dir.glob("*.gemspec") +
-      Dir.glob("{lib,spec}/**/*", File::FNM_DOTMATCH).reject {|f| 
File.directory?(f) }
+  s.require_path = "lib"
+  s.files = %w{LICENSE README.md Gemfile Rakefile NOTICE} + 
Dir.glob("*.gemspec") +
+    Dir.glob("{lib,spec}/**/*", File::FNM_DOTMATCH).reject { |f| 
File.directory?(f) }
 
-  %w(rspec-core rspec-expectations rspec-mocks).each { |gem| s.add_dependency 
gem, "~> 3.2" }
+  %w{rspec-core rspec-expectations rspec-mocks}.each { |gem| 
s.add_development_dependency gem, "~> 3.2" }
+  s.add_development_dependency "chefstyle"
   s.add_development_dependency "rake", "~> 10.4"
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/spec/mixlib/authentication/digester_spec.rb 
new/spec/mixlib/authentication/digester_spec.rb
--- old/spec/mixlib/authentication/digester_spec.rb     2016-01-19 
18:37:56.000000000 +0100
+++ new/spec/mixlib/authentication/digester_spec.rb     2016-06-08 
12:26:14.000000000 +0200
@@ -1,21 +1,21 @@
-require 'mixlib/authentication/digester'
+require "mixlib/authentication/digester"
 
 describe Mixlib::Authentication::Digester do
-  context 'backcompat' do
+  context "backcompat" do
     # The digester API should really have been private,
     # however oc-chef-pedant uses it.
-    let(:test_string) { 'hello' }
-    let(:test_string_checksum) { 'qvTGHdzF6KLavt4PO0gs2a6pQ00=' }
+    let(:test_string) { "hello" }
+    let(:test_string_checksum) { "qvTGHdzF6KLavt4PO0gs2a6pQ00=" }
 
     describe '#hash_file' do
-      it 'should default to use SHA1' do
+      it "should default to use SHA1" do
         expect(described_class.hash_file(StringIO.new(test_string))).to(
           eq(test_string_checksum))
       end
     end
 
     describe '#hash_string' do
-      it 'should default to use SHA1' do
+      it "should default to use SHA1" do
         expect(described_class.hash_string(test_string)).to(
           eq(test_string_checksum))
       end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/spec/mixlib/authentication/http_authentication_request_spec.rb 
new/spec/mixlib/authentication/http_authentication_request_spec.rb
--- old/spec/mixlib/authentication/http_authentication_request_spec.rb  
2016-01-19 18:37:56.000000000 +0100
+++ new/spec/mixlib/authentication/http_authentication_request_spec.rb  
2016-06-08 12:26:14.000000000 +0200
@@ -5,9 +5,9 @@
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at
-# 
+#
 #     http://www.apache.org/licenses/LICENSE-2.0
-# 
+#
 # Unless required by applicable law or agreed to in writing, software
 # distributed under the License is distributed on an "AS IS" BASIS,
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -15,12 +15,12 @@
 # limitations under the License.
 #
 
-require File.expand_path(File.join(File.dirname(__FILE__), 
'..','..','spec_helper'))
+require File.expand_path(File.join(File.dirname(__FILE__), "..", "..", 
"spec_helper"))
 
-require 'mixlib/authentication'
-require 'mixlib/authentication/http_authentication_request'
-require 'ostruct'
-require 'pp'
+require "mixlib/authentication"
+require "mixlib/authentication/http_authentication_request"
+require "ostruct"
+require "pp"
 
 describe Mixlib::Authentication::HTTPAuthenticationRequest do
   before do
@@ -39,66 +39,66 @@
     @merb_headers = {
       # These are used by signatureverification. An arbitrary sampling of 
non-HTTP_*
       # headers are in here to exercise that code path.
-      "HTTP_HOST"=>"127.0.0.1", 
-      "HTTP_X_OPS_SIGN"=>"version=1.0",
-      "HTTP_X_OPS_REQUESTID"=>"127.0.0.1 1258566194.85386", 
-      "HTTP_X_OPS_TIMESTAMP"=>@timestamp_iso8601, 
-      "HTTP_X_OPS_CONTENT_HASH"=>@x_ops_content_hash, 
-      "HTTP_X_OPS_USERID"=>@user_id, 
-      "HTTP_X_OPS_AUTHORIZATION_1"=>@http_x_ops_lines[0], 
-      "HTTP_X_OPS_AUTHORIZATION_2"=>@http_x_ops_lines[1], 
-      "HTTP_X_OPS_AUTHORIZATION_3"=>@http_x_ops_lines[2], 
-      "HTTP_X_OPS_AUTHORIZATION_4"=>@http_x_ops_lines[3], 
-      "HTTP_X_OPS_AUTHORIZATION_5"=>@http_x_ops_lines[4], 
-      "HTTP_X_OPS_AUTHORIZATION_6"=>@http_x_ops_lines[5], 
+      "HTTP_HOST" => "127.0.0.1",
+      "HTTP_X_OPS_SIGN" => "version=1.0",
+      "HTTP_X_OPS_REQUESTID" => "127.0.0.1 1258566194.85386",
+      "HTTP_X_OPS_TIMESTAMP" => @timestamp_iso8601,
+      "HTTP_X_OPS_CONTENT_HASH" => @x_ops_content_hash,
+      "HTTP_X_OPS_USERID" => @user_id,
+      "HTTP_X_OPS_AUTHORIZATION_1" => @http_x_ops_lines[0],
+      "HTTP_X_OPS_AUTHORIZATION_2" => @http_x_ops_lines[1],
+      "HTTP_X_OPS_AUTHORIZATION_3" => @http_x_ops_lines[2],
+      "HTTP_X_OPS_AUTHORIZATION_4" => @http_x_ops_lines[3],
+      "HTTP_X_OPS_AUTHORIZATION_5" => @http_x_ops_lines[4],
+      "HTTP_X_OPS_AUTHORIZATION_6" => @http_x_ops_lines[5],
 
       # Random sampling
-      "REMOTE_ADDR"=>"127.0.0.1", 
-      "PATH_INFO"=>"/organizations/local-test-org/cookbooks", 
-      "REQUEST_PATH"=>"/organizations/local-test-org/cookbooks", 
-      "CONTENT_TYPE"=>"multipart/form-data; 
boundary=----RubyMultipartClient6792ZZZZZ",
-      "CONTENT_LENGTH"=>"394", 
+      "REMOTE_ADDR" => "127.0.0.1",
+      "PATH_INFO" => "/organizations/local-test-org/cookbooks",
+      "REQUEST_PATH" => "/organizations/local-test-org/cookbooks",
+      "CONTENT_TYPE" => "multipart/form-data; 
boundary=----RubyMultipartClient6792ZZZZZ",
+      "CONTENT_LENGTH" => "394",
     }
-    @request = request.new(@merb_headers, "POST", '/nodes')
+    @request = request.new(@merb_headers, "POST", "/nodes")
     @http_authentication_request = 
Mixlib::Authentication::HTTPAuthenticationRequest.new(@request)
   end
 
   it "normalizes the headers to lowercase symbols" do
-    expected = {:host=>"127.0.0.1",
-                :x_ops_sign=>"version=1.0",
-                :x_ops_requestid=>"127.0.0.1 1258566194.85386",
-                :x_ops_timestamp=>"2009-01-01T12:00:00Z",
-                :x_ops_content_hash=>"DFteJZPVv6WKdQmMqZUQUumUyRs=",
-                :x_ops_userid=>"spec-user",
-                
:x_ops_authorization_1=>"jVHrNniWzpbez/eGWjFnO6lINRIuKOg40ZTIQudcFe47Z9e/HvrszfVXlKG4",
-                
:x_ops_authorization_2=>"NMzYZgyooSvU85qkIUmKuCqgG2AIlvYa2Q/2ctrMhoaHhLOCWWoqYNMaEqPc",
-                
:x_ops_authorization_3=>"3tKHE+CfvP+WuPdWk4jv4wpIkAz6ZLxToxcGhXmZbXpk56YTmqgBW2cbbw4O",
-                
:x_ops_authorization_4=>"IWPZDHSiPcw//AYNgW1CCDptt+UFuaFYbtqZegcBd2n/jzcWODA7zL4KWEUy",
-                
:x_ops_authorization_5=>"9q4rlh/+1tBReg60QdsmDRsw/cdO1GZrKtuCwbuD4+nbRdVBKv72rqHX9cu0",
-                
:x_ops_authorization_6=>"utju9jzczCyB+sSAQWrxSsXB/b8vV2qs0l4VD2ML+w=="}
+    expected = { :host => "127.0.0.1",
+                 :x_ops_sign => "version=1.0",
+                 :x_ops_requestid => "127.0.0.1 1258566194.85386",
+                 :x_ops_timestamp => "2009-01-01T12:00:00Z",
+                 :x_ops_content_hash => "DFteJZPVv6WKdQmMqZUQUumUyRs=",
+                 :x_ops_userid => "spec-user",
+                 :x_ops_authorization_1 => 
"jVHrNniWzpbez/eGWjFnO6lINRIuKOg40ZTIQudcFe47Z9e/HvrszfVXlKG4",
+                 :x_ops_authorization_2 => 
"NMzYZgyooSvU85qkIUmKuCqgG2AIlvYa2Q/2ctrMhoaHhLOCWWoqYNMaEqPc",
+                 :x_ops_authorization_3 => 
"3tKHE+CfvP+WuPdWk4jv4wpIkAz6ZLxToxcGhXmZbXpk56YTmqgBW2cbbw4O",
+                 :x_ops_authorization_4 => 
"IWPZDHSiPcw//AYNgW1CCDptt+UFuaFYbtqZegcBd2n/jzcWODA7zL4KWEUy",
+                 :x_ops_authorization_5 => 
"9q4rlh/+1tBReg60QdsmDRsw/cdO1GZrKtuCwbuD4+nbRdVBKv72rqHX9cu0",
+                 :x_ops_authorization_6 => 
"utju9jzczCyB+sSAQWrxSsXB/b8vV2qs0l4VD2ML+w==" }
     expect(@http_authentication_request.headers).to eq(expected)
   end
 
   it "raises an error when not all required headers are given" do
     @merb_headers.delete("HTTP_X_OPS_SIGN")
     exception = Mixlib::Authentication::MissingAuthenticationHeader
-    expect{ Mixlib::Authentication::HTTPAuthenticationRequest.new(@request) 
}.to raise_error(exception)
+    expect { Mixlib::Authentication::HTTPAuthenticationRequest.new(@request) 
}.to raise_error(exception)
   end
 
   it "extracts the path from the request" do
-    expect(@http_authentication_request.path).to eq('/nodes')
+    expect(@http_authentication_request.path).to eq("/nodes")
   end
 
   it "extracts the request method from the request" do
-    expect(@http_authentication_request.http_method).to eq('POST')
+    expect(@http_authentication_request.http_method).to eq("POST")
   end
 
   it "extracts the signing description from the request headers" do
-    expect(@http_authentication_request.signing_description).to 
eq('version=1.0')
+    expect(@http_authentication_request.signing_description).to 
eq("version=1.0")
   end
 
   it "extracts the user_id from the request headers" do
-    expect(@http_authentication_request.user_id).to eq('spec-user')
+    expect(@http_authentication_request.user_id).to eq("spec-user")
   end
 
   it "extracts the timestamp from the request headers" do
@@ -114,7 +114,7 @@
   end
 
   it "rebuilds the request signature from the headers" do
-    expected=<<-SIG
+    expected = <<-SIG
 jVHrNniWzpbez/eGWjFnO6lINRIuKOg40ZTIQudcFe47Z9e/HvrszfVXlKG4
 NMzYZgyooSvU85qkIUmKuCqgG2AIlvYa2Q/2ctrMhoaHhLOCWWoqYNMaEqPc
 3tKHE+CfvP+WuPdWk4jv4wpIkAz6ZLxToxcGhXmZbXpk56YTmqgBW2cbbw4O
@@ -126,7 +126,7 @@
   end
 
   it "defaults to server api version 0" do
-    expect(@http_authentication_request.server_api_version).to eq('0')
+    expect(@http_authentication_request.server_api_version).to eq("0")
   end
 
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/spec/mixlib/authentication/mixlib_authentication_spec.rb 
new/spec/mixlib/authentication/mixlib_authentication_spec.rb
--- old/spec/mixlib/authentication/mixlib_authentication_spec.rb        
2016-01-19 18:37:56.000000000 +0100
+++ new/spec/mixlib/authentication/mixlib_authentication_spec.rb        
2016-06-08 12:26:14.000000000 +0200
@@ -18,13 +18,13 @@
 # limitations under the License.
 #
 
-require File.expand_path(File.join(File.dirname(__FILE__), 
'..','..','spec_helper'))
-require 'rubygems'
+require File.expand_path(File.join(File.dirname(__FILE__), "..", "..", 
"spec_helper"))
+require "rubygems"
 
-require 'ostruct'
-require 'openssl'
-require 'mixlib/authentication/signatureverification'
-require 'time'
+require "ostruct"
+require "openssl"
+require "mixlib/authentication/signatureverification"
+require "time"
 
 # TODO: should make these regular spec-based mock objects.
 class MockRequest
@@ -102,10 +102,9 @@
     expect(V1_3_SHA256_SIGNING_OBJECT.sign(PRIVATE_KEY)).to 
eq(EXPECTED_SIGN_RESULT_V1_3_SHA256)
   end
 
-
   it "should generate the correct string to sign and signature for non-default 
proto version when used as a mixin" do
-    algorithm = 'sha1'
-    version = '1.1'
+    algorithm = "sha1"
+    version = "1.1"
 
     V1_1_SIGNING_OBJECT.proto_version = "1.0"
     expect(V1_1_SIGNING_OBJECT.proto_version).to eq("1.0")
@@ -118,19 +117,19 @@
   end
 
   it "should not choke when signing a request for a long user id with version 
1.1" do
-    expect { LONG_SIGNING_OBJECT.sign(PRIVATE_KEY, 'sha1', '1.1') }.not_to 
raise_error
+    expect { LONG_SIGNING_OBJECT.sign(PRIVATE_KEY, "sha1", "1.1") }.not_to 
raise_error
   end
 
   it "should choke when signing a request for a long user id with version 1.0" 
do
-    expect { LONG_SIGNING_OBJECT.sign(PRIVATE_KEY, 'sha1', '1.0') }.to 
raise_error(OpenSSL::PKey::RSAError)
+    expect { LONG_SIGNING_OBJECT.sign(PRIVATE_KEY, "sha1", "1.0") }.to 
raise_error(OpenSSL::PKey::RSAError)
   end
 
   it "should choke when signing a request with a bad version" do
-    expect { V1_1_SIGNING_OBJECT.sign(PRIVATE_KEY, 'sha1', 'poo') }.to 
raise_error(Mixlib::Authentication::AuthenticationError)
+    expect { V1_1_SIGNING_OBJECT.sign(PRIVATE_KEY, "sha1", "poo") }.to 
raise_error(Mixlib::Authentication::AuthenticationError)
   end
 
   it "should choke when signing a request with a bad algorithm" do
-    expect { V1_1_SIGNING_OBJECT.sign(PRIVATE_KEY, 'sha_poo', '1.1') }.to 
raise_error(Mixlib::Authentication::AuthenticationError)
+    expect { V1_1_SIGNING_OBJECT.sign(PRIVATE_KEY, "sha_poo", "1.1") }.to 
raise_error(Mixlib::Authentication::AuthenticationError)
   end
 
 end
@@ -144,7 +143,7 @@
   it "should authenticate a File-containing request V1.1 - Merb" do
     request_params = MERB_REQUEST_PARAMS.clone
     request_params["file"] =
-      { "size"=>MockFile.length, "content_type"=>"application/octet-stream", 
"filename"=>"zsh.tar.gz", "tempfile"=>MockFile.new }
+      { "size" => MockFile.length, "content_type" => 
"application/octet-stream", "filename" => "zsh.tar.gz", "tempfile" => 
MockFile.new }
 
     mock_request = MockRequest.new(PATH, request_params, MERB_HEADERS_V1_1, "")
     expect(Time).to receive(:now).at_least(:once).and_return(TIMESTAMP_OBJ)
@@ -157,7 +156,7 @@
   it "should authenticate a File-containing request V1.3 SHA256 - Merb" do
     request_params = MERB_REQUEST_PARAMS.clone
     request_params["file"] =
-      { "size"=>MockFile.length, "content_type"=>"application/octet-stream", 
"filename"=>"zsh.tar.gz", "tempfile"=>MockFile.new }
+      { "size" => MockFile.length, "content_type" => 
"application/octet-stream", "filename" => "zsh.tar.gz", "tempfile" => 
MockFile.new }
 
     mock_request = MockRequest.new(PATH, request_params, 
MERB_HEADERS_V1_3_SHA256, "")
     expect(Time).to receive(:now).at_least(:once).and_return(TIMESTAMP_OBJ)
@@ -215,7 +214,7 @@
     #Time.stub!(:now).and_return(TIMESTAMP_OBJ)
 
     auth_req = Mixlib::Authentication::SignatureVerification.new
-    expect {auth_req.authenticate_user_request(mock_request, 
@user_private_key)}.to raise_error(Mixlib::Authentication::AuthenticationError)
+    expect { auth_req.authenticate_user_request(mock_request, 
@user_private_key) }.to raise_error(Mixlib::Authentication::AuthenticationError)
 
     expect(auth_req).not_to be_a_valid_request
     expect(auth_req).not_to be_a_valid_timestamp
@@ -223,7 +222,6 @@
     expect(auth_req).not_to be_a_valid_content_hash
   end
 
-
   it "shouldn't authenticate if Authorization header is wrong" do
     headers = MERB_HEADERS_V1_1.clone
     headers["HTTP_X_OPS_CONTENT_HASH"] += "_"
@@ -255,7 +253,7 @@
   end
 
   it "shouldn't authenticate if the signature is wrong" do
-    headers =  MERB_HEADERS_V1_1.dup
+    headers = MERB_HEADERS_V1_1.dup
     headers["HTTP_X_OPS_AUTHORIZATION_1"] = "epicfail"
     mock_request = MockRequest.new(PATH, MERB_REQUEST_PARAMS, headers, BODY)
     expect(Time).to receive(:now).at_least(:once).and_return(TIMESTAMP_OBJ)
@@ -270,7 +268,7 @@
   end
 
   it "shouldn't authenticate if the signature is wrong for v1.3 SHA256" do
-    headers =  MERB_HEADERS_V1_3_SHA256.dup
+    headers = MERB_HEADERS_V1_3_SHA256.dup
     headers["HTTP_X_OPS_AUTHORIZATION_1"] = "epicfail"
     mock_request = MockRequest.new(PATH, MERB_REQUEST_PARAMS, headers, BODY)
     expect(Time).to receive(:now).at_least(:once).and_return(TIMESTAMP_OBJ)
@@ -301,7 +299,7 @@
   :http_method => :post,
   :timestamp => TIMESTAMP_ISO8601,    # fixed timestamp so we get back the 
same answer each time.
   :file => MockFile.new,
-  :path => PATH
+  :path => PATH,
 }
 
 V1_1_ARGS = {
@@ -311,7 +309,7 @@
   :timestamp => TIMESTAMP_ISO8601,    # fixed timestamp so we get back the 
same answer each time.
   :file => MockFile.new,
   :path => PATH,
-  :proto_version => 1.1
+  :proto_version => 1.1,
 }
 
 V1_3_ARGS_SHA256 = {
@@ -321,9 +319,9 @@
   :timestamp => TIMESTAMP_ISO8601,    # fixed timestamp so we get back the 
same answer each time.
   :file => MockFile.new,
   :path => PATH,
-  :proto_version => '1.3',
+  :proto_version => "1.3",
   :headers => {
-    'X-OpS-SeRvEr-ApI-VerSiOn' => '1'
+    "X-OpS-SeRvEr-ApI-VerSiOn" => "1",
   }
   # This defaults to sha256
 }
@@ -332,9 +330,9 @@
   :body => BODY,
   :user_id => "A" * 200,
   :http_method => :put,
-  :timestamp => TIMESTAMP_ISO8601,    # fixed timestamp so we get back the 
same answer each time.
+  :timestamp => TIMESTAMP_ISO8601, # fixed timestamp so we get back the same 
answer each time.
   :file => MockFile.new,
-  :path => PATH + "/nodes/#{"A" * 250}"
+  :path => PATH + "/nodes/#{"A" * 250}",
 }
 
 REQUESTING_ACTOR_ID = "c0f8a68c52bffa1020222a56b23cccfa"
@@ -349,7 +347,7 @@
 "3tKHE+CfvP+WuPdWk4jv4wpIkAz6ZLxToxcGhXmZbXpk56YTmqgBW2cbbw4O",
 "IWPZDHSiPcw//AYNgW1CCDptt+UFuaFYbtqZegcBd2n/jzcWODA7zL4KWEUy",
 "9q4rlh/+1tBReg60QdsmDRsw/cdO1GZrKtuCwbuD4+nbRdVBKv72rqHX9cu0",
-"utju9jzczCyB+sSAQWrxSsXB/b8vV2qs0l4VD2ML+w=="
+"utju9jzczCyB+sSAQWrxSsXB/b8vV2qs0l4VD2ML+w==",
 ]
 
 X_OPS_AUTHORIZATION_LINES = [
@@ -358,7 +356,7 @@
 "c2R9bx/43IWA/r8w8Q6decuu0f6ZlNheJeJhaYPI8piX/aH+uHBH8zTACZu8",
 "vMnl5MF3/OIlsZc8cemq6eKYstp8a8KYq9OmkB5IXIX6qVMJHA6fRvQEB/7j",
 "281Q7oI/O+lE8AmVyBbwruPb7Mp6s4839eYiOdjbDwFjYtbS3XgAjrHlaD7W",
-"FDlbAG7H8Dmvo+wBxmtNkszhzbBnEYtuwQqT8nM/8A=="
+"FDlbAG7H8Dmvo+wBxmtNkszhzbBnEYtuwQqT8nM/8A==",
 ]
 
 X_OPS_AUTHORIZATION_LINES_V1_3_SHA256 = [
@@ -367,154 +365,154 @@
   "42dZ9N+V9I5SVfcL/lWrrlpdybfceJC5jOcP5tzfJXWUITwb6Z3Erg3DU3Uh",
   "H9h9E0qWlYGqmiNCVrBnpe6Si1gU/Jl+rXlRSNbLJ4GlArAPuL976iTYJTzE",
   "MmbLUIm3JRYi00Yb01IUCCKdI90vUq1HHNtlTEu93YZfQaJwRxXlGkCNwIJe",
-  "fy49QzaCIEu1XiOx5Jn+4GmkrZch/RrK9VzQWXgs+w=="
+  "fy49QzaCIEu1XiOx5Jn+4GmkrZch/RrK9VzQWXgs+w==",
 ]
 # We expect Mixlib::Authentication::SignedHeaderAuth#sign to return this
 # if passed the BODY above, based on version
 
 EXPECTED_SIGN_RESULT_V1_0 = {
-  "X-Ops-Content-Hash"=>X_OPS_CONTENT_HASH,
-  "X-Ops-Userid"=>USER_ID,
-  "X-Ops-Sign"=>"algorithm=sha1;version=1.0;",
-  "X-Ops-Authorization-1"=>X_OPS_AUTHORIZATION_LINES_V1_0[0],
-  "X-Ops-Authorization-2"=>X_OPS_AUTHORIZATION_LINES_V1_0[1],
-  "X-Ops-Authorization-3"=>X_OPS_AUTHORIZATION_LINES_V1_0[2],
-  "X-Ops-Authorization-4"=>X_OPS_AUTHORIZATION_LINES_V1_0[3],
-  "X-Ops-Authorization-5"=>X_OPS_AUTHORIZATION_LINES_V1_0[4],
-  "X-Ops-Authorization-6"=>X_OPS_AUTHORIZATION_LINES_V1_0[5],
-  "X-Ops-Timestamp"=>TIMESTAMP_ISO8601
+  "X-Ops-Content-Hash" => X_OPS_CONTENT_HASH,
+  "X-Ops-Userid" => USER_ID,
+  "X-Ops-Sign" => "algorithm=sha1;version=1.0;",
+  "X-Ops-Authorization-1" => X_OPS_AUTHORIZATION_LINES_V1_0[0],
+  "X-Ops-Authorization-2" => X_OPS_AUTHORIZATION_LINES_V1_0[1],
+  "X-Ops-Authorization-3" => X_OPS_AUTHORIZATION_LINES_V1_0[2],
+  "X-Ops-Authorization-4" => X_OPS_AUTHORIZATION_LINES_V1_0[3],
+  "X-Ops-Authorization-5" => X_OPS_AUTHORIZATION_LINES_V1_0[4],
+  "X-Ops-Authorization-6" => X_OPS_AUTHORIZATION_LINES_V1_0[5],
+  "X-Ops-Timestamp" => TIMESTAMP_ISO8601,
 }
 
 EXPECTED_SIGN_RESULT_V1_1 = {
-  "X-Ops-Content-Hash"=>X_OPS_CONTENT_HASH,
-  "X-Ops-Userid"=>USER_ID,
-  "X-Ops-Sign"=>"algorithm=sha1;version=1.1;",
-  "X-Ops-Authorization-1"=>X_OPS_AUTHORIZATION_LINES[0],
-  "X-Ops-Authorization-2"=>X_OPS_AUTHORIZATION_LINES[1],
-  "X-Ops-Authorization-3"=>X_OPS_AUTHORIZATION_LINES[2],
-  "X-Ops-Authorization-4"=>X_OPS_AUTHORIZATION_LINES[3],
-  "X-Ops-Authorization-5"=>X_OPS_AUTHORIZATION_LINES[4],
-  "X-Ops-Authorization-6"=>X_OPS_AUTHORIZATION_LINES[5],
-  "X-Ops-Timestamp"=>TIMESTAMP_ISO8601
+  "X-Ops-Content-Hash" => X_OPS_CONTENT_HASH,
+  "X-Ops-Userid" => USER_ID,
+  "X-Ops-Sign" => "algorithm=sha1;version=1.1;",
+  "X-Ops-Authorization-1" => X_OPS_AUTHORIZATION_LINES[0],
+  "X-Ops-Authorization-2" => X_OPS_AUTHORIZATION_LINES[1],
+  "X-Ops-Authorization-3" => X_OPS_AUTHORIZATION_LINES[2],
+  "X-Ops-Authorization-4" => X_OPS_AUTHORIZATION_LINES[3],
+  "X-Ops-Authorization-5" => X_OPS_AUTHORIZATION_LINES[4],
+  "X-Ops-Authorization-6" => X_OPS_AUTHORIZATION_LINES[5],
+  "X-Ops-Timestamp" => TIMESTAMP_ISO8601,
 }
 
 EXPECTED_SIGN_RESULT_V1_3_SHA256 = {
-  "X-Ops-Content-Hash"=>X_OPS_CONTENT_HASH_SHA256,
-  "X-Ops-Userid"=>USER_ID,
-  "X-Ops-Sign"=>"algorithm=sha256;version=1.3;",
-  "X-Ops-Authorization-1"=>X_OPS_AUTHORIZATION_LINES_V1_3_SHA256[0],
-  "X-Ops-Authorization-2"=>X_OPS_AUTHORIZATION_LINES_V1_3_SHA256[1],
-  "X-Ops-Authorization-3"=>X_OPS_AUTHORIZATION_LINES_V1_3_SHA256[2],
-  "X-Ops-Authorization-4"=>X_OPS_AUTHORIZATION_LINES_V1_3_SHA256[3],
-  "X-Ops-Authorization-5"=>X_OPS_AUTHORIZATION_LINES_V1_3_SHA256[4],
-  "X-Ops-Authorization-6"=>X_OPS_AUTHORIZATION_LINES_V1_3_SHA256[5],
-  "X-Ops-Timestamp"=>TIMESTAMP_ISO8601
+  "X-Ops-Content-Hash" => X_OPS_CONTENT_HASH_SHA256,
+  "X-Ops-Userid" => USER_ID,
+  "X-Ops-Sign" => "algorithm=sha256;version=1.3;",
+  "X-Ops-Authorization-1" => X_OPS_AUTHORIZATION_LINES_V1_3_SHA256[0],
+  "X-Ops-Authorization-2" => X_OPS_AUTHORIZATION_LINES_V1_3_SHA256[1],
+  "X-Ops-Authorization-3" => X_OPS_AUTHORIZATION_LINES_V1_3_SHA256[2],
+  "X-Ops-Authorization-4" => X_OPS_AUTHORIZATION_LINES_V1_3_SHA256[3],
+  "X-Ops-Authorization-5" => X_OPS_AUTHORIZATION_LINES_V1_3_SHA256[4],
+  "X-Ops-Authorization-6" => X_OPS_AUTHORIZATION_LINES_V1_3_SHA256[5],
+  "X-Ops-Timestamp" => TIMESTAMP_ISO8601,
 }
 
 OTHER_HEADERS = {
   # An arbitrary sampling of non-HTTP_* headers are in here to
   # exercise that code path.
-  "REMOTE_ADDR"=>"127.0.0.1",
-  "PATH_INFO"=>"/organizations/local-test-org/cookbooks",
-  "REQUEST_PATH"=>"/organizations/local-test-org/cookbooks",
-  "CONTENT_TYPE"=>"multipart/form-data; 
boundary=----RubyMultipartClient6792ZZZZZ",
-  "CONTENT_LENGTH"=>"394",
+  "REMOTE_ADDR" => "127.0.0.1",
+  "PATH_INFO" => "/organizations/local-test-org/cookbooks",
+  "REQUEST_PATH" => "/organizations/local-test-org/cookbooks",
+  "CONTENT_TYPE" => "multipart/form-data; 
boundary=----RubyMultipartClient6792ZZZZZ",
+  "CONTENT_LENGTH" => "394",
 }
 
 # This is what will be in request.params for the Merb case.
 MERB_REQUEST_PARAMS = {
-  "name"=>"zsh", "action"=>"create", "controller"=>"chef_server_api/cookbooks",
-  "organization_id"=>"local-test-org", 
"requesting_actor_id"=>REQUESTING_ACTOR_ID,
+  "name" => "zsh", "action" => "create", "controller" => 
"chef_server_api/cookbooks",
+  "organization_id" => "local-test-org", "requesting_actor_id" => 
REQUESTING_ACTOR_ID
 }
 
 MERB_HEADERS_V1_3_SHA256 = {
   # These are used by signatureverification.
-  "HTTP_HOST"=>"127.0.0.1",
-  "HTTP_X_OPS_SIGN"=>"algorithm=sha256;version=1.3;",
-  "HTTP_X_OPS_REQUESTID"=>"127.0.0.1 1258566194.85386",
-  "HTTP_X_OPS_TIMESTAMP"=>TIMESTAMP_ISO8601,
-  "HTTP_X_OPS_CONTENT_HASH"=>X_OPS_CONTENT_HASH_SHA256,
-  "HTTP_X_OPS_USERID"=>USER_ID,
-  "HTTP_X_OPS_SERVER_API_VERSION"=>"1",
-  "HTTP_X_OPS_AUTHORIZATION_1"=>X_OPS_AUTHORIZATION_LINES_V1_3_SHA256[0],
-  "HTTP_X_OPS_AUTHORIZATION_2"=>X_OPS_AUTHORIZATION_LINES_V1_3_SHA256[1],
-  "HTTP_X_OPS_AUTHORIZATION_3"=>X_OPS_AUTHORIZATION_LINES_V1_3_SHA256[2],
-  "HTTP_X_OPS_AUTHORIZATION_4"=>X_OPS_AUTHORIZATION_LINES_V1_3_SHA256[3],
-  "HTTP_X_OPS_AUTHORIZATION_5"=>X_OPS_AUTHORIZATION_LINES_V1_3_SHA256[4],
-  "HTTP_X_OPS_AUTHORIZATION_6"=>X_OPS_AUTHORIZATION_LINES_V1_3_SHA256[5],
+  "HTTP_HOST" => "127.0.0.1",
+  "HTTP_X_OPS_SIGN" => "algorithm=sha256;version=1.3;",
+  "HTTP_X_OPS_REQUESTID" => "127.0.0.1 1258566194.85386",
+  "HTTP_X_OPS_TIMESTAMP" => TIMESTAMP_ISO8601,
+  "HTTP_X_OPS_CONTENT_HASH" => X_OPS_CONTENT_HASH_SHA256,
+  "HTTP_X_OPS_USERID" => USER_ID,
+  "HTTP_X_OPS_SERVER_API_VERSION" => "1",
+  "HTTP_X_OPS_AUTHORIZATION_1" => X_OPS_AUTHORIZATION_LINES_V1_3_SHA256[0],
+  "HTTP_X_OPS_AUTHORIZATION_2" => X_OPS_AUTHORIZATION_LINES_V1_3_SHA256[1],
+  "HTTP_X_OPS_AUTHORIZATION_3" => X_OPS_AUTHORIZATION_LINES_V1_3_SHA256[2],
+  "HTTP_X_OPS_AUTHORIZATION_4" => X_OPS_AUTHORIZATION_LINES_V1_3_SHA256[3],
+  "HTTP_X_OPS_AUTHORIZATION_5" => X_OPS_AUTHORIZATION_LINES_V1_3_SHA256[4],
+  "HTTP_X_OPS_AUTHORIZATION_6" => X_OPS_AUTHORIZATION_LINES_V1_3_SHA256[5],
 }.merge(OTHER_HEADERS)
 
 # Tis is what will be in request.env for the Merb case.
 MERB_HEADERS_V1_1 = {
   # These are used by signatureverification.
-  "HTTP_HOST"=>"127.0.0.1",
-  "HTTP_X_OPS_SIGN"=>"algorithm=sha1;version=1.1;",
-  "HTTP_X_OPS_REQUESTID"=>"127.0.0.1 1258566194.85386",
-  "HTTP_X_OPS_TIMESTAMP"=>TIMESTAMP_ISO8601,
-  "HTTP_X_OPS_CONTENT_HASH"=>X_OPS_CONTENT_HASH,
-  "HTTP_X_OPS_USERID"=>USER_ID,
-  "HTTP_X_OPS_AUTHORIZATION_1"=>X_OPS_AUTHORIZATION_LINES[0],
-  "HTTP_X_OPS_AUTHORIZATION_2"=>X_OPS_AUTHORIZATION_LINES[1],
-  "HTTP_X_OPS_AUTHORIZATION_3"=>X_OPS_AUTHORIZATION_LINES[2],
-  "HTTP_X_OPS_AUTHORIZATION_4"=>X_OPS_AUTHORIZATION_LINES[3],
-  "HTTP_X_OPS_AUTHORIZATION_5"=>X_OPS_AUTHORIZATION_LINES[4],
-  "HTTP_X_OPS_AUTHORIZATION_6"=>X_OPS_AUTHORIZATION_LINES[5],
+  "HTTP_HOST" => "127.0.0.1",
+  "HTTP_X_OPS_SIGN" => "algorithm=sha1;version=1.1;",
+  "HTTP_X_OPS_REQUESTID" => "127.0.0.1 1258566194.85386",
+  "HTTP_X_OPS_TIMESTAMP" => TIMESTAMP_ISO8601,
+  "HTTP_X_OPS_CONTENT_HASH" => X_OPS_CONTENT_HASH,
+  "HTTP_X_OPS_USERID" => USER_ID,
+  "HTTP_X_OPS_AUTHORIZATION_1" => X_OPS_AUTHORIZATION_LINES[0],
+  "HTTP_X_OPS_AUTHORIZATION_2" => X_OPS_AUTHORIZATION_LINES[1],
+  "HTTP_X_OPS_AUTHORIZATION_3" => X_OPS_AUTHORIZATION_LINES[2],
+  "HTTP_X_OPS_AUTHORIZATION_4" => X_OPS_AUTHORIZATION_LINES[3],
+  "HTTP_X_OPS_AUTHORIZATION_5" => X_OPS_AUTHORIZATION_LINES[4],
+  "HTTP_X_OPS_AUTHORIZATION_6" => X_OPS_AUTHORIZATION_LINES[5],
 }.merge(OTHER_HEADERS)
 
 # Tis is what will be in request.env for the Merb case.
 MERB_HEADERS_V1_0 = {
   # These are used by signatureverification.
-  "HTTP_HOST"=>"127.0.0.1",
-  "HTTP_X_OPS_SIGN"=>"version=1.0",
-  "HTTP_X_OPS_REQUESTID"=>"127.0.0.1 1258566194.85386",
-  "HTTP_X_OPS_TIMESTAMP"=>TIMESTAMP_ISO8601,
-  "HTTP_X_OPS_CONTENT_HASH"=>X_OPS_CONTENT_HASH,
-  "HTTP_X_OPS_USERID"=>USER_ID,
-  "HTTP_X_OPS_AUTHORIZATION_1"=>X_OPS_AUTHORIZATION_LINES_V1_0[0],
-  "HTTP_X_OPS_AUTHORIZATION_2"=>X_OPS_AUTHORIZATION_LINES_V1_0[1],
-  "HTTP_X_OPS_AUTHORIZATION_3"=>X_OPS_AUTHORIZATION_LINES_V1_0[2],
-  "HTTP_X_OPS_AUTHORIZATION_4"=>X_OPS_AUTHORIZATION_LINES_V1_0[3],
-  "HTTP_X_OPS_AUTHORIZATION_5"=>X_OPS_AUTHORIZATION_LINES_V1_0[4],
-  "HTTP_X_OPS_AUTHORIZATION_6"=>X_OPS_AUTHORIZATION_LINES_V1_0[5],
+  "HTTP_HOST" => "127.0.0.1",
+  "HTTP_X_OPS_SIGN" => "version=1.0",
+  "HTTP_X_OPS_REQUESTID" => "127.0.0.1 1258566194.85386",
+  "HTTP_X_OPS_TIMESTAMP" => TIMESTAMP_ISO8601,
+  "HTTP_X_OPS_CONTENT_HASH" => X_OPS_CONTENT_HASH,
+  "HTTP_X_OPS_USERID" => USER_ID,
+  "HTTP_X_OPS_AUTHORIZATION_1" => X_OPS_AUTHORIZATION_LINES_V1_0[0],
+  "HTTP_X_OPS_AUTHORIZATION_2" => X_OPS_AUTHORIZATION_LINES_V1_0[1],
+  "HTTP_X_OPS_AUTHORIZATION_3" => X_OPS_AUTHORIZATION_LINES_V1_0[2],
+  "HTTP_X_OPS_AUTHORIZATION_4" => X_OPS_AUTHORIZATION_LINES_V1_0[3],
+  "HTTP_X_OPS_AUTHORIZATION_5" => X_OPS_AUTHORIZATION_LINES_V1_0[4],
+  "HTTP_X_OPS_AUTHORIZATION_6" => X_OPS_AUTHORIZATION_LINES_V1_0[5],
 }.merge(OTHER_HEADERS)
 
 PASSENGER_REQUEST_PARAMS = {
-  "action"=>"create",
+  "action" => "create",
   #"tarball"=>#<File:/tmp/RackMultipart20091120-25570-mgq2sa-0>,
-  "controller"=>"api/v1/cookbooks",
-  "cookbook"=>"{\"category\":\"databases\"}",
+  "controller" => "api/v1/cookbooks",
+  "cookbook" => "{\"category\":\"databases\"}",
 }
 
 PASSENGER_HEADERS_V1_1 = {
   # These are used by signatureverification.
-  "HTTP_HOST"=>"127.0.0.1",
-  "HTTP_X_OPS_SIGN"=>"algorithm=sha1;version=1.1;",
-  "HTTP_X_OPS_REQUESTID"=>"127.0.0.1 1258566194.85386",
-  "HTTP_X_OPS_TIMESTAMP"=>TIMESTAMP_ISO8601,
-  "HTTP_X_OPS_CONTENT_HASH"=>X_OPS_CONTENT_HASH,
-  "HTTP_X_OPS_USERID"=>USER_ID,
-  "HTTP_X_OPS_AUTHORIZATION_1"=>X_OPS_AUTHORIZATION_LINES[0],
-  "HTTP_X_OPS_AUTHORIZATION_2"=>X_OPS_AUTHORIZATION_LINES[1],
-  "HTTP_X_OPS_AUTHORIZATION_3"=>X_OPS_AUTHORIZATION_LINES[2],
-  "HTTP_X_OPS_AUTHORIZATION_4"=>X_OPS_AUTHORIZATION_LINES[3],
-  "HTTP_X_OPS_AUTHORIZATION_5"=>X_OPS_AUTHORIZATION_LINES[4],
-  "HTTP_X_OPS_AUTHORIZATION_6"=>X_OPS_AUTHORIZATION_LINES[5],
+  "HTTP_HOST" => "127.0.0.1",
+  "HTTP_X_OPS_SIGN" => "algorithm=sha1;version=1.1;",
+  "HTTP_X_OPS_REQUESTID" => "127.0.0.1 1258566194.85386",
+  "HTTP_X_OPS_TIMESTAMP" => TIMESTAMP_ISO8601,
+  "HTTP_X_OPS_CONTENT_HASH" => X_OPS_CONTENT_HASH,
+  "HTTP_X_OPS_USERID" => USER_ID,
+  "HTTP_X_OPS_AUTHORIZATION_1" => X_OPS_AUTHORIZATION_LINES[0],
+  "HTTP_X_OPS_AUTHORIZATION_2" => X_OPS_AUTHORIZATION_LINES[1],
+  "HTTP_X_OPS_AUTHORIZATION_3" => X_OPS_AUTHORIZATION_LINES[2],
+  "HTTP_X_OPS_AUTHORIZATION_4" => X_OPS_AUTHORIZATION_LINES[3],
+  "HTTP_X_OPS_AUTHORIZATION_5" => X_OPS_AUTHORIZATION_LINES[4],
+  "HTTP_X_OPS_AUTHORIZATION_6" => X_OPS_AUTHORIZATION_LINES[5],
 }.merge(OTHER_HEADERS)
 
 PASSENGER_HEADERS_V1_0 = {
   # These are used by signatureverification.
-  "HTTP_HOST"=>"127.0.0.1",
-  "HTTP_X_OPS_SIGN"=>"version=1.0",
-  "HTTP_X_OPS_REQUESTID"=>"127.0.0.1 1258566194.85386",
-  "HTTP_X_OPS_TIMESTAMP"=>TIMESTAMP_ISO8601,
-  "HTTP_X_OPS_CONTENT_HASH"=>X_OPS_CONTENT_HASH,
-  "HTTP_X_OPS_USERID"=>USER_ID,
-  "HTTP_X_OPS_AUTHORIZATION_1"=>X_OPS_AUTHORIZATION_LINES_V1_0[0],
-  "HTTP_X_OPS_AUTHORIZATION_2"=>X_OPS_AUTHORIZATION_LINES_V1_0[1],
-  "HTTP_X_OPS_AUTHORIZATION_3"=>X_OPS_AUTHORIZATION_LINES_V1_0[2],
-  "HTTP_X_OPS_AUTHORIZATION_4"=>X_OPS_AUTHORIZATION_LINES_V1_0[3],
-  "HTTP_X_OPS_AUTHORIZATION_5"=>X_OPS_AUTHORIZATION_LINES_V1_0[4],
-  "HTTP_X_OPS_AUTHORIZATION_6"=>X_OPS_AUTHORIZATION_LINES_V1_0[5],
+  "HTTP_HOST" => "127.0.0.1",
+  "HTTP_X_OPS_SIGN" => "version=1.0",
+  "HTTP_X_OPS_REQUESTID" => "127.0.0.1 1258566194.85386",
+  "HTTP_X_OPS_TIMESTAMP" => TIMESTAMP_ISO8601,
+  "HTTP_X_OPS_CONTENT_HASH" => X_OPS_CONTENT_HASH,
+  "HTTP_X_OPS_USERID" => USER_ID,
+  "HTTP_X_OPS_AUTHORIZATION_1" => X_OPS_AUTHORIZATION_LINES_V1_0[0],
+  "HTTP_X_OPS_AUTHORIZATION_2" => X_OPS_AUTHORIZATION_LINES_V1_0[1],
+  "HTTP_X_OPS_AUTHORIZATION_3" => X_OPS_AUTHORIZATION_LINES_V1_0[2],
+  "HTTP_X_OPS_AUTHORIZATION_4" => X_OPS_AUTHORIZATION_LINES_V1_0[3],
+  "HTTP_X_OPS_AUTHORIZATION_5" => X_OPS_AUTHORIZATION_LINES_V1_0[4],
+  "HTTP_X_OPS_AUTHORIZATION_6" => X_OPS_AUTHORIZATION_LINES_V1_0[5],
 }.merge(OTHER_HEADERS)
 
 # generated with
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/spec/spec_helper.rb new/spec/spec_helper.rb
--- old/spec/spec_helper.rb     2016-01-19 18:37:56.000000000 +0100
+++ new/spec/spec_helper.rb     2016-06-08 12:26:14.000000000 +0200
@@ -7,9 +7,9 @@
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at
-# 
+#
 #     http://www.apache.org/licenses/LICENSE-2.0
-# 
+#
 # Unless required by applicable law or agreed to in writing, software
 # distributed under the License is distributed on an "AS IS" BASIS,
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -20,4 +20,4 @@
 $:.unshift File.expand_path(File.join(File.dirname(__FILE__), "..", "lib")) # 
lib in mixlib-authentication
 $:.unshift File.expand_path(File.join(File.dirname(__FILE__), "..", "..", 
"mixlib-log", "lib")) # mixlib-log/log
 
-require 'rubygems'
+require "rubygems"


Reply via email to