Chromium Code Reviews| Index: client/site_tests/login_RemoteOwnership/login_RemoteOwnership.py |
| diff --git a/client/site_tests/login_RemoteOwnership/login_RemoteOwnership.py b/client/site_tests/login_RemoteOwnership/login_RemoteOwnership.py |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..10027ce98a7c4bb47c5211ddbf06e257eb8ee076 |
| --- /dev/null |
| +++ b/client/site_tests/login_RemoteOwnership/login_RemoteOwnership.py |
| @@ -0,0 +1,62 @@ |
| +# Copyright (c) 2011 The Chromium OS Authors. All rights reserved. |
| +# Use of this source code is governed by a BSD-style license that can be |
| +# found in the LICENSE file. |
| + |
| +import dbus |
| +import dbus.glib |
| +import gobject |
| +import logging |
| +import random |
| +import string |
| +import os |
| + |
| +from autotest_lib.client.bin import test, utils |
| +from autotest_lib.client.common_lib import error |
| +from autotest_lib.client.cros import cryptohome, cros_ownership_test, ownership |
| + |
| + |
| +class login_RemoteOwnership(cros_ownership_test.OwnershipTest): |
| + version = 1 |
| + |
| + _poldata = 'hooberbloob' |
| + |
| + def setup(self): |
| + os.chdir(self.srcdir) |
| + utils.make('OUT_DIR=.') |
| + |
| + |
| + def run_once(self): |
| + sm = self.connect_to_session_manager() |
| + |
| + # Initial policy setup. |
| + (priv, pub) = ownership.pairgen_as_data() |
| + self.push_policy(self.generate_policy(priv, pub, self._poldata), sm) |
| + |
| + # Force re-key the device |
| + (priv, pub) = ownership.pairgen_as_data() |
| + self.push_policy(self.generate_policy(priv, pub, self._poldata), sm) |
| + |
| + # Rotate key gracefully. |
| + username = ''.join(random.sample(string.ascii_uppercase,6)) + "@foo.com" |
| + password = ''.join(random.sample(string.ascii_uppercase,6)) |
| + cryptohome.remove_vault(username) |
| + cryptohome.mount_vault(username, password, create=True) |
| + |
| + (new_priv, new_pub) = ownership.pairgen_as_data() |
| + |
| + if not sm.StartSession(username, ''): |
| + raise error.TestFail('Could not start session for random user') |
| + |
| + self.push_policy(self.generate_policy(key=new_priv, |
| + pubkey=new_pub, |
| + policy=self._poldata, |
| + old_key=priv), |
| + sm) |
| + |
| + if not sm.StopSession(''): |
| + raise error.TestFail('Could not start session for random user') |
|
sosa
2011/04/06 21:19:52
s/start/stop?
Chris Masone
2011/04/06 21:28:19
Done.
|
| + |
| + |
| + def cleanup(self): |
| + cryptohome.unmount_vault() |
| + super(login_RemoteOwnership, self).cleanup() |