1/** @addtogroup CMP 2 * @{ 3 * @file 4 * Interface to content management trustlet definitions. 5 * 6 * The TlCm (Content Management Trustlet) is responsible for implementing 7 * CMP commands and generating approriate CMP responses. 8 * 9 * <!-- Copyright Giesecke & Devrient GmbH 2009-2012 --> 10 * 11 * Redistribution and use in source and binary forms, with or without 12 * modification, are permitted provided that the following conditions 13 * are met: 14 * 1. Redistributions of source code must retain the above copyright 15 * notice, this list of conditions and the following disclaimer. 16 * 2. Redistributions in binary form must reproduce the above copyright 17 * notice, this list of conditions and the following disclaimer in the 18 * documentation and/or other materials provided with the distribution. 19 * 3. The name of the author may not be used to endorse or promote 20 * products derived from this software without specific prior 21 * written permission. 22 * 23 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS 24 * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 25 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 26 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 27 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 28 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 29 * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 30 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 31 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 32 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 33 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 34 */ 35 36#ifndef TLCMAPI_H_ 37#define TLCMAPI_H_ 38 39#include "cmp.h" 40#include "tlCmError.h" 41 42/** TlCm command ids. 43 * List of all commands supported by TlCm. 44 * @note All command ids must be in range 0 to 0x7FFFFFFF. 45 */ 46//lint -esym(756, cmpCommands_t) cmpCommands_t type by itself not used. 47typedef enum cmpCommands_t { 48 MC_CMP_CMD_AUTHENTICATE = 0, 49 MC_CMP_CMD_BEGIN_ROOT_AUTHENTICATION = 1, 50 MC_CMP_CMD_BEGIN_SOC_AUTHENTICATION = 2, 51 MC_CMP_CMD_BEGIN_SP_AUTHENTICATION = 3, 52 MC_CMP_CMD_GENERATE_AUTH_TOKEN = 4, 53 MC_CMP_CMD_GET_VERSION = 5, 54// MC_CMP_CMD_ROOT_CONT_ACTIVATE = 6, 55 MC_CMP_CMD_ROOT_CONT_LOCK_BY_ROOT = 7, 56// MC_CMP_CMD_ROOT_CONT_REGISTER = 8, 57 MC_CMP_CMD_ROOT_CONT_REGISTER_ACTIVATE = 9, 58 MC_CMP_CMD_ROOT_CONT_UNLOCK_BY_ROOT = 10, 59 MC_CMP_CMD_ROOT_CONT_UNREGISTER = 11, 60 MC_CMP_CMD_SP_CONT_ACTIVATE = 12, 61 MC_CMP_CMD_SP_CONT_LOCK_BY_ROOT = 13, 62 MC_CMP_CMD_SP_CONT_LOCK_BY_SP = 14, 63 MC_CMP_CMD_SP_CONT_REGISTER = 15, 64 MC_CMP_CMD_SP_CONT_REGISTER_ACTIVATE = 16, 65 MC_CMP_CMD_SP_CONT_UNLOCK_BY_ROOT = 17, 66 MC_CMP_CMD_SP_CONT_UNLOCK_BY_SP = 18, 67 MC_CMP_CMD_SP_CONT_UNREGISTER = 19, 68 MC_CMP_CMD_TLT_CONT_ACTIVATE = 20, 69 MC_CMP_CMD_TLT_CONT_LOCK_BY_SP = 21, 70 MC_CMP_CMD_TLT_CONT_PERSONALIZE = 22, 71 MC_CMP_CMD_TLT_CONT_REGISTER = 23, 72 MC_CMP_CMD_TLT_CONT_REGISTER_ACTIVATE = 24, 73 MC_CMP_CMD_TLT_CONT_UNLOCK_BY_SP = 25, 74 MC_CMP_CMD_TLT_CONT_UNREGISTER = 26, 75 MC_CMP_CMD_GET_SUID = 27, 76 MC_CMP_CMD_AUTHENTICATE_TERMINATE = 28, 77 MC_CMP_CMD_LAST_ = MC_CMP_CMD_AUTHENTICATE_TERMINATE, 78} cmpCommands_t; 79 80/** 81 * CMP Content Manager message data. 82 */ 83typedef union { 84 cmpCommandHeader_t commandHeader; 85 cmpResponseHeader_t responseHeader; 86 87 cmpCmdGetVersion_t cmpCmdGetVersion; 88 cmpRspGetVersion_t cmpRspGetVersion; 89 90 cmpCmdBeginSocAuthentication_t cmpCmdBeginSocAuthentication; 91 cmpRspBeginSocAuthentication_t cmpRspBeginSocAuthentication; 92 93 cmpCmdBeginRootAuthentication_t cmpCmdBeginRootAuthentication; 94 cmpRspBeginRootAuthentication_t cmpRspBeginRootAuthentication; 95 96 cmpCmdBeginSpAuthentication_t cmpCmdBeginSpAuthentication; 97 cmpRspBeginSpAuthentication_t cmpRspBeginSpAuthentication; 98 99 cmpCmdAuthenticate_t cmpCmdAuthenticate; 100 cmpRspAuthenticate_t cmpRspAuthenticate; 101 102 cmpCmdGenAuthToken_t cmpCmdGenAuthToken; 103 cmpRspGenAuthToken_t cmpRspGenAuthToken; 104 105 cmpCmdRootContRegisterActivate_t cmpCmdRootContRegisterActivate; 106 cmpRspRootContRegisterActivate_t cmpRspRootContRegisterActivate; 107 108 cmpCmdRootContUnregister_t cmpCmdRootContUnregister; 109 cmpRspRootContUnregister_t cmpRspRootContUnregister; 110 111 cmpCmdRootContLockByRoot_t cmpCmdRootContLockByRoot; 112 cmpRspRootContLockByRoot_t cmpRspRootContLockByRoot; 113 114 cmpCmdRootContUnlockByRoot_t cmpCmdRootContUnlockByRoot; 115 cmpRspRootContUnlockByRoot_t cmpRspRootContUnlockByRoot; 116 117 cmpCmdSpContRegisterActivate_t cmpCmdSpContRegisterActivate; 118 cmpRspSpContRegisterActivate_t cmpRspSpContRegisterActivate; 119 120 cmpCmdSpContUnregister_t cmpCmdSpContUnregister; 121 cmpRspSpContUnregister_t cmpRspSpContUnregister; 122 123 cmpCmdSpContLockByRoot_t cmpCmdSpContLockByRoot; 124 cmpRspSpContLockByRoot_t cmpRspSpContLockByRoot; 125 126 cmpCmdSpContUnlockByRoot_t cmpCmdSpContUnlockByRoot; 127 cmpRspSpContUnlockByRoot_t cmpRspSpContUnlockByRoot; 128 129 cmpCmdSpContLockBySp_t cmpCmdSpContLockBySp; 130 cmpRspSpContLockBySp_t cmpRspSpContLockBySp; 131 132 cmpCmdSpContUnlockBySp_t cmpCmdSpContUnlockBySp; 133 cmpRspSpContUnlockBySp_t cmpRspSpContUnlockBySp; 134 135 cmpCmdTltContRegister_t cmpCmdTltContRegister; 136 cmpRspTltContRegister_t cmpRspTltContRegister; 137 138 cmpCmdTltContActivate_t cmpCmdTltContActivate; 139 cmpRspTltContActivate_t cmpRspTltContActivate; 140 141 cmpCmdTltContRegisterActivate_t cmpCmdTltContRegisterActivate; 142 cmpRspTltContRegisterActivate_t cmpRspTltContRegisterActivate; 143 144 cmpCmdTltContLockBySp_t cmpCmdTltContLockBySp; 145 cmpRspTltContLockBySp_t cmpRspTltContLockBySp; 146 147 cmpCmdTltContUnlockBySp_t cmpCmdTltContUnlockBySp; 148 cmpRspTltContUnlockBySp_t cmpRspTltContUnlockBySp; 149 150 cmpCmdTltContUnregister_t cmpCmdTltContUnregister; 151 cmpRspTltContUnregister_t cmpRspTltContUnregister; 152 153 cmpCmdGetSuid_t cmpCmdGetSuid; 154 cmpRspGetSuid_t cmpRspGetSuid; 155 156 cmpCmdAuthenticateTerminate_t cmpCmdAuthenticateTerminate; 157 cmpRspAuthenticateTerminate_t cmpRspAuthenticateTerminate; 158 159 cmpCmdTltContPersonalize_t cmpCmdTltContPersonalize; 160 cmpRspTltContPersonalize_t cmpRspTltContPersonalize; 161 162 cmpCmdSpContRegister_t cmpCmdSpContRegister; 163 cmpRspSpContRegister_t cmpRspSpContRegister; 164 165 cmpCmdSpContActivate_t cmpCmdSpContActivate; 166 cmpRspSpContActivate_t cmpRspSpContActivate; 167} cmpMessage_t; 168 169/** 170 * Overall CMP structure. 171 */ 172typedef struct { 173 /** CMP message. */ 174 cmpMessage_t msg; 175} cmp_t; 176 177/** 178 * TlCm exit code: TlCm exited with error. 179 */ 180#define EXIT_ERROR ((uint32_t)(-1)) 181 182#endif // TLCMAPI_H_ 183 184/** @} */ 185