class ActionDispatch::Cookies::EncryptedCookieJar

:nodoc:

def [](name)

def [](name)
  if encrypted_message = @parent_jar[name]
    decrypt_and_verify(encrypted_message)
  end
end

def []=(name, options)

def []=(name, options)
  if options.is_a?(Hash)
    options.symbolize_keys!
  else
    options = { :value => options }
  end
  options[:value] = @encryptor.encrypt_and_sign(options[:value])
  raise CookieOverflow if options[:value].size > MAX_COOKIE_SIZE
  @parent_jar[name] = options
end

def decrypt_and_verify(encrypted_message)

def decrypt_and_verify(encrypted_message)
  @encryptor.decrypt_and_verify(encrypted_message)
rescue ActiveSupport::MessageVerifier::InvalidSignature, ActiveSupport::MessageEncryptor::InvalidMessage
  nil
end

def initialize(parent_jar, key_generator, options = {})

def initialize(parent_jar, key_generator, options = {})
  if ActiveSupport::LegacyKeyGenerator === key_generator
    raise "You didn't set config.secret_key_base, which is required for this cookie jar. " +
      "Read the upgrade documentation to learn more about this new config option."
  end
  @parent_jar = parent_jar
  @options = options
  secret = key_generator.generate_key(@options[:encrypted_cookie_salt])
  sign_secret = key_generator.generate_key(@options[:encrypted_signed_cookie_salt])
  @encryptor = ActiveSupport::MessageEncryptor.new(secret, sign_secret)
end