Home | History | Annotate | Download | only in platform_CryptohomeMigrateKey
      1 # Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
      2 # Use of this source code is governed by a BSD-style license that can be
      3 # found in the LICENSE file.
      4 
      5 from autotest_lib.client.bin import test, utils
      6 from autotest_lib.client.common_lib import error
      7 from autotest_lib.client.cros import cryptohome
      8 
      9 class platform_CryptohomeMigrateKey(test.test):
     10     version = 1
     11 
     12     def good(self):
     13         user = utils.random_username()
     14         old_pass = 'old'
     15         new_pass = 'new'
     16 
     17         if not self.proxy.mount(user, old_pass, create=True):
     18             raise error.TestFail('Could not create good user.')
     19         if not self.proxy.unmount(user):
     20             raise error.TestFail('Could not unmount good user.')
     21         if not self.proxy.migrate(user, old_pass, new_pass):
     22             raise error.TestFail('Could not migrate good user.')
     23         if self.proxy.mount(user, old_pass):
     24             raise error.TestFail('Old password still works.')
     25         if not self.proxy.mount(user, new_pass):
     26             raise error.TestFail('Could not mount good user.')
     27         if not self.proxy.unmount(user):
     28             raise error.TestFail('Could not unmount good user.')
     29         self.proxy.remove(user)
     30 
     31     def bad_password(self):
     32         user = utils.random_username()
     33         old_pass = 'old'
     34         new_pass = 'new'
     35         if not self.proxy.mount(user, old_pass, create=True):
     36             raise error.TestFail('Could not create bad user.')
     37         if not self.proxy.unmount(user):
     38             raise error.TestFail('Could not unmount bad user.')
     39         if self.proxy.migrate(user, 'bad', new_pass):
     40             raise error.TestFail('Migrated with bad password.')
     41         self.proxy.remove(user)
     42 
     43     def nonexistent_user(self):
     44         user = utils.random_username()
     45         old_pass = 'old'
     46         new_pass = 'new'
     47         if self.proxy.migrate(user, old_pass, new_pass):
     48             raise error.TestFail('Migration nonexistent user.')
     49 
     50     def run_once(self):
     51         self.proxy = cryptohome.CryptohomeProxy()
     52         self.good()
     53         self.bad_password()
     54         self.nonexistent_user()
     55