mirror of
https://github.com/espressif/esptool.git
synced 2025-10-18 09:12:27 +08:00
62 lines
2.0 KiB
Python
62 lines
2.0 KiB
Python
# SPDX-FileCopyrightText: 2023-2025 Espressif Systems (Shanghai) CO LTD
|
|
#
|
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
from esptool.logger import log
|
|
|
|
from pkcs11.exceptions import (
|
|
AnotherUserAlreadyLoggedIn,
|
|
ArgumentsBad,
|
|
DeviceRemoved,
|
|
DomainParamsInvalid,
|
|
FunctionFailed,
|
|
MechanismInvalid,
|
|
NoSuchKey,
|
|
NoSuchToken,
|
|
OperationNotInitialized,
|
|
SessionClosed,
|
|
)
|
|
|
|
|
|
try:
|
|
# AlreadyInitialized is not available since python-pkcs11 9.0, as multiple
|
|
# initializations are now supported.
|
|
from pkcs11.exceptions import AlreadyInitialized
|
|
except ImportError:
|
|
AlreadyInitialized = None
|
|
|
|
|
|
def handle_exceptions(e, info=""):
|
|
exception_type = e.__class__
|
|
if exception_type == MechanismInvalid:
|
|
log.error(f"The External HSM does not support the given mechanism: {info}")
|
|
elif exception_type == FunctionFailed:
|
|
log.error(
|
|
"Please ensure proper configuration, privileges and environment variables."
|
|
)
|
|
elif exception_type == AlreadyInitialized:
|
|
log.error("pkcs11 is already initialized with another library.")
|
|
elif exception_type == AnotherUserAlreadyLoggedIn:
|
|
log.error("Another User has been already logged in.")
|
|
elif exception_type == ArgumentsBad:
|
|
log.error("Please check the arguments supplied to the function.")
|
|
elif exception_type == DomainParamsInvalid:
|
|
log.error(
|
|
"Invalid or unsupported domain parameters were supplied to the function."
|
|
)
|
|
elif exception_type == DeviceRemoved:
|
|
log.error(
|
|
"The token has been removed from its slot during "
|
|
"the execution of the function."
|
|
)
|
|
elif exception_type == NoSuchToken:
|
|
log.error("No such token found.")
|
|
elif exception_type == NoSuchKey:
|
|
log.error("No such key found.")
|
|
elif exception_type == OperationNotInitialized:
|
|
log.error("Operation not initialized.")
|
|
elif exception_type == SessionClosed:
|
|
log.error("Session already closed.")
|
|
else:
|
|
log.error(f"{e.__class__}: {info}")
|