| # Copyright (c) 2012 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 logging |
| import os |
| import re |
| import shutil |
| |
| from autotest_lib.client.bin import test, utils |
| from autotest_lib.client.common_lib import error |
| from autotest_lib.client.cros import cryptohome |
| |
| class platform_CryptohomeMigrateKey(test.test): |
| version = 1 |
| |
| def good(self): |
| user = utils.random_username() |
| old_pass = 'old' |
| new_pass = 'new' |
| |
| if not self.proxy.mount(user, old_pass, create=True): |
| raise error.TestFail('Could not create good user.') |
| if not self.proxy.unmount(user): |
| raise error.TestFail('Could not unmount good user.') |
| if not self.proxy.migrate(user, old_pass, new_pass): |
| raise error.TestFail('Could not migrate good user.') |
| if self.proxy.mount(user, old_pass): |
| raise error.TestFail('Old password still works.') |
| if not self.proxy.mount(user, new_pass): |
| raise error.TestFail('Could not mount good user.') |
| if not self.proxy.unmount(user): |
| raise error.TestFail('Could not unmount good user.') |
| self.proxy.remove(user) |
| |
| def bad_password(self): |
| user = utils.random_username() |
| old_pass = 'old' |
| new_pass = 'new' |
| if not self.proxy.mount(user, old_pass, create=True): |
| raise error.TestFail('Could not create bad user.') |
| if not self.proxy.unmount(user): |
| raise error.TestFail('Could not unmount bad user.') |
| if self.proxy.migrate(user, 'bad', new_pass): |
| raise error.TestFail('Migrated with bad password.') |
| self.proxy.remove(user) |
| |
| def nonexistent_user(self): |
| user = utils.random_username() |
| old_pass = 'old' |
| new_pass = 'new' |
| if self.proxy.migrate(user, old_pass, new_pass): |
| raise error.TestFail('Migration nonexistent user.') |
| |
| def run_once(self): |
| self.proxy = cryptohome.CryptohomeProxy() |
| self.good() |
| self.bad_password() |
| self.nonexistent_user() |