blob: b00bdd66d88bcecce77db1ad6c3cc87c6246424a [file] [log] [blame]
#
# Copyright 2018-2020 NXP
# SPDX-License-Identifier: Apache-2.0
#
# #############################################################
# This file is generated using a script
# #############################################################
#
### Applet : The Secure Element Applet
#
# You can compile host library for different Applets listed below.
# Please note, some of these Applets may be for NXP Internal use only.
doApplet_None_ON="-DApplet=None" #Compiling without any Applet Support
doApplet_A71CH_ON="-DApplet=A71CH" #A71CH (ECC)
doApplet_A71CL_ON="-DApplet=A71CL" #A71CL (RSA)
doApplet_A71CH_SIM_ON="-DApplet=A71CH_SIM" #Similar to A71CH
doApplet_SE05X_A_ON="-DApplet=SE05X_A" #SE050 Type A (ECC)
doApplet_SE05X_B_ON="-DApplet=SE05X_B" #SE050 Type B (RSA)
doApplet_SE05X_C_ON="-DApplet=SE05X_C" #SE050 (Super set of A + B)
doApplet_SE05X_L_ON="-DApplet=SE05X_L" #SE050 (Similar to A71CL)
doApplet_LoopBack_ON="-DApplet=LoopBack" #NXP Internal testing Applet
### SE05X_Ver : SE05X Applet version.
#
# Selection of Applet version 03_XX enables SE050 features.
# Selection of Applet version 06_00 enables SE051 features.
#
doSE05X_Ver_03_XX_ON="-DSE05X_Ver=03_XX" #SE050
doSE05X_Ver_06_00_ON="-DSE05X_Ver=06_00" #SE051
### Host : Host where the software stack is running
#
# e.g. Windows, PC Linux, Embedded Linux, Kinetis like embedded platform
doHost_Darwin_ON="-DHost=Darwin" #OS X / Macintosh
doHost_PCLinux32_ON="-DHost=PCLinux32" #PC/Laptop Linux with 32bit libraries
doHost_PCLinux64_ON="-DHost=PCLinux64" #PC/Laptop Linux with 64bit libraries
doHost_PCWindows_ON="-DHost=PCWindows" #PC/Laptop Windows
doHost_Cygwin_ON="-DHost=Cygwin" #Using Cygwin
doHost_frdmk64f_ON="-DHost=frdmk64f" #Embedded Kinetis Freedom K64F
doHost_evkmimxrt1060_ON="-DHost=evkmimxrt1060" #Embedded Kinetis i.MX RT 1060
doHost_lpcxpresso55s_ON="-DHost=lpcxpresso55s" #Embedded LPCXpresso55s (No demarcation of secure/non-secure world)
doHost_lpcxpresso55s_ns_ON="-DHost=lpcxpresso55s_ns" #Non Secure world of LPCXpresso55s
doHost_lpcxpresso55s_s_ON="-DHost=lpcxpresso55s_s" #Secure world of LPCXpresso55s
doHost_iMXLinux_ON="-DHost=iMXLinux" #Embedded Linux on i.MX
doHost_Raspbian_ON="-DHost=Raspbian" #Embedded Linux on RaspBerry PI
doHost_Android_ON="-DHost=Android" #Android
doHost_Win10IoT_ON="-DHost=Win10IoT" #Windows 10 IoT Core
### SMCOM : Communication Interface
#
# How the host library communicates to the Secure Element.
# This may be directly over an I2C interface on embedded platform.
# Or sometimes over Remote protocol like JRCP_V1 / JRCP_V2 / VCOM from PC.
doSMCOM_None_ON="-DSMCOM=None" #Not using any Communication layer
doSMCOM_JRCP_V2_ON="-DSMCOM=JRCP_V2" #Socket Interface New Implementation
#Socket Interface Old Implementation.
# This is the interface used from Host PC when when we run jrcpv1_server
# from the linux PC.
doSMCOM_JRCP_V1_ON="-DSMCOM=JRCP_V1"
doSMCOM_VCOM_ON="-DSMCOM=VCOM" #Virtual COM Port
doSMCOM_SCI2C_ON="-DSMCOM=SCI2C" #Smart Card I2C for A71CH and A71CH
doSMCOM_T1oI2C_ON="-DSMCOM=T1oI2C" #T=1 over I2C for SE050
doSMCOM_T1oI2C_GP1_0_ON="-DSMCOM=T1oI2C_GP1_0" #GP Spec
doSMCOM_RC663_VCOM_ON="-DSMCOM=RC663_VCOM" #Via RC663 Over VCOM Interface from Windows PC
doSMCOM_PN7150_ON="-DSMCOM=PN7150" #NFC Interface using PN7150
doSMCOM_Thread_ON="-DSMCOM=Thread" #Thread Mode interface
doSMCOM_PCSC_ON="-DSMCOM=PCSC" #CCID PC/SC reader interface
### HostCrypto : Counterpart Crypto on Host
#
# What is being used as a cryptographic library on the host.
# As of now only OpenSSL / mbedTLS is supported
doHostCrypto_MBEDTLS_ON="-DHostCrypto=MBEDTLS" #Use mbedTLS as host crypto
#Use mbed-crypto as host crypto
# Required for ARM-PSA / TF-M
doHostCrypto_MBEDCRYPTO_ON="-DHostCrypto=MBEDCRYPTO"
doHostCrypto_OPENSSL_ON="-DHostCrypto=OPENSSL" #Use OpenSSL as host crypto
#User Implementation of Host Crypto
# e.g. Files at ``sss/src/user/crypto`` have low level AES/CMAC primitives.
# The files at ``sss/src/user`` use those primitives.
# This becomes an example for users with their own AES Implementation
# This then becomes integration without mbedTLS/OpenSSL for SCP03 / AESKey.
#
# .. note:: ECKey abstraction is not implemented/available yet.
doHostCrypto_User_ON="-DHostCrypto=User"
#NO Host Crypto
# Note, this is unsecure and only provided for experimentation
# on platforms that do not have an mbedTLS PORT
# Many :ref:`sssftr-control` have to be disabled to have a valid build.
doHostCrypto_None_ON="-DHostCrypto=None"
### RTOS : Choice of Operating system
#
# Default would mean nothing special.
# i.e. Without any RTOS on embedded system, or default APIs on PC/Linux
doRTOS_Default_ON="-DRTOS=Default" #No specific RTOS. Either bare matal on embedded system or native linux or Windows OS
doRTOS_FreeRTOS_ON="-DRTOS=FreeRTOS" #Free RTOS for embedded systems
### mbedTLS_ALT : ALT Engine implementation for mbedTLS
#
# When set to None, mbedTLS would not use ALT Implementation to connect to / use Secure Element.
# This needs to be set to SSS for Cloud Demos over SSS APIs
dombedTLS_ALT_SSS_ON="-DmbedTLS_ALT=SSS" #Use SSS Layer ALT implementation
dombedTLS_ALT_A71CH_ON="-DmbedTLS_ALT=A71CH" #Legacy implementation
#Not using any mbedTLS_ALT
#
# When this is selected, cloud demos can not work with mbedTLS
dombedTLS_ALT_None_ON="-DmbedTLS_ALT=None"
### SCP : Secure Channel Protocol
#
# In case we enable secure channel to Secure Element, which interface to be used.
doSCP_None_ON="-DSCP=None" #
doSCP_SCP03_SSS_ON="-DSCP=SCP03_SSS" #Use SSS Layer for SCP. Used for SE050 family.
doSCP_SCP03_HostCrypto_ON="-DSCP=SCP03_HostCrypto" #Use Host Crypto Layer for SCP03. Legacy implementation. Used for older demos of A71CH Family.
### FIPS : Enable or disable FIPS
#
# This selection mostly impacts tests, and generally not the actual Middleware
doFIPS_None_ON="-DFIPS=None" #NO FIPS
doFIPS_SE050_ON="-DFIPS=SE050" #SE050 IC FIPS
doFIPS_140_2_ON="-DFIPS=140_2" #FIPS 140-2
doFIPS_140_3_ON="-DFIPS=140_3" #FIPS 140-3
### SE05X_Auth : SE050 Authentication
#
# This settings is used by examples to connect using various options
# to authenticate with the Applet.
# The SE05X_Auth options can be changed for KSDK Demos and Examples.
# To change SE05X_Auth option follow below steps.
# Set flag ``SSS_HAVE_SCP_SCP03_SSS`` to 1 and Reset flag ``SSS_HAVE_SCP_NONE`` to 0.
# To change SE05X_Auth option other than ``None`` and ``PlatfSCP03``,
# execute se05x_Delete_and_test_provision.exe in order to provision the Authentication Key.
# To change SE05X_Auth option to ``ECKey`` or ``ECKey_PlatfSCP03``,
# Set additional flag ``SSS_HAVE_HOSTCRYPTO_ANY`` to 1.
doSE05X_Auth_None_ON="-DSE05X_Auth=None" #Use the default session (i.e. session less) login
doSE05X_Auth_UserID_ON="-DSE05X_Auth=UserID" #Do User Authentication with UserID
doSE05X_Auth_PlatfSCP03_ON="-DSE05X_Auth=PlatfSCP03" #Use Platform SCP for connection to SE
#Do User Authentication with AES Key
# Earlier this was called AppletSCP03
doSE05X_Auth_AESKey_ON="-DSE05X_Auth=AESKey"
#Do User Authentication with EC Key
# Earlier this was called FastSCP
doSE05X_Auth_ECKey_ON="-DSE05X_Auth=ECKey"
doSE05X_Auth_UserID_PlatfSCP03_ON="-DSE05X_Auth=UserID_PlatfSCP03" #UserID and PlatfSCP03
doSE05X_Auth_AESKey_PlatfSCP03_ON="-DSE05X_Auth=AESKey_PlatfSCP03" #AESKey and PlatfSCP03
doSE05X_Auth_ECKey_PlatfSCP03_ON="-DSE05X_Auth=ECKey_PlatfSCP03" #ECKey and PlatfSCP03
### A71CH_AUTH : A71CH Authentication
#
# This settings is used by SSS-API based examples to connect using either plain or authenticated to the A71CH.
doA71CH_AUTH_None_ON="-DA71CH_AUTH=None" #Plain communication, not authenticated or encrypted
doA71CH_AUTH_SCP03_ON="-DA71CH_AUTH=SCP03" #SCP03 enabled
### Log : Logging
doLog_Default_ON="-DLog=Default" #Default Logging
doLog_Verbose_ON="-DLog=Verbose" #Very Verbose logging
doLog_Silent_ON="-DLog=Silent" #Totally silent logging
doLog_SeggerRTT_ON="-DLog=SeggerRTT" #Segger Real Time Transfer (For Test Automation, NXP Internal)
### CMAKE_BUILD_TYPE : See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html
#
# For embedded builds, this choices sets optimization levels.
# For MSVC builds, build type is selected from IDE As well
doCMAKE_BUILD_TYPE_Debug_ON="-DCMAKE_BUILD_TYPE=Debug" #For developer
doCMAKE_BUILD_TYPE_Release_ON="-DCMAKE_BUILD_TYPE=Release" #Optimization enabled and debug symbols removed
doCMAKE_BUILD_TYPE_RelWithDebInfo_ON="-DCMAKE_BUILD_TYPE=RelWithDebInfo" #Optimization enabled but with debug symbols
doCMAKE_BUILD_TYPE__ON="-DCMAKE_BUILD_TYPE=" #Empty Allowed
# SE05X Secure Element : Symmetric AES
doSSSFTR_SE05X_AES_ON="-DSSSFTR_SE05X_AES=ON"
doSSSFTR_SE05X_AES_OFF="-DSSSFTR_SE05X_AES=OFF"
# SE05X Secure Element : Elliptic Curve Cryptography
doSSSFTR_SE05X_ECC_ON="-DSSSFTR_SE05X_ECC=ON"
doSSSFTR_SE05X_ECC_OFF="-DSSSFTR_SE05X_ECC=OFF"
# SE05X Secure Element : RSA
doSSSFTR_SE05X_RSA_ON="-DSSSFTR_SE05X_RSA=ON"
doSSSFTR_SE05X_RSA_OFF="-DSSSFTR_SE05X_RSA=OFF"
# SE05X Secure Element : KEY operations : SET Key
doSSSFTR_SE05X_KEY_SET_ON="-DSSSFTR_SE05X_KEY_SET=ON"
doSSSFTR_SE05X_KEY_SET_OFF="-DSSSFTR_SE05X_KEY_SET=OFF"
# SE05X Secure Element : KEY operations : GET Key
doSSSFTR_SE05X_KEY_GET_ON="-DSSSFTR_SE05X_KEY_GET=ON"
doSSSFTR_SE05X_KEY_GET_OFF="-DSSSFTR_SE05X_KEY_GET=OFF"
# SE05X Secure Element : Authenticate via ECKey
doSSSFTR_SE05X_AuthECKey_ON="-DSSSFTR_SE05X_AuthECKey=ON"
doSSSFTR_SE05X_AuthECKey_OFF="-DSSSFTR_SE05X_AuthECKey=OFF"
# SE05X Secure Element : Allow creation of user/authenticated session.
#
# If the intended deployment only uses Platform SCP
# Or it is a pure session less integration, this can
# save some code size.
doSSSFTR_SE05X_AuthSession_ON="-DSSSFTR_SE05X_AuthSession=ON"
doSSSFTR_SE05X_AuthSession_OFF="-DSSSFTR_SE05X_AuthSession=OFF"
# SE05X Secure Element : Allow creation/deletion of Crypto Objects
#
# If disabled, new Crytpo Objects are neither created and
# old/existing Crypto Objects are not deleted.
# It is assumed that during provisioning phase, the required
# Crypto Objects are pre-created or they are never going to
# be needed.
doSSSFTR_SE05X_CREATE_DELETE_CRYPTOOBJ_ON="-DSSSFTR_SE05X_CREATE_DELETE_CRYPTOOBJ=ON"
doSSSFTR_SE05X_CREATE_DELETE_CRYPTOOBJ_OFF="-DSSSFTR_SE05X_CREATE_DELETE_CRYPTOOBJ=OFF"
# Software : Symmetric AES
doSSSFTR_SW_AES_ON="-DSSSFTR_SW_AES=ON"
doSSSFTR_SW_AES_OFF="-DSSSFTR_SW_AES=OFF"
# Software : Elliptic Curve Cryptography
doSSSFTR_SW_ECC_ON="-DSSSFTR_SW_ECC=ON"
doSSSFTR_SW_ECC_OFF="-DSSSFTR_SW_ECC=OFF"
# Software : RSA
doSSSFTR_SW_RSA_ON="-DSSSFTR_SW_RSA=ON"
doSSSFTR_SW_RSA_OFF="-DSSSFTR_SW_RSA=OFF"
# Software : KEY operations : SET Key
doSSSFTR_SW_KEY_SET_ON="-DSSSFTR_SW_KEY_SET=ON"
doSSSFTR_SW_KEY_SET_OFF="-DSSSFTR_SW_KEY_SET=OFF"
# Software : KEY operations : GET Key
doSSSFTR_SW_KEY_GET_ON="-DSSSFTR_SW_KEY_GET=ON"
doSSSFTR_SW_KEY_GET_OFF="-DSSSFTR_SW_KEY_GET=OFF"
# Software : Used as a test counterpart
#
# e.g. Major part of the mebdTLS SSS layer is purely used for
# testing of Secure Element implementation, and can be avoided
# fully during many production scenarios.
doSSSFTR_SW_TESTCOUNTERPART_ON="-DSSSFTR_SW_TESTCOUNTERPART=ON"
doSSSFTR_SW_TESTCOUNTERPART_OFF="-DSSSFTR_SW_TESTCOUNTERPART=OFF"
# Compile in NXP NFC RdLib support
doWithNXPNFCRdLib_ON="-DWithNXPNFCRdLib=ON"
doWithNXPNFCRdLib_OFF="-DWithNXPNFCRdLib=OFF"
# Compile With open62541 Support
doWithOPCUA_open62541_ON="-DWithOPCUA_open62541=ON"
doWithOPCUA_open62541_OFF="-DWithOPCUA_open62541=OFF"
# Create and use shared libraries
doWithSharedLIB_ON="-DWithSharedLIB=ON"
doWithSharedLIB_OFF="-DWithSharedLIB=OFF"
# NXP Internal
doNXPInternal_ON="-DNXPInternal=ON"
doNXPInternal_OFF="-DNXPInternal=OFF"
# Compile with Code Coverage
doWithCodeCoverage_ON="-DWithCodeCoverage=ON"
doWithCodeCoverage_OFF="-DWithCodeCoverage=OFF"
# Include code from ../customer
doWithExtCustomerCode_ON="-DWithExtCustomerCode=ON"
doWithExtCustomerCode_OFF="-DWithExtCustomerCode=OFF"