blob: 5a01067db279965b8ece3963e30f349f721e1323 [file] [log] [blame]
#
# Copyright 2018-2020 NXP
# SPDX-License-Identifier: Apache-2.0
#
#
"""License text"""
import os
import logging
import pickle
from . import util
from . import sss_api as apis
log = logging.getLogger(__name__)
def do_open_session(subsystem, connection_method, port_name, host_session=False,
auth_type=apis.kSE05x_AuthType_None, scpkey='', tunnel = False):
"""
Stores session open parameter in pkl file format
:param subsystem: SE050, A71CH, A71CL, MBEDTLS, OPENSSL
:param connection_method: vcom, t1oi2c, sci2c, jrcpv1, jrcpv2, pcsc
:param port_name: connection data. eg: COM6, 192.168.1.1:8050, None
:param host_session: session is host session or not
:param auth_type: authentication type for session open. eg: None, userid, aeskey,
eckey, platformscp
:param scpkey: scpkey file path for PlatforSCP session
:return: None
"""
session_params = {
'pkl_v_major': 1,
'pkl_v_minor': 0,
'subsystem': subsystem,
'connection_method': connection_method,
'port_name': port_name,
'auth_type': auth_type,
'scpkey': scpkey,
'tunnel':tunnel}
# Keep Host session parameters separate to support parallel session with se050
if host_session:
if not os.path.isfile(util.get_host_session_pkl_path()):
pkl_session = open(util.get_host_session_pkl_path(), 'wb+')
pickle.dump(session_params, pkl_session)
pkl_session.close()
else:
log.warning('Session already open, close current session first')
else:
if not os.path.isfile(util.get_session_pkl_path()):
pkl_session = open(util.get_session_pkl_path(), 'wb+')
pickle.dump(session_params, pkl_session)
pkl_session.close()
else:
log.warning('Session already open, close current session first')
def do_close_session():
"""
Erase session open parameters
:return: None
"""
pkl = util.get_session_pkl_path()
host_pkl = util.get_host_session_pkl_path()
if os.path.isfile(host_pkl):
os.remove(host_pkl)
if os.path.isfile(pkl):
os.remove(pkl)
else:
log.warning('No open session. Nothing to do')