Class: EncryptedCookieStore::EncryptedCookieStore::MessageVerifier

Inherits:
Object
  • Object
show all
Defined in:
lib/encrypted_cookie_store/encrypted_cookie_store.rb

Overview

Like ActiveSupport::MessageVerifier, but does not base64-encode data.

Instance Method Summary collapse

Constructor Details

#initialize(secret, digest = 'SHA1') ⇒ MessageVerifier

Returns a new instance of MessageVerifier.



28
29
30
31
# File 'lib/encrypted_cookie_store/encrypted_cookie_store.rb', line 28

def initialize(secret, digest = 'SHA1')
  @secret = secret
  @digest = digest
end

Instance Method Details

#generate(value) ⇒ Object



42
43
44
45
46
# File 'lib/encrypted_cookie_store/encrypted_cookie_store.rb', line 42

def generate(value)
  data   = Marshal.dump(value)
  digest = generate_digest(data)
  "#{digest}--#{data}"
end

#verify(signed_message) ⇒ Object



33
34
35
36
37
38
39
40
# File 'lib/encrypted_cookie_store/encrypted_cookie_store.rb', line 33

def verify(signed_message)
  digest, data = signed_message.split("--", 2)
  if digest != generate_digest(data)
    raise ActiveSupport::MessageVerifier::InvalidSignature
  else
    Marshal.load(data)
  end
end