Files
chipsec-chipsec/chipsec/utilcmd/module_id_cmd.py
William Leara 79f81bbb7e fix for flake8 rules related to whitespace
This commit fixes whitespace errors from checkers W291,W292,W293,W391.  They were found by running "flake8 ." from the root directory.  These are errors defined by "pycodestyle", and have no functional impact to the source.  This is simply fixing whitespace as defined by CHIPSEC's .flake8 configuration.

background:
https://www.flake8rules.com/rules/W291.html
https://www.flake8rules.com/rules/W292.html
https://www.flake8rules.com/rules/W293.html
https://www.flake8rules.com/rules/W391.html

tool versions: flake8 v7.3.0, python v3.13.11

Signed-off-by: William Leara <william.leara@dell.com>
2026-03-10 14:20:23 -07:00

75 lines
2.7 KiB
Python

# CHIPSEC: Platform Security Assessment Framework
# Copyright (c) 2024, Intel Corporation
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; Version 2.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# Contact information:
# chipsec@intel.com
#
"""
Generate a module ID using hashlib from the module's file name (no file extension).
Hash is truncated to 28 bits. For module names use full path as seen in example below.
Usage:
``chipsec_util id name <module name>``
``chipsec_util id hash <module hash>``
Examples:
>>> chipsec_util.py id name chipsec.modules.common.remap
>>> chipsec_util.py id hash 0x67eb58d
"""
from chipsec.library.returncode import get_module_ids_dictionary, generate_hash_id
from chipsec.command import BaseCommand, toLoad
from argparse import ArgumentParser
class ModuleIdCommand(BaseCommand):
def requirements(self) -> toLoad:
return toLoad.Nil
def parse_arguments(self) -> None:
parser = ArgumentParser(prog='chipsec_util id', usage=__doc__)
subparsers = parser.add_subparsers()
parser_read = subparsers.add_parser('name')
parser_read.add_argument('module_name', type=str, help='Module name')
parser_read.set_defaults(func=self.get_id_from_name)
parser_write = subparsers.add_parser('hash')
parser_write.add_argument('module_id', type=str, help='Module ID')
parser_write.set_defaults(func=self.get_name_from_id)
parser.parse_args(self.argv, namespace=self)
def get_id_from_name(self) -> None:
module_ids = get_module_ids_dictionary()
if self.module_name in module_ids:
module_id = module_ids[self.module_name]
else:
module_id = generate_hash_id(self.module_name)
self.logger.log(f'Module ID is: {hex(module_id)}\n')
def get_name_from_id(self) -> None:
module_ids = get_module_ids_dictionary()
try:
module_name = list(module_ids.keys())[list(module_ids.values()).index(int(self.module_id, 16))]
self.logger.log(f'Module name is: {module_name}\n')
except IndexError:
self.logger.log(f'Could not find {self.module_id}\n')
commands = {'id': ModuleIdCommand}