Index: net/tools/testserver/chromiumsync.py |
diff --git a/net/tools/testserver/chromiumsync.py b/net/tools/testserver/chromiumsync.py |
index d789bcbbc653e6a1d46f8452d914e493f27f926c..24325f5efe3f9c5c7c0d055e0118e12fc6503bed 100644 |
--- a/net/tools/testserver/chromiumsync.py |
+++ b/net/tools/testserver/chromiumsync.py |
@@ -13,6 +13,7 @@ import copy |
import operator |
import pickle |
import random |
+import string |
import sys |
import threading |
import time |
@@ -97,6 +98,9 @@ ROOT_ID = '0' |
# Jan 1 1970, 00:00:00, non-dst. |
UNIX_TIME_EPOCH = (1970, 1, 1, 0, 0, 0, 3, 1, 0) |
+# The number of characters in the server-generated encryption key. |
+KEYSTORE_KEY_LENGTH = 16 |
+ |
class Error(Exception): |
"""Error class for this module.""" |
@@ -468,6 +472,9 @@ class SyncDataModel(object): |
self.induced_error_frequency = 0 |
self.sync_count_before_errors = 0 |
+ self._key = ''.join(random.choice(string.ascii_uppercase + string.digits) |
+ for x in xrange(KEYSTORE_KEY_LENGTH)) |
+ |
def _SaveEntry(self, entry): |
"""Insert or update an entry in the change log, and give it a new version. |
@@ -664,6 +671,11 @@ class SyncDataModel(object): |
# batch, even if that item was filtered out. |
return (batch[-1].version, filtered, len(new_changes) - len(batch)) |
+ def GetKey(self): |
+ """Returns the encryption key for this account.""" |
+ print "Returning encryption key: %s" % self._key |
+ return self._key |
+ |
def _CopyOverImmutableFields(self, entry): |
"""Preserve immutable fields by copying pre-commit state. |
@@ -1043,7 +1055,7 @@ class TestServer(object): |
def HandleSetInducedError(self, path): |
query = urlparse.urlparse(path)[4] |
self.account_lock.acquire() |
- code = 200; |
+ code = 200 |
response = 'Success' |
error = sync_pb2.ClientToServerResponse.Error() |
try: |
@@ -1132,8 +1144,8 @@ class TestServer(object): |
response.error_code = sync_enums_pb2.SyncEnums.SUCCESS |
self.CheckStoreBirthday(request) |
response.store_birthday = self.account.store_birthday |
- self.CheckTransientError(); |
- self.CheckSendError(); |
+ self.CheckTransientError() |
+ self.CheckSendError() |
print_context('->') |
@@ -1262,3 +1274,6 @@ class TestServer(object): |
reply = update_response.entries.add() |
reply.CopyFrom(entry) |
update_sieve.SaveProgress(new_timestamp, update_response) |
+ |
+ if update_request.need_encryption_key: |
+ update_response.encryption_key = self.account.GetKey() |