| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import logging |
| |
| from autotest_lib.client.common_lib import error |
| from autotest_lib.server import test |
| |
| class firmware_Cr50ShortECC(test.test): |
| """A test that verifies cr50 can handle short ECC keys.""" |
| |
| version = 1 |
| CMD_TRUNKS_CLIENT = 'trunks_client %s' |
| CMD_HELP = '--help' |
| CMD_SHORT_ECC_TEST = '--key_test_short_ecc' |
| KEY_BLOB = '/tmp/test.keyblob' |
| CMD_KEY_CREATE = '--key_create --ecc --usage=all --key_blob=' + KEY_BLOB |
| CMD_KEY_LOAD = '--key_load --key_blob=' + KEY_BLOB |
| |
| def run_trunks_client_cmd(self, cmd): |
| """Run a trunks_client command on the DUT.""" |
| trunks_client_cmd = self.CMD_TRUNKS_CLIENT % cmd |
| logging.info('Running %r', trunks_client_cmd) |
| result = self.client.run(trunks_client_cmd).stdout |
| logging.info('stdout: %s', result) |
| return result |
| |
| def run_once(self, host=None): |
| """Verify cr50 can handle short ECC keys.""" |
| self.client = host |
| |
| if (self.CMD_SHORT_ECC_TEST not in |
| self.run_trunks_client_cmd(self.CMD_HELP)): |
| raise error.TestNAError('OS trunks_client does not support %r' % |
| self.CMD_SHORT_ECC_TEST) |
| |
| self.run_trunks_client_cmd(self.CMD_KEY_CREATE) |
| |
| load_result = self.run_trunks_client_cmd(self.CMD_KEY_LOAD) |
| handle = load_result.split('handle:')[-1].strip() |
| |
| short_ecc_test_cmd = self.CMD_SHORT_ECC_TEST + ' --handle=' + handle |
| self.run_trunks_client_cmd(short_ecc_test_cmd) |