#
# Copyright 2018-2020 NXP
# SPDX-License-Identifier: Apache-2.0
#
#

"""License text"""

from . import sss_api as apis
from . import authkey

STATUS2STR = {
    apis.kStatus_SSS_Success: "SUCCESS",
    apis.kStatus_SSS_Fail: "FAILED",
    apis.kStatus_SSS_InvalidArgument: "Invalid Argument",
    apis.kStatus_SSS_ResourceBusy: "Resource Busy",
}

SUBSYSTEM_TYPE = {
    'mbedtls': apis.kType_SSS_mbedTLS,
    'a71ch': apis.kType_SSS_SE_A71CH,
    'se05x': apis.kType_SSS_SE_SE05x,
    'se050': apis.kType_SSS_SE_SE05x,
    'openssl': apis.kType_SSS_OpenSSL,
}

CONNECTION_TYPE = {
    'none': apis.kType_SE_Conn_Type_NONE,
    'sci2c': apis.kType_SE_Conn_Type_SCII2C,
    'vcom': apis.kType_SE_Conn_Type_VCOM,
    't1oi2c': apis.kType_SE_Conn_Type_T1oI2C,
    'jrcpv1': apis.kType_SE_Conn_Type_JRCP_V1,
    'jrcpv2': apis.kType_SE_Conn_Type_JRCP_V2,
    'pcsc': apis.kType_SE_Conn_Type_PCSC,
    # 'last': apis.kType_SE_Conn_Type_LAST,
}

ECC_CURVE_TYPE = {
    'NIST_P192': apis.kSE05x_ECCurve_NIST_P192,
    'NIST_P224': apis.kSE05x_ECCurve_NIST_P224,
    'NIST_P256': apis.kSE05x_ECCurve_NIST_P256,
    'NIST_P384': apis.kSE05x_ECCurve_NIST_P384,
    'NIST_P521': apis.kSE05x_ECCurve_NIST_P521,
    'Brainpool160': apis.kSE05x_ECCurve_Brainpool160,
    'Brainpool192': apis.kSE05x_ECCurve_Brainpool192,
    'Brainpool224': apis.kSE05x_ECCurve_Brainpool224,
    'Brainpool256': apis.kSE05x_ECCurve_Brainpool256,
    'Brainpool320': apis.kSE05x_ECCurve_Brainpool320,
    'Brainpool384': apis.kSE05x_ECCurve_Brainpool384,
    'Brainpool512': apis.kSE05x_ECCurve_Brainpool512,
    'Secp160k1': apis.kSE05x_ECCurve_Secp160k1,
    'Secp192k1': apis.kSE05x_ECCurve_Secp192k1,
    'Secp224k1': apis.kSE05x_ECCurve_Secp224k1,
    'Secp256k1': apis.kSE05x_ECCurve_Secp256k1,
    'ED_25519': apis.kSE05x_ECCurve_RESERVED_ID_ECC_ED_25519,
    'MONT_DH_25519': apis.kSE05x_ECCurve_RESERVED_ID_ECC_MONT_DH_25519,
    'MONT_DH_448': apis.kSE05x_ECCurve_RESERVED_ID_ECC_MONT_DH_448,

}

HASH = {
    'SHA1': apis.kAlgorithm_SSS_SHA1,
    'SHA224': apis.kAlgorithm_SSS_SHA224,
    'SHA256': apis.kAlgorithm_SSS_SHA256,
    'SHA384': apis.kAlgorithm_SSS_SHA384,
    'SHA512': apis.kAlgorithm_SSS_SHA512,
    'RSASSA_PKCS1_V1_5_SHA1': apis.kAlgorithm_SSS_RSASSA_PKCS1_V1_5_SHA1,
    'RSASSA_PKCS1_V1_5_SHA224': apis.kAlgorithm_SSS_RSASSA_PKCS1_V1_5_SHA224,
    'RSASSA_PKCS1_V1_5_SHA256': apis.kAlgorithm_SSS_RSASSA_PKCS1_V1_5_SHA256,
    'RSASSA_PKCS1_V1_5_SHA384': apis.kAlgorithm_SSS_RSASSA_PKCS1_V1_5_SHA384,
    'RSASSA_PKCS1_V1_5_SHA512': apis.kAlgorithm_SSS_RSASSA_PKCS1_V1_5_SHA512,
    'RSASSA_PKCS1_PSS_MGF1_SHA1': apis.kAlgorithm_SSS_RSASSA_PKCS1_PSS_MGF1_SHA1,
    'RSASSA_PKCS1_PSS_MGF1_SHA224': apis.kAlgorithm_SSS_RSASSA_PKCS1_PSS_MGF1_SHA224,
    'RSASSA_PKCS1_PSS_MGF1_SHA256': apis.kAlgorithm_SSS_RSASSA_PKCS1_PSS_MGF1_SHA256,
    'RSASSA_PKCS1_PSS_MGF1_SHA384': apis.kAlgorithm_SSS_RSASSA_PKCS1_PSS_MGF1_SHA384,
    'RSASSA_PKCS1_PSS_MGF1_SHA512': apis.kAlgorithm_SSS_RSASSA_PKCS1_PSS_MGF1_SHA512,
}


AUTH_TYPE_MAP = {
    "None": [apis.kSE05x_AuthType_None, 0, False],
    "PlatformSCP": [apis.kSE05x_AuthType_SCP03, 0, False],
    "UserID": [apis.kSE05x_AuthType_UserID, authkey.SE050_AUTHID_USER_ID, False],
    "ECKey": [apis.kSE05x_AuthType_ECKey, authkey.SE050_AUTHID_ECKEY, False],
    "AESKey": [apis.kSE05x_AuthType_AESKey, authkey.SE050_AUTHID_AESKEY, False],
    "UserID_PlatformSCP": [apis.kSE05x_AuthType_UserID, authkey.SE050_AUTHID_USER_ID, True],
    "ECKey_PlatformSCP": [apis.kSE05x_AuthType_ECKey, authkey.SE050_AUTHID_ECKEY, True],
    "AESKey_PlatformSCP": [apis.kSE05x_AuthType_AESKey, authkey.SE050_AUTHID_AESKEY, True],
}


CRYPT_ALGO = {
    'oaep': apis.kAlgorithm_SSS_RSAES_PKCS1_OAEP_SHA1,
    'rsaes': apis.kAlgorithm_SSS_RSAES_PKCS1_V1_5,
}


class SSSException(Exception):
    """
    SSS Exception
    """
    pass  # pylint: disable=unnecessary-pass


class SSSUsageError(SSSException):
    """
    SSS Usage exception
    """
    pass  # pylint: disable=unnecessary-pass
