diff options
Diffstat (limited to 'lib/rack/auth/digest/md5.rb')
-rw-r--r-- | lib/rack/auth/digest/md5.rb | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/lib/rack/auth/digest/md5.rb b/lib/rack/auth/digest/md5.rb index ddee35de..62bff984 100644 --- a/lib/rack/auth/digest/md5.rb +++ b/lib/rack/auth/digest/md5.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'rack/auth/abstract/handler' require 'rack/auth/digest/request' require 'rack/auth/digest/params' @@ -21,7 +23,7 @@ module Rack attr_writer :passwords_hashed - def initialize(app, realm=nil, opaque=nil, &authenticator) + def initialize(app, realm = nil, opaque = nil, &authenticator) @passwords_hashed = nil if opaque.nil? and realm.respond_to? :values_at realm, opaque, @passwords_hashed = realm.values_at :realm, :opaque, :passwords_hashed @@ -47,7 +49,7 @@ module Rack if valid?(auth) if auth.nonce.stale? - return unauthorized(challenge(:stale => true)) + return unauthorized(challenge(stale: true)) else env['REMOTE_USER'] = auth.username @@ -61,7 +63,7 @@ module Rack private - QOP = 'auth'.freeze + QOP = 'auth' def params(hash = {}) Params.new do |params| @@ -106,21 +108,21 @@ module Rack alias :H :md5 def KD(secret, data) - H([secret, data] * ':') + H "#{secret}:#{data}" end def A1(auth, password) - [ auth.username, auth.realm, password ] * ':' + "#{auth.username}:#{auth.realm}:#{password}" end def A2(auth) - [ auth.method, auth.uri ] * ':' + "#{auth.method}:#{auth.uri}" end def digest(auth, password) password_hash = passwords_hashed? ? password : H(A1(auth, password)) - KD(password_hash, [ auth.nonce, auth.nc, auth.cnonce, QOP, H(A2(auth)) ] * ':') + KD password_hash, "#{auth.nonce}:#{auth.nc}:#{auth.cnonce}:#{QOP}:#{H A2(auth)}" end end |