class Rack::Auth::Digest::Nonce

Rack::Auth::Digest::Nonce is the default nonce generator for the Rack::Auth::Digest::MD5 authentication handler.

private_key needs to set to a constant string.

time_limit can be optionally set to an integer (number of seconds), to limit the validity of the generated nonces.

Attributes

private_key[RW]
time_limit[RW]

Public Class Methods

new(timestamp = Time.now, given_digest = nil) click to toggle source
# File lib/rack/auth/digest/nonce.rb, line 24
def initialize(timestamp = Time.now, given_digest = nil)
  @timestamp, @given_digest = timestamp.to_i, given_digest
end
parse(string) click to toggle source
# File lib/rack/auth/digest/nonce.rb, line 20
def self.parse(string)
  new(*string.unpack("m*").first.split(' ', 2))
end

Public Instance Methods

digest() click to toggle source
# File lib/rack/auth/digest/nonce.rb, line 32
def digest
  ::Digest::MD5.hexdigest([ @timestamp, self.class.private_key ] * ':')
end
fresh?() click to toggle source
# File lib/rack/auth/digest/nonce.rb, line 44
def fresh?
  !stale?
end
stale?() click to toggle source
# File lib/rack/auth/digest/nonce.rb, line 40
def stale?
  !self.class.time_limit.nil? && (@timestamp - Time.now.to_i) < self.class.time_limit
end
to_s() click to toggle source
# File lib/rack/auth/digest/nonce.rb, line 28
def to_s
  [([ @timestamp, digest ] * ' ')].pack("m*").strip
end
valid?() click to toggle source
# File lib/rack/auth/digest/nonce.rb, line 36
def valid?
  digest == @given_digest
end