Encrypt all stored cookies on selected operating systems.
commit582fce2bafb46d8114ed412675171178052e343c
authorbcwhite@chromium.org <bcwhite@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>
Wed, 13 Nov 2013 18:40:56 +0000 (13 18:40 +0000)
committerbcwhite@chromium.org <bcwhite@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>
Wed, 13 Nov 2013 18:40:56 +0000 (13 18:40 +0000)
tree205708ee4ac532c3e685f8a8dd5ec8c8b87913af
parentf431d3cfe81a97b45803d6258f9a66ab3a7186dc
Encrypt all stored cookies on selected operating systems.

As part of the goal of protecting private user information, this encrypts the cookie values on operating systems with user-specific crypto APIs and that do not otherwise protect this data.

Performance tests indicate a penalty of about 1ms per cookie  (regardless of size) on a Mac and 0.1ms to 0.7ms (depending on the size) under Windows.  This will be higher on older hardware but still insignificant.

Encrypted data is binary (with an overhead of 128 bytes on Windows) and binary data must be stored in a BLOB so only one of two fields ("value" or "encrypted_value") will have data with the other being empty.  Both values, however, need to be read & written when accessing a cookie because they are marked "non null").

BUG=313323

Review URL: https://codereview.chromium.org/24734007

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@234855 0039d316-1c4b-4281-b951-d872f2087c98
android_webview/browser/aw_browser_context.cc
chrome/browser/profiles/profile_impl_io_data.cc
chrome/browser/safe_browsing/safe_browsing_service.cc
content/browser/net/sqlite_persistent_cookie_store.cc
content/browser/net/sqlite_persistent_cookie_store.h
content/browser/net/sqlite_persistent_cookie_store_perftest.cc
content/browser/net/sqlite_persistent_cookie_store_unittest.cc
content/public/browser/cookie_crypto_delegate.h [new file with mode: 0644]
content/public/browser/cookie_store_factory.h