14e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park/** @addtogroup CMP 24e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * @{ 34e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * @file 44e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * Interface to content management trustlet definitions. 54e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * 64e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * The TlCm (Content Management Trustlet) is responsible for implementing 74e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * CMP commands and generating approriate CMP responses. 84e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * 94e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * <!-- Copyright Giesecke & Devrient GmbH 2009-2012 --> 104e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * 114e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * Redistribution and use in source and binary forms, with or without 124e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * modification, are permitted provided that the following conditions 134e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * are met: 144e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * 1. Redistributions of source code must retain the above copyright 154e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * notice, this list of conditions and the following disclaimer. 164e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * 2. Redistributions in binary form must reproduce the above copyright 174e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * notice, this list of conditions and the following disclaimer in the 184e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * documentation and/or other materials provided with the distribution. 194e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * 3. The name of the author may not be used to endorse or promote 204e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * products derived from this software without specific prior 214e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * written permission. 224e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * 234e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS 244e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 254e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 264e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 274e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 284e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 294e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 304e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 314e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 324e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 334e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 344e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park */ 354e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park 364e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park#ifndef TLCMAPI_H_ 374e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park#define TLCMAPI_H_ 384e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park 394e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park#include "cmp.h" 404e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park#include "tlCmError.h" 414e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park 424e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park/** TlCm command ids. 434e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * List of all commands supported by TlCm. 444e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * @note All command ids must be in range 0 to 0x7FFFFFFF. 454e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park */ 464e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park//lint -esym(756, cmpCommands_t) cmpCommands_t type by itself not used. 474e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Parktypedef enum cmpCommands_t { 484e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park MC_CMP_CMD_AUTHENTICATE = 0, 494e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park MC_CMP_CMD_BEGIN_ROOT_AUTHENTICATION = 1, 504e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park MC_CMP_CMD_BEGIN_SOC_AUTHENTICATION = 2, 514e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park MC_CMP_CMD_BEGIN_SP_AUTHENTICATION = 3, 524e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park MC_CMP_CMD_GENERATE_AUTH_TOKEN = 4, 534e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park MC_CMP_CMD_GET_VERSION = 5, 544e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park// MC_CMP_CMD_ROOT_CONT_ACTIVATE = 6, 554e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park MC_CMP_CMD_ROOT_CONT_LOCK_BY_ROOT = 7, 564e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park// MC_CMP_CMD_ROOT_CONT_REGISTER = 8, 574e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park MC_CMP_CMD_ROOT_CONT_REGISTER_ACTIVATE = 9, 584e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park MC_CMP_CMD_ROOT_CONT_UNLOCK_BY_ROOT = 10, 594e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park MC_CMP_CMD_ROOT_CONT_UNREGISTER = 11, 604e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park MC_CMP_CMD_SP_CONT_ACTIVATE = 12, 614e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park MC_CMP_CMD_SP_CONT_LOCK_BY_ROOT = 13, 624e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park MC_CMP_CMD_SP_CONT_LOCK_BY_SP = 14, 634e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park MC_CMP_CMD_SP_CONT_REGISTER = 15, 644e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park MC_CMP_CMD_SP_CONT_REGISTER_ACTIVATE = 16, 654e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park MC_CMP_CMD_SP_CONT_UNLOCK_BY_ROOT = 17, 664e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park MC_CMP_CMD_SP_CONT_UNLOCK_BY_SP = 18, 674e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park MC_CMP_CMD_SP_CONT_UNREGISTER = 19, 684e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park MC_CMP_CMD_TLT_CONT_ACTIVATE = 20, 694e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park MC_CMP_CMD_TLT_CONT_LOCK_BY_SP = 21, 704e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park MC_CMP_CMD_TLT_CONT_PERSONALIZE = 22, 714e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park MC_CMP_CMD_TLT_CONT_REGISTER = 23, 724e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park MC_CMP_CMD_TLT_CONT_REGISTER_ACTIVATE = 24, 734e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park MC_CMP_CMD_TLT_CONT_UNLOCK_BY_SP = 25, 744e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park MC_CMP_CMD_TLT_CONT_UNREGISTER = 26, 754e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park MC_CMP_CMD_GET_SUID = 27, 764e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park MC_CMP_CMD_AUTHENTICATE_TERMINATE = 28, 774e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park MC_CMP_CMD_LAST_ = MC_CMP_CMD_AUTHENTICATE_TERMINATE, 784e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park} cmpCommands_t; 794e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park 804e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park/** 814e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * CMP Content Manager message data. 824e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park */ 834e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Parktypedef union { 844e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpCommandHeader_t commandHeader; 854e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpResponseHeader_t responseHeader; 864e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park 874e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpCmdGetVersion_t cmpCmdGetVersion; 884e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpRspGetVersion_t cmpRspGetVersion; 894e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park 904e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpCmdBeginSocAuthentication_t cmpCmdBeginSocAuthentication; 914e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpRspBeginSocAuthentication_t cmpRspBeginSocAuthentication; 924e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park 934e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpCmdBeginRootAuthentication_t cmpCmdBeginRootAuthentication; 944e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpRspBeginRootAuthentication_t cmpRspBeginRootAuthentication; 954e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park 964e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpCmdBeginSpAuthentication_t cmpCmdBeginSpAuthentication; 974e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpRspBeginSpAuthentication_t cmpRspBeginSpAuthentication; 984e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park 994e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpCmdAuthenticate_t cmpCmdAuthenticate; 1004e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpRspAuthenticate_t cmpRspAuthenticate; 1014e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park 1024e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpCmdGenAuthToken_t cmpCmdGenAuthToken; 1034e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpRspGenAuthToken_t cmpRspGenAuthToken; 1044e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park 1054e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpCmdRootContRegisterActivate_t cmpCmdRootContRegisterActivate; 1064e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpRspRootContRegisterActivate_t cmpRspRootContRegisterActivate; 1074e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park 1084e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpCmdRootContUnregister_t cmpCmdRootContUnregister; 1094e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpRspRootContUnregister_t cmpRspRootContUnregister; 1104e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park 1114e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpCmdRootContLockByRoot_t cmpCmdRootContLockByRoot; 1124e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpRspRootContLockByRoot_t cmpRspRootContLockByRoot; 1134e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park 1144e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpCmdRootContUnlockByRoot_t cmpCmdRootContUnlockByRoot; 1154e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpRspRootContUnlockByRoot_t cmpRspRootContUnlockByRoot; 1164e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park 1174e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpCmdSpContRegisterActivate_t cmpCmdSpContRegisterActivate; 1184e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpRspSpContRegisterActivate_t cmpRspSpContRegisterActivate; 1194e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park 1204e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpCmdSpContUnregister_t cmpCmdSpContUnregister; 1214e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpRspSpContUnregister_t cmpRspSpContUnregister; 1224e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park 1234e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpCmdSpContLockByRoot_t cmpCmdSpContLockByRoot; 1244e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpRspSpContLockByRoot_t cmpRspSpContLockByRoot; 1254e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park 1264e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpCmdSpContUnlockByRoot_t cmpCmdSpContUnlockByRoot; 1274e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpRspSpContUnlockByRoot_t cmpRspSpContUnlockByRoot; 1284e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park 1294e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpCmdSpContLockBySp_t cmpCmdSpContLockBySp; 1304e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpRspSpContLockBySp_t cmpRspSpContLockBySp; 1314e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park 1324e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpCmdSpContUnlockBySp_t cmpCmdSpContUnlockBySp; 1334e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpRspSpContUnlockBySp_t cmpRspSpContUnlockBySp; 1344e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park 1354e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpCmdTltContRegister_t cmpCmdTltContRegister; 1364e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpRspTltContRegister_t cmpRspTltContRegister; 1374e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park 1384e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpCmdTltContActivate_t cmpCmdTltContActivate; 1394e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpRspTltContActivate_t cmpRspTltContActivate; 1404e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park 1414e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpCmdTltContRegisterActivate_t cmpCmdTltContRegisterActivate; 1424e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpRspTltContRegisterActivate_t cmpRspTltContRegisterActivate; 1434e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park 1444e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpCmdTltContLockBySp_t cmpCmdTltContLockBySp; 1454e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpRspTltContLockBySp_t cmpRspTltContLockBySp; 1464e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park 1474e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpCmdTltContUnlockBySp_t cmpCmdTltContUnlockBySp; 1484e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpRspTltContUnlockBySp_t cmpRspTltContUnlockBySp; 1494e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park 1504e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpCmdTltContUnregister_t cmpCmdTltContUnregister; 1514e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpRspTltContUnregister_t cmpRspTltContUnregister; 1524e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park 1534e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpCmdGetSuid_t cmpCmdGetSuid; 1544e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpRspGetSuid_t cmpRspGetSuid; 1554e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park 1564e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpCmdAuthenticateTerminate_t cmpCmdAuthenticateTerminate; 1574e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpRspAuthenticateTerminate_t cmpRspAuthenticateTerminate; 1584e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park 1594e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpCmdTltContPersonalize_t cmpCmdTltContPersonalize; 1604e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpRspTltContPersonalize_t cmpRspTltContPersonalize; 1614e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park 1624e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpCmdSpContRegister_t cmpCmdSpContRegister; 1634e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpRspSpContRegister_t cmpRspSpContRegister; 1644e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park 1654e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpCmdSpContActivate_t cmpCmdSpContActivate; 1664e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpRspSpContActivate_t cmpRspSpContActivate; 1674e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park} cmpMessage_t; 1684e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park 1694e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park/** 1704e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * Overall CMP structure. 1714e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park */ 1724e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Parktypedef struct { 1734e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park /** CMP message. */ 1744e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park cmpMessage_t msg; 1754e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park} cmp_t; 1764e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park 1774e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park/** 1784e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park * TlCm exit code: TlCm exited with error. 1794e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park */ 1804e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park#define EXIT_ERROR ((uint32_t)(-1)) 1814e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park 1824e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park#endif // TLCMAPI_H_ 1834e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park 1844e9e8c9c0169b40318386436d762c3d73cf4c328DongJin Park/** @} */ 185