Files
chipsec-chipsec/chipsec/library/display.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

105 lines
3.8 KiB
Python

# CHIPSEC: Platform Security Assessment Framework
# Copyright (c) 2023, 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
#
"""
Display functions
"""
import platform
import sys
from typing import Tuple, Sequence
from chipsec.chipset import Chipset
from chipsec.library.gil import gil_status
from chipsec.library.logger import logger
def chipsec_banner(arguments: Sequence[str], version: str, message: str, custom_str: str = '') -> str:
"""Creates the CHIPSEC banner string"""
args = ' '.join(arguments)
if custom_str:
message += f'\n{custom_str}'
banner = f'''
################################################################
## ##
## CHIPSEC: Platform Hardware Security Assessment Framework ##
## ##
################################################################
[CHIPSEC] Version : {version}
[CHIPSEC] Arguments: {args}
{message}'''
return banner
def print_banner(arguments: Sequence[str], version: str, message: str, custom_str: str = '') -> None:
logger().log(chipsec_banner(arguments, version, message, custom_str))
def chipsec_banner_properties(cs: Chipset, os_version: Tuple[str, str, str, str]) -> str:
"""Creates the CHIPSEC properties banner string"""
(system, release, version, machine) = os_version
is_python_64 = True if (sys.maxsize > 2**32) else False
python_version = platform.python_version()
python_arch = '64-bit' if is_python_64 else '32-bit'
(helper_name, driver_path) = cs.helper.get_info()
include_pch_str = cs.Cfg.is_pch_req() or (cs.Cfg.is_pch_req() is None)
banner_prop = f'''
[CHIPSEC] OS : {system} {release} {version} {machine}
[CHIPSEC] Python : {python_version} ({python_arch}) - {gil_status()} GIL
[CHIPSEC] Helper : {helper_name} {driver_path}
[CHIPSEC] Mfg ID : {cs.Cfg.mfgid}
[CHIPSEC] Platform: {cs.Cfg.longname}
[CHIPSEC] CPUID: {cs.Cfg.cpuid:05X}
[CHIPSEC] VID: {cs.Cfg.vid:04X}
[CHIPSEC] DID: {cs.Cfg.did:04X}
[CHIPSEC] RID: {cs.Cfg.rid:02X}'''
if include_pch_str:
banner_prop += f'''
[CHIPSEC] PCH : {cs.Cfg.pch_longname}
[CHIPSEC] VID: {cs.Cfg.pch_vid:04X}
[CHIPSEC] DID: {cs.Cfg.pch_did:04X}
[CHIPSEC] RID: {cs.Cfg.pch_rid:02X}
'''
if not is_python_64 and machine.endswith('64'):
banner_prop += 'Python architecture (32-bit) is different from OS architecture (64-bit)'
return banner_prop
def print_banner_properties(cs: Chipset, os_version: Tuple[str, str, str, str]) -> None:
if not cs.load_config:
logger().log_warning('Not loading configurations. Platform will remain unknown.')
logger().log(chipsec_banner_properties(cs, os_version))
def make_dict_hex(int_dict: dict) -> dict:
hex_dict = {}
for d in int_dict:
if isinstance(int_dict[d], list):
hex_dict[d] = [hex(item) if isinstance(item, int) else item for item in int_dict[d]]
elif(isinstance(int_dict[d], int)):
hex_dict[d] = hex(int_dict[d])
else:
hex_dict[d] = int_dict[d]
return hex_dict