blob: 314dcb024bda80f3b665a8e2cb06986b4b60ac9e [file] [log] [blame]
#
# Copyright 2019,2020 NXP
# SPDX-License-Identifier: Apache-2.0
#
#
"""License text"""
import sys
import func_timeout
from sss.a71ch import A71CH
import sss.sss_api as apis
from .cli import a71ch, pass_context, session_open, session_close, \
log_traceback, TIME_OUT
@a71ch.command('reset', short_help='Debug Reset A71CH')
@pass_context
def reset(cli_ctx):
""" Resets the A71CH Secure Module to the initial state."""
try:
session_open(cli_ctx)
a71ch_obj = A71CH(cli_ctx.session)
func_timeout.func_timeout(TIME_OUT, a71ch_obj.debug_reset, None)
status = apis.kStatus_SSS_Success
except func_timeout.FunctionTimedOut as timeout_exc:
log_traceback(cli_ctx, timeout_exc.getMsg())
status = apis.kStatus_SSS_Fail
except Exception as exc: # pylint: disable=broad-except
log_traceback(cli_ctx, exc)
status = apis.kStatus_SSS_Fail
session_status = session_close(cli_ctx)
if status == apis.kStatus_SSS_Success and session_status == apis.kStatus_SSS_Success:
ret_value = 0
else:
ret_value = 1
sys.exit(ret_value)
@a71ch.command('uid', short_help='Get A71CH Unique ID')
@pass_context
def uid(cli_ctx):
""" Get uid from the A71CH Secure Module."""
try:
session_open(cli_ctx)
a71ch_obj = A71CH(cli_ctx.session)
unique_id = func_timeout.func_timeout(TIME_OUT, a71ch_obj.get_unique_id, None)
cli_ctx.log("Unique ID: %s" % (unique_id,))
status = apis.kStatus_SSS_Success
except func_timeout.FunctionTimedOut as timeout_exc:
log_traceback(cli_ctx, timeout_exc.getMsg())
status = apis.kStatus_SSS_Fail
except Exception as exc: # pylint: disable=broad-except
log_traceback(cli_ctx, exc)
status = apis.kStatus_SSS_Fail
session_status = session_close(cli_ctx)
if status == apis.kStatus_SSS_Success and session_status == apis.kStatus_SSS_Success:
ret_value = 0
else:
ret_value = 1
sys.exit(ret_value)