1 /** @addtogroup CMP 2 * Content Management Protocol Definitions. 3 * 4 * The CMP (Content Management Protocol) is based on the TCI (Trustlet Control 5 * Interface) and defines commands/responses between the content management 6 * trustlet (CMTL) and the content management trustlet connector (CMTLC) and/or 7 * the remote backend. 8 * 9 * @{ 10 * 11 * @file 12 * CMP global definitions. 13 * Various components need access to (sub-)structures defined and used by CMP; 14 * these common definitions are made available through this header file. 15 * 16 * <!-- Copyright Giesecke & Devrient GmbH 2009-2012 --> 17 * 18 * Redistribution and use in source and binary forms, with or without 19 * modification, are permitted provided that the following conditions 20 * are met: 21 * 1. Redistributions of source code must retain the above copyright 22 * notice, this list of conditions and the following disclaimer. 23 * 2. Redistributions in binary form must reproduce the above copyright 24 * notice, this list of conditions and the following disclaimer in the 25 * documentation and/or other materials provided with the distribution. 26 * 3. The name of the author may not be used to endorse or promote 27 * products derived from this software without specific prior 28 * written permission. 29 * 30 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS 31 * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 32 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 33 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 34 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 35 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE 36 * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 37 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 38 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 39 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 40 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 41 */ 42 43 #ifndef CMP_H_ 44 #define CMP_H_ 45 46 #include "mcContainer.h" 47 #include "mcUuid.h" 48 #include "mcVersionInfo.h" 49 #include "version.h" 50 51 typedef uint32_t cmpCommandId_t; 52 typedef uint32_t cmpResponseId_t; 53 typedef uint32_t cmpReturnCode_t; 54 55 /** Responses have bit 31 set */ 56 #define RSP_ID_MASK (1U << 31) 57 #define RSP_ID(cmdId) (((uint32_t)(cmdId)) | RSP_ID_MASK) 58 #define IS_CMD(cmdId) ((((uint32_t)(cmdId)) & RSP_ID_MASK) == 0) 59 #define IS_RSP(cmdId) ((((uint32_t)(cmdId)) & RSP_ID_MASK) == RSP_ID_MASK) 60 61 /** 62 * CMP command header. 63 */ 64 typedef struct { 65 /** Command ID. */ 66 cmpCommandId_t commandId; 67 } cmpCommandHeader_t; 68 69 /** 70 * CMP response header. 71 */ 72 typedef struct{ 73 /** Response ID (must be command ID | RSP_ID_MASK ). */ 74 cmpResponseId_t responseId; 75 /** Return code of command. */ 76 cmpReturnCode_t returnCode; 77 } cmpResponseHeader_t; 78 79 /** SHA256 checksum. */ 80 typedef struct { 81 uint8_t data[32]; 82 } cmpSha256_t; 83 84 /** Key size of encryption algorithm used for secure messaging. */ 85 #define CMP_MSG_KEY_SIZE 32 86 87 /** Block size of the encryption algorithm used for secure messaging. */ 88 #define CMP_MSG_CRYPTO_BLOCK_SIZE 16 89 90 /** Total number of padding bytes required to encrypt data of given size. */ 91 #define CMP_ED_PADDING(netsize) (CMP_MSG_CRYPTO_BLOCK_SIZE - (netsize) % CMP_MSG_CRYPTO_BLOCK_SIZE) 92 93 /** Total number of bytes used for message authentication code (MAC). */ 94 #define CMP_MAC_SIZE 32 // HMAC-SHA256 95 96 /** Total number of bytes used for PSS signature in GENERATE AUTH TOKEN command. */ 97 #define CMP_GEN_AUTH_TOKEN_PSS_SIZE 256 98 99 /** Message authentication code. */ 100 typedef struct { 101 uint8_t mac[CMP_MAC_SIZE]; 102 } cmpMac_t; 103 104 /** 64-bit random number. */ 105 typedef struct { 106 uint8_t data[8]; 107 } cmpRnd8_t; 108 109 /** 256-bit random number. */ 110 typedef struct { 111 uint8_t data[32]; 112 } cmpRnd32_t; 113 114 /** Version tags. */ 115 typedef enum { 116 CMP_VERSION_TAG1 = 0x00000001, // Deprecated. 117 CMP_VERSION_TAG2 = 0x00000002, 118 } cmpVersionTag_t; 119 120 /** Version data for version tag 1. */ 121 typedef struct { 122 uint32_t number; 123 } cmpVersionData1_t; 124 125 /** Version data for version tag 2. */ 126 typedef struct { 127 mcVersionInfo_t versionInfo; 128 } cmpVersionData2_t; 129 130 /** Version data. */ 131 typedef union { 132 cmpVersionData1_t versionData1; 133 cmpVersionData2_t versionData2; 134 } cmpVersionData_t; 135 136 /** @defgroup MC_CMP_CMD_GET_VERSION 137 * @{ */ 138 139 /** @defgroup MC_CMP_CMD_GET_VERSION_CMD Command 140 * @{ */ 141 142 /** GetVersion command. */ 143 typedef struct { 144 cmpCommandHeader_t cmdHeader; 145 } cmpCmdGetVersion_t; 146 147 /** @} */ 148 149 /** @defgroup MC_CMP_CMD_GET_VERSION_RSP Response 150 * @{ */ 151 152 /** GetSuid response. */ 153 typedef struct { 154 cmpResponseHeader_t rspHeader; 155 cmpVersionTag_t tag; 156 cmpVersionData_t data; 157 } cmpRspGetVersion_t; 158 159 /** @} */ 160 161 /** @} */ 162 163 /** @defgroup MC_CMP_CMD_GENERATE_AUTH_TOKEN 164 * @{ */ 165 166 /** @defgroup MC_CMP_CMD_GENERATE_AUTH_TOKEN_CMD Command 167 * @{ */ 168 169 typedef struct { 170 cmpCommandHeader_t cmdHeader; 171 mcSuid_t suid; 172 mcSymmetricKey_t kSocAuth; 173 uint32_t kid; 174 } cmpGenAuthTokenCmdSdata_t; 175 176 typedef struct { 177 cmpGenAuthTokenCmdSdata_t sdata; 178 uint8_t pssSignature[CMP_GEN_AUTH_TOKEN_PSS_SIZE]; 179 } cmpGenAuthTokenCmd_t; 180 181 /** GenAuthToken command. */ 182 typedef struct { 183 cmpGenAuthTokenCmd_t cmd; 184 } cmpCmdGenAuthToken_t; 185 186 /** @} */ 187 188 /** @defgroup MC_CMP_CMD_GENERATE_AUTH_TOKEN_RSP Response 189 * @{ */ 190 191 typedef struct { 192 cmpResponseHeader_t rspHeader; 193 // No MAC. 194 } cmpGenAuthTokenRsp_t; 195 196 /** GenAuthToken response. */ 197 typedef struct { 198 cmpGenAuthTokenRsp_t rsp; 199 mcSoAuthTokenCont_t soAuthCont; 200 } cmpRspGenAuthToken_t; 201 202 /** @} */ 203 204 /** @} */ 205 206 /** @defgroup MC_CMP_CMD_BEGIN_SOC_AUTHENTICATION 207 * @{ */ 208 209 /** @defgroup MC_CMP_CMD_BEGIN_SOC_AUTHENTICATION_CMD Command 210 * @{ */ 211 212 typedef struct { 213 cmpCommandHeader_t cmdHeader; 214 } cmpBeginSocAuthenticationCmd_t; 215 216 /** BeginSocAuthentication command. */ 217 typedef struct { 218 cmpBeginSocAuthenticationCmd_t cmd; 219 mcSoAuthTokenCont_t soAuthTokenCont; 220 } cmpCmdBeginSocAuthentication_t; 221 222 /** @} */ 223 224 /** @defgroup MC_CMP_CMD_BEGIN_SOC_AUTHENTICATION_RSP Response 225 * @{ */ 226 227 typedef struct { 228 cmpResponseHeader_t rspHeader; 229 mcSuid_t suid; 230 cmpRnd8_t rnd1; 231 } cmpBeginSocAuthenticationRspSdata_t; 232 233 typedef struct { 234 cmpBeginSocAuthenticationRspSdata_t sdata; 235 cmpMac_t mac; 236 } cmpBeginSocAuthenticationRsp_t; 237 238 /** BeginSocAuthentication response. */ 239 typedef struct { 240 cmpBeginSocAuthenticationRsp_t rsp; 241 } cmpRspBeginSocAuthentication_t; 242 243 /** @} */ 244 245 /** @} */ 246 247 /** @defgroup MC_CMP_CMD_BEGIN_ROOT_AUTHENTICATION 248 * @{ */ 249 250 /** @defgroup MC_CMP_CMD_BEGIN_ROOT_AUTHENTICATION_CMD Command 251 * @{ */ 252 253 typedef struct { 254 cmpCommandHeader_t cmdHeader; 255 } cmpBeginRootAuthenticationCmd_t; 256 257 /** BeginRootAuthentication command. */ 258 typedef struct { 259 cmpBeginRootAuthenticationCmd_t cmd; 260 mcSoRootCont_t soRootCont; 261 } cmpCmdBeginRootAuthentication_t; 262 263 /** @} */ 264 265 /** @defgroup MC_CMP_CMD_BEGIN_ROOT_AUTHENTICATION_RSP Response 266 * @{ */ 267 268 typedef struct { 269 cmpResponseHeader_t rspHeader; 270 mcSuid_t suid; 271 cmpRnd8_t rnd1; 272 } cmpBeginRootAuthenticationRspSdata_t; 273 274 typedef struct { 275 cmpBeginRootAuthenticationRspSdata_t sdata; 276 cmpMac_t mac; 277 } cmpBeginRootAuthenticationRsp_t; 278 279 /** BeginRootAuthentication response. */ 280 typedef struct { 281 cmpBeginRootAuthenticationRsp_t rsp; 282 } cmpRspBeginRootAuthentication_t; 283 284 /** @} */ 285 286 /** @} */ 287 288 /** @defgroup MC_CMP_CMD_BEGIN_SP_AUTHENTICATION 289 * @{ */ 290 291 /** @defgroup MC_CMP_CMD_BEGIN_SP_AUTHENTICATION_CMD Command 292 * @{ */ 293 typedef struct { 294 cmpCommandHeader_t cmdHeader; 295 mcSpid_t spid; 296 } cmpBeginSpAuthenticationCmdSdata_t; 297 298 typedef struct { 299 cmpBeginSpAuthenticationCmdSdata_t sdata; 300 } cmpBeginSpAuthenticationCmd_t; 301 302 /** BeginSpAuthentication command. */ 303 typedef struct { 304 cmpBeginSpAuthenticationCmd_t cmd; 305 mcSoRootCont_t soRootCont; 306 mcSoSpCont_t soSpCont; 307 } cmpCmdBeginSpAuthentication_t; 308 309 /** @} */ 310 311 /** @defgroup MC_CMP_CMD_BEGIN_SP_AUTHENTICATION_RSP Response 312 * @{ */ 313 typedef struct { 314 cmpResponseHeader_t rspHeader; 315 mcSuid_t suid; 316 mcSpid_t spid; 317 cmpRnd8_t rnd1; 318 } cmpBeginSpAuthenticationRspSdata_t; 319 320 typedef struct { 321 cmpBeginSpAuthenticationRspSdata_t sdata; 322 cmpMac_t mac; 323 } cmpBeginSpAuthenticationRsp_t; 324 325 /** BeginSpAuthentication response. */ 326 typedef struct { 327 cmpBeginSpAuthenticationRsp_t rsp; 328 } cmpRspBeginSpAuthentication_t; 329 330 /** @} */ 331 332 /** @} */ 333 334 /** @defgroup MC_CMP_CMD_AUTHENTICATE 335 * @{ */ 336 337 /** @defgroup MC_CMP_CMD_AUTHENTICATE_CMD Command 338 * @{ */ 339 typedef struct { 340 mcSuid_t suid; 341 uint32_t entityId; 342 cmpRnd8_t rnd2; 343 cmpRnd8_t rnd1; 344 cmpRnd32_t k2; 345 } cmpAuthMsgEdata_t; 346 347 typedef struct { 348 cmpAuthMsgEdata_t edata; 349 uint8_t padding[CMP_ED_PADDING(sizeof(cmpAuthMsgEdata_t))]; 350 } cmpAuthCmdEd_t; 351 352 typedef struct { 353 cmpCommandHeader_t cmdHeader; 354 cmpAuthCmdEd_t ed; 355 } cmpAuthCmdSdata_t; 356 357 typedef struct { 358 cmpAuthCmdSdata_t sdata; 359 cmpMac_t mac; 360 } cmpAuthenticateCmd_t; 361 362 /** Authenticate command. */ 363 typedef struct { 364 cmpAuthenticateCmd_t cmd; 365 } cmpCmdAuthenticate_t; 366 367 /** @} */ 368 369 /** @defgroup MC_CMP_CMD_AUTHENTICATE_RSP Response 370 * @{ */ 371 typedef struct { 372 mcSuid_t suid; 373 uint32_t entityId; 374 cmpRnd8_t rnd1; 375 cmpRnd8_t rnd2; 376 cmpRnd32_t k1; 377 } cmpAuthRspEdata_t; 378 379 typedef struct { 380 cmpAuthRspEdata_t edata; 381 uint8_t padding[CMP_ED_PADDING(sizeof(cmpAuthRspEdata_t))]; 382 } cmpAuthRspEd_t; 383 384 typedef struct { 385 cmpResponseHeader_t rspHeader; 386 cmpAuthRspEd_t ed; 387 } cmpAuthRspSdata_t; 388 389 typedef struct { 390 cmpAuthRspSdata_t sdata; 391 cmpMac_t mac; 392 } cmpAuthenticateRsp_t; 393 394 /** Authenticate response. */ 395 typedef struct { 396 cmpAuthenticateRsp_t rsp; 397 } cmpRspAuthenticate_t; 398 399 /** @} */ 400 401 /** @} */ 402 403 /** @defgroup MC_CMP_CMD_ROOT_CONT_REGISTER_ACTIVATE 404 * @{ */ 405 406 /** @defgroup MC_CMP_CMD_ROOT_CONT_REGISTER_ACTIVATE_CMD Command 407 * @{ */ 408 409 typedef struct { 410 mcSymmetricKey_t kRootAuth; 411 } cmpRootRegActMsgEdata_t; 412 413 typedef struct { 414 cmpRootRegActMsgEdata_t edata; 415 uint8_t padding[CMP_ED_PADDING(sizeof(cmpRootRegActMsgEdata_t))]; 416 } cmpRootRegActCmdEd_t; 417 418 typedef struct { 419 cmpCommandHeader_t cmdHeader; 420 mcRootid_t rootid; 421 cmpRootRegActCmdEd_t ed; 422 } cmpRootRegActCmdSdata_t; 423 424 typedef struct { 425 cmpRootRegActCmdSdata_t sdata; 426 cmpMac_t mac; 427 } cmpRootContRegisterActivateCmd_t; 428 429 /** RootContRegisterActivate command. */ 430 typedef struct { 431 cmpRootContRegisterActivateCmd_t cmd; 432 } cmpCmdRootContRegisterActivate_t; 433 434 /** @} */ 435 436 /** @defgroup MC_CMP_CMD_ROOT_CONT_REGISTER_ACTIVATE_RSP Response 437 * @{ */ 438 439 typedef struct { 440 mcSoRootCont_t soRootCont; 441 } cmpRootRegActRspEdata_t; 442 443 typedef struct { 444 cmpRootRegActRspEdata_t edata; 445 uint8_t padding[CMP_ED_PADDING(sizeof(cmpRootRegActRspEdata_t))]; 446 } cmpRootRegActRspEd_t; 447 448 typedef struct { 449 cmpResponseHeader_t rspHeader; 450 cmpRootRegActRspEd_t ed; 451 } cmpRootRegActRspSdata_t; 452 453 typedef struct { 454 cmpRootRegActRspSdata_t sdata; 455 cmpMac_t mac; 456 } cmpRootContRegisterActivateRsp_t; 457 458 /** RooContRegisterActivate response. */ 459 typedef struct { 460 cmpRootContRegisterActivateRsp_t rsp; 461 mcSoRootCont_t soRootCont; 462 } cmpRspRootContRegisterActivate_t; 463 464 /** @} */ 465 466 /** @} */ 467 468 /** @defgroup MC_CMP_CMD_ROOT_CONT_UNREGISTER 469 * @{ */ 470 471 /** @defgroup MC_CMP_CMD_ROOT_CONT_UNREGISTER_CMD Command 472 * @{ */ 473 474 typedef struct { 475 mcSuid_t suid; 476 mcSoAuthTokenCont_t soAuthTokenCont; 477 } cmpRootUnregMsgEdata_t; 478 479 typedef struct { 480 cmpRootUnregMsgEdata_t edata; 481 uint8_t padding[CMP_ED_PADDING(sizeof(cmpRootUnregMsgEdata_t))]; 482 } cmpRootUnregCmdEd_t; 483 484 typedef struct { 485 cmpCommandHeader_t cmdHeader; 486 cmpRootUnregCmdEd_t ed; 487 } cmpRootUnregCmdSdata_t; 488 489 typedef struct { 490 cmpRootUnregCmdSdata_t sdata; 491 cmpMac_t mac; 492 } cmpRootContUnregisterCmd_t; 493 494 /** RootContUnregister command. */ 495 typedef struct { 496 cmpRootContUnregisterCmd_t cmd; 497 } cmpCmdRootContUnregister_t; 498 499 /** @} */ 500 501 /** @defgroup MC_CMP_CMD_ROOT_CONT_UNREGISTER_RSP Response 502 * @{ */ 503 504 typedef struct { 505 mcSuid_t suid; 506 } cmpRootUnregRspEdata_t; 507 508 typedef struct { 509 cmpRootUnregRspEdata_t edata; 510 uint8_t padding[CMP_ED_PADDING(sizeof(cmpRootUnregRspEdata_t))]; 511 } cmpRootUnregRspEd_t; 512 513 typedef struct { 514 cmpResponseHeader_t rspHeader; 515 cmpRootUnregRspEd_t ed; 516 } cmpRootUnregRspSdata_t; 517 518 typedef struct { 519 cmpRootUnregRspSdata_t sdata; 520 cmpMac_t mac; 521 } cmpRootContUnregisterRsp_t; 522 523 /** RootContUnregister response. */ 524 typedef struct { 525 cmpRootContUnregisterRsp_t rsp; 526 mcSoAuthTokenCont_t soAuthTokenCont; 527 } cmpRspRootContUnregister_t; 528 529 /** @} */ 530 531 /** @} */ 532 533 /** @defgroup MC_CMP_CMD_ROOT_CONT_LOCK_BY_ROOT 534 * @{ */ 535 536 /** @defgroup MC_CMP_CMD_ROOT_CONT_LOCK_BY_ROOT_CMD Command 537 * @{ */ 538 539 typedef struct { 540 cmpCommandHeader_t cmdHeader; 541 } cmpRootLockByRootCmdSdata_t; 542 543 typedef struct { 544 cmpRootLockByRootCmdSdata_t sdata; 545 cmpMac_t mac; 546 } cmpRootContLockByRootCmd_t; 547 548 /** RootContLockByRoot command. */ 549 typedef struct { 550 cmpRootContLockByRootCmd_t cmd; 551 } cmpCmdRootContLockByRoot_t; 552 553 /** @} */ 554 555 /** @defgroup MC_CMP_CMD_ROOT_CONT_LOCK_BY_ROOT_RSP Response 556 * @{ */ 557 558 typedef struct { 559 mcSoRootCont_t soRootCont; 560 } cmpRootLockByRootRspEdata_t; 561 562 typedef struct { 563 cmpRootLockByRootRspEdata_t edata; 564 uint8_t padding[CMP_ED_PADDING(sizeof(cmpRootLockByRootRspEdata_t))]; 565 } cmpRootLockByRootRspEd_t; 566 567 typedef struct { 568 cmpResponseHeader_t rspHeader; 569 cmpRootLockByRootRspEd_t ed; 570 } cmpRootLockByRootRspSdata_t; 571 572 typedef struct { 573 cmpRootLockByRootRspSdata_t sdata; 574 cmpMac_t mac; 575 } cmpRootContLockByRootRsp_t; 576 577 /** RootContLockByRoot response. */ 578 typedef struct { 579 cmpRootContLockByRootRsp_t rsp; 580 mcSoRootCont_t soRootCont; 581 } cmpRspRootContLockByRoot_t; 582 583 /** @} */ 584 585 /** @} */ 586 587 /** @defgroup MC_CMP_CMD_ROOT_CONT_UNLOCK_BY_ROOT 588 * @{ */ 589 590 /** @defgroup MC_CMP_CMD_ROOT_CONT_UNLOCK_BY_ROOT_CMD Command 591 * @{ */ 592 593 typedef struct { 594 cmpCommandHeader_t cmdHeader; 595 } cmpRootUnlockByRootCmdSdata_t; 596 597 typedef struct { 598 cmpRootUnlockByRootCmdSdata_t sdata; 599 cmpMac_t mac; 600 } cmpRootContUnlockByRootCmd_t; 601 602 /** RootContUnlockByRoot command. */ 603 typedef struct { 604 cmpRootContUnlockByRootCmd_t cmd; 605 } cmpCmdRootContUnlockByRoot_t; 606 607 /** @} */ 608 609 /** @defgroup MC_CMP_CMD_ROOT_CONT_UNLOCK_BY_ROOT_RSP Response 610 * @{ */ 611 612 typedef struct { 613 mcSoRootCont_t soRootCont; 614 } cmpRootUnlockByRootRspEdata_t; 615 616 typedef struct { 617 cmpRootUnlockByRootRspEdata_t edata; 618 uint8_t padding[CMP_ED_PADDING(sizeof(cmpRootUnlockByRootRspEdata_t))]; 619 } cmpRootUnlockByRootRspEd_t; 620 621 typedef struct { 622 cmpResponseHeader_t rspHeader; 623 cmpRootUnlockByRootRspEd_t ed; 624 } cmpRootUnlockByRootRspSdata_t; 625 626 typedef struct { 627 cmpRootUnlockByRootRspSdata_t sdata; 628 cmpMac_t mac; 629 } cmpRootContUnlockByRootRsp_t; 630 631 /** RootContUnlockByRoot response. */ 632 typedef struct { 633 cmpRootContUnlockByRootRsp_t rsp; 634 mcSoRootCont_t soRootCont; 635 } cmpRspRootContUnlockByRoot_t; 636 637 /** @} */ 638 639 /** @} */ 640 641 /** @defgroup MC_CMP_CMD_SP_CONT_REGISTER_ACTIVATE 642 * @{ */ 643 644 /** @defgroup MC_CMP_CMD_SP_CONT_REGISTER_ACTIVATE_CMD Command 645 * @{ */ 646 647 typedef struct { 648 mcSymmetricKey_t kSpAuth; 649 } cmpSpRegActMsgEdata_t; 650 651 typedef struct { 652 cmpSpRegActMsgEdata_t edata; 653 uint8_t padding[CMP_ED_PADDING(sizeof(cmpSpRegActMsgEdata_t))]; 654 } cmpSpRegActCmdEd_t; 655 656 typedef struct { 657 cmpCommandHeader_t cmdHeader; 658 mcSpid_t spid; 659 cmpSpRegActCmdEd_t ed; 660 } cmpSpRegActCmdSdata_t; 661 662 typedef struct { 663 cmpSpRegActCmdSdata_t sdata; 664 cmpMac_t mac; 665 } cmpSpContRegisterActivateCmd_t; 666 667 /** SpContRegisterActivate command. */ 668 typedef struct { 669 cmpSpContRegisterActivateCmd_t cmd; 670 } cmpCmdSpContRegisterActivate_t; 671 672 /** @} */ 673 674 /** @defgroup MC_CMP_CMD_SP_CONT_REGISTER_ACTIVATE_RSP Response 675 * @{ */ 676 677 typedef struct { 678 mcSoRootCont_t soRootCont; 679 mcSoSpCont_t soSpCont; 680 } cmpSpRegActRspEdata_t; 681 682 typedef struct { 683 cmpSpRegActRspEdata_t edata; 684 uint8_t padding[CMP_ED_PADDING(sizeof(cmpSpRegActRspEdata_t))]; 685 } cmpSpRegActRspEd_t; 686 687 typedef struct { 688 cmpResponseHeader_t rspHeader; 689 cmpSpRegActRspEd_t ed; 690 } cmpSpRegActRspSdata_t; 691 692 typedef struct { 693 cmpSpRegActRspSdata_t sdata; 694 cmpMac_t mac; 695 } cmpSpContRegisterActivateRsp_t; 696 697 /** SpContRegisterActivate response. */ 698 typedef struct { 699 cmpSpContRegisterActivateRsp_t rsp; 700 mcSoRootCont_t soRootCont; 701 mcSoSpCont_t soSpCont; 702 } cmpRspSpContRegisterActivate_t; 703 704 /** @} */ 705 706 /** @} */ 707 708 /** @defgroup MC_CMP_CMD_SP_CONT_REGISTER 709 * @{ */ 710 711 /** @defgroup MC_CMP_CMD_SP_CONT_REGISTER_CMD Command 712 * @{ */ 713 714 typedef struct { 715 mcSymmetricKey_t kSpAuth; 716 } cmpSpRegisterMsgEdata_t; 717 718 typedef struct { 719 cmpSpRegisterMsgEdata_t edata; 720 uint8_t padding[CMP_ED_PADDING(sizeof(cmpSpRegisterMsgEdata_t))]; 721 } cmpSpRegisterCmdEd_t; 722 723 typedef struct { 724 cmpCommandHeader_t cmdHeader; 725 mcSpid_t spid; 726 cmpSpRegisterCmdEd_t ed; 727 } cmpSpRegisterCmdSdata_t; 728 729 typedef struct { 730 cmpSpRegisterCmdSdata_t sdata; 731 cmpMac_t mac; 732 } cmpSpContRegisterCmd_t; 733 734 /** SpContRegister command. */ 735 typedef struct { 736 cmpSpContRegisterCmd_t cmd; 737 } cmpCmdSpContRegister_t; 738 739 /** @} */ 740 741 /** @defgroup MC_CMP_CMD_SP_CONT_REGISTER_RSP Response 742 * @{ */ 743 744 typedef struct { 745 mcSoRootCont_t soRootCont; 746 mcSoSpCont_t soSpCont; 747 } cmpSpRegisterRspEdata_t; 748 749 typedef struct { 750 cmpSpRegisterRspEdata_t edata; 751 uint8_t padding[CMP_ED_PADDING(sizeof(cmpSpRegisterRspEdata_t))]; 752 } cmpSpRegisterRspEd_t; 753 754 typedef struct { 755 cmpResponseHeader_t rspHeader; 756 cmpSpRegisterRspEd_t ed; 757 } cmpSpRegisterRspSdata_t; 758 759 typedef struct { 760 cmpSpRegisterRspSdata_t sdata; 761 cmpMac_t mac; 762 } cmpSpContRegisterRsp_t; 763 764 /** SpContRegister response. */ 765 typedef struct { 766 cmpSpContRegisterRsp_t rsp; 767 mcSoRootCont_t soRootCont; 768 mcSoSpCont_t soSpCont; 769 } cmpRspSpContRegister_t; 770 771 /** @} */ 772 773 /** @} */ 774 775 /** @defgroup MC_CMP_CMD_SP_CONT_ACTIVATE 776 * @{ */ 777 778 /** @defgroup MC_CMP_CMD_SP_CONT_ACTIVATE_CMD Command 779 * @{ */ 780 781 typedef struct { 782 mcSymmetricKey_t kSpAuth; 783 } cmpSpActivateMsgEdata_t; 784 785 typedef struct { 786 cmpSpActivateMsgEdata_t edata; 787 uint8_t padding[CMP_ED_PADDING(sizeof(cmpSpActivateMsgEdata_t))]; 788 } cmpSpActivateCmdEd_t; 789 790 typedef struct { 791 cmpCommandHeader_t cmdHeader; 792 mcSpid_t spid; 793 cmpSpActivateCmdEd_t ed; 794 } cmpSpActivateCmdSdata_t; 795 796 typedef struct { 797 cmpSpActivateCmdSdata_t sdata; 798 cmpMac_t mac; 799 } cmpSpContActivateCmd_t; 800 801 /** SpContActivate command. */ 802 typedef struct { 803 cmpSpContActivateCmd_t cmd; 804 } cmpCmdSpContActivate_t; 805 806 /** @} */ 807 808 /** @defgroup MC_CMP_CMD_SP_CONT_ACTIVATE_RSP Response 809 * @{ */ 810 811 typedef struct { 812 mcSoSpCont_t soSpCont; 813 } cmpSpActivateRspEdata_t; 814 815 typedef struct { 816 cmpSpActivateRspEdata_t edata; 817 uint8_t padding[CMP_ED_PADDING(sizeof(cmpSpActivateRspEdata_t))]; 818 } cmpSpActivateRspEd_t; 819 820 typedef struct { 821 cmpResponseHeader_t rspHeader; 822 cmpSpActivateRspEd_t ed; 823 } cmpSpActivateRspSdata_t; 824 825 typedef struct { 826 cmpSpActivateRspSdata_t sdata; 827 cmpMac_t mac; 828 } cmpSpContActivateRsp_t; 829 830 /** SpContActivate response. */ 831 typedef struct { 832 cmpSpContActivateRsp_t rsp; 833 mcSoSpCont_t soSpCont; 834 } cmpRspSpContActivate_t; 835 836 /** @} */ 837 838 /** @} */ 839 840 /** @defgroup MC_CMP_CMD_SP_CONT_UNREGISTER 841 * @{ */ 842 843 /** @defgroup MC_CMP_CMD_SP_CONT_UNREGISTER_CMD Command 844 * @{ */ 845 846 typedef struct { 847 cmpCommandHeader_t cmdHeader; 848 mcSpid_t spid; 849 } cmpSpContUnregCmdSdata_t; 850 851 typedef struct { 852 cmpSpContUnregCmdSdata_t sdata; 853 cmpMac_t mac; 854 } cmpSpContUnregisterCmd_t; 855 856 /** SpContUnregister command. */ 857 typedef struct { 858 cmpSpContUnregisterCmd_t cmd; 859 } cmpCmdSpContUnregister_t; 860 861 /** @} */ 862 863 /** @defgroup MC_CMP_CMD_SP_CONT_UNREGISTER_RSP Response 864 * @{ */ 865 866 typedef struct { 867 mcSoRootCont_t soRootCont; 868 } cmpSpUnregRspEdata_t; 869 870 typedef struct { 871 cmpSpUnregRspEdata_t edata; 872 uint8_t padding[CMP_ED_PADDING(sizeof(cmpSpUnregRspEdata_t))]; 873 } cmpSpUnregRspEd_t; 874 875 typedef struct { 876 cmpResponseHeader_t rspHeader; 877 cmpSpUnregRspEd_t ed; 878 } cmpSpContUnregRspSdata_t; 879 880 typedef struct { 881 cmpSpContUnregRspSdata_t sdata; 882 cmpMac_t mac; 883 } cmpSpContUnregisterRsp_t; 884 885 /** SpContUnregister response. */ 886 typedef struct { 887 cmpSpContUnregisterRsp_t rsp; 888 mcSoRootCont_t soRootCont; 889 } cmpRspSpContUnregister_t; 890 891 /** @} */ 892 893 /** @} */ 894 895 /** @defgroup MC_CMP_CMD_SP_CONT_LOCK_BY_ROOT 896 * @{ */ 897 898 /** @defgroup MC_CMP_CMD_SP_CONT_LOCK_BY_ROOT_CMD Command 899 * @{ */ 900 901 typedef struct { 902 cmpCommandHeader_t cmdHeader; 903 mcSpid_t spid; 904 } cmpSpLockByRootCmdSdata_t; 905 906 typedef struct { 907 cmpSpLockByRootCmdSdata_t sdata; 908 cmpMac_t mac; 909 } cmpSpContLockByRootCmd_t; 910 911 /** SpContLockByRoot command. */ 912 typedef struct { 913 cmpSpContLockByRootCmd_t cmd; 914 mcSoSpCont_t soSpCont; 915 } cmpCmdSpContLockByRoot_t; 916 917 /** @} */ 918 919 /** @defgroup MC_CMP_CMD_SP_CONT_LOCK_BY_ROOT_RSP Response 920 * @{ */ 921 922 typedef struct { 923 mcSoSpCont_t soSpCont; 924 } cmpSpLockByRootRspEdata_t; 925 926 typedef struct { 927 cmpSpLockByRootRspEdata_t edata; 928 uint8_t padding[CMP_ED_PADDING(sizeof(cmpSpLockByRootRspEdata_t))]; 929 } cmpSpLockByRootRspEd_t; 930 931 typedef struct { 932 cmpResponseHeader_t rspHeader; 933 cmpSpLockByRootRspEd_t ed; 934 } cmpSpLockByRootRspSdata_t; 935 936 typedef struct { 937 cmpSpLockByRootRspSdata_t sdata; 938 cmpMac_t mac; 939 } cmpSpContLockByRootRsp_t; 940 941 /** SpContLockByRoot response. */ 942 typedef struct { 943 cmpSpContLockByRootRsp_t rsp; 944 mcSoSpCont_t soSpCont; 945 } cmpRspSpContLockByRoot_t; 946 947 /** @} */ 948 949 /** @} */ 950 951 /** @defgroup MC_CMP_CMD_SP_CONT_UNLOCK_BY_ROOT 952 * @{ */ 953 954 /** @defgroup MC_CMP_CMD_SP_CONT_UNLOCK_BY_ROOT_CMD Command 955 * @{ */ 956 957 typedef struct { 958 cmpCommandHeader_t cmdHeader; 959 mcSpid_t spid; 960 } cmpSpUnlockByRootCmdSdata_t; 961 962 typedef struct { 963 cmpSpUnlockByRootCmdSdata_t sdata; 964 cmpMac_t mac; 965 } cmpSpContUnlockByRootCmd_t; 966 967 /** SpContUnlockByRoot command. */ 968 typedef struct { 969 cmpSpContUnlockByRootCmd_t cmd; 970 mcSoSpCont_t soSpCont; 971 } cmpCmdSpContUnlockByRoot_t; 972 973 /** @} */ 974 975 /** @defgroup MC_CMP_CMD_SP_CONT_UNLOCK_BY_ROOT_RSP Response 976 * @{ */ 977 978 typedef struct { 979 mcSoSpCont_t soSpCont; 980 } cmpSpUnlockByRootRspEdata_t; 981 982 typedef struct { 983 cmpSpUnlockByRootRspEdata_t edata; 984 uint8_t padding[CMP_ED_PADDING(sizeof(cmpSpUnlockByRootRspEdata_t))]; 985 } cmpSpUnlockByRootRspEd_t; 986 987 typedef struct { 988 cmpResponseHeader_t rspHeader; 989 cmpSpUnlockByRootRspEd_t ed; 990 } cmpSpUnlockByRootRspSdata_t; 991 992 typedef struct { 993 cmpSpUnlockByRootRspSdata_t sdata; 994 cmpMac_t mac; 995 } cmpSpContUnlockByRootRsp_t; 996 997 /** SpContUnlockByRoot response. */ 998 typedef struct { 999 cmpSpContUnlockByRootRsp_t rsp; 1000 mcSoSpCont_t soSpCont; 1001 } cmpRspSpContUnlockByRoot_t; 1002 1003 /** @} */ 1004 1005 /** @} */ 1006 1007 /** @defgroup MC_CMP_CMD_SP_CONT_LOCK_BY_SP 1008 * @{ */ 1009 1010 /** @defgroup MC_CMP_CMD_SP_CONT_LOCK_BY_SP_CMD Command 1011 * @{ */ 1012 1013 typedef struct { 1014 cmpCommandHeader_t cmdHeader; 1015 mcSpid_t spid; 1016 } cmpSpLockBySpCmdSdata_t; 1017 1018 typedef struct { 1019 cmpSpLockBySpCmdSdata_t sdata; 1020 cmpMac_t mac; 1021 } cmpSpContLockBySpCmd_t; 1022 1023 /** SpContLockBySp command. */ 1024 typedef struct { 1025 cmpSpContLockBySpCmd_t cmd; 1026 } cmpCmdSpContLockBySp_t; 1027 1028 /** @} */ 1029 1030 /** @defgroup MC_CMP_CMD_SP_CONT_LOCK_BY_SP_RSP Respose 1031 * @{ */ 1032 1033 typedef struct { 1034 mcSoSpCont_t soSpCont; 1035 } cmpSpLockBySpRspEdata_t; 1036 1037 typedef struct { 1038 cmpSpLockBySpRspEdata_t edata; 1039 uint8_t padding[CMP_ED_PADDING(sizeof(cmpSpLockBySpRspEdata_t))]; 1040 } cmpSpLockBySpRspEd_t; 1041 1042 typedef struct { 1043 cmpResponseHeader_t rspHeader; 1044 cmpSpLockBySpRspEd_t ed; 1045 } cmpSpLockBySpRspSdata_t; 1046 1047 typedef struct { 1048 cmpSpLockBySpRspSdata_t sdata; 1049 cmpMac_t mac; 1050 } cmpSpContLockBySpRsp_t; 1051 1052 /** SpContLockBySp response. */ 1053 typedef struct { 1054 cmpSpContLockBySpRsp_t rsp; 1055 mcSoSpCont_t soSpCont; 1056 } cmpRspSpContLockBySp_t; 1057 1058 /** @} */ 1059 1060 /** @} */ 1061 1062 /** @defgroup MC_CMP_CMD_SP_CONT_UNLOCK_BY_SP 1063 * @{ */ 1064 1065 /** @defgroup MC_CMP_CMD_SP_CONT_UNLOCK_BY_SP_CMD Command 1066 * @{ */ 1067 1068 typedef struct { 1069 cmpCommandHeader_t cmdHeader; 1070 mcSpid_t spid; 1071 } cmpSpUnlockBySpCmdSdata_t; 1072 1073 typedef struct { 1074 cmpSpUnlockBySpCmdSdata_t sdata; 1075 cmpMac_t mac; 1076 } cmpSpContUnlockBySpCmd_t; 1077 1078 /** SpContUnlockBySp command. */ 1079 typedef struct { 1080 cmpSpContUnlockBySpCmd_t cmd; 1081 } cmpCmdSpContUnlockBySp_t; 1082 1083 /** @} */ 1084 1085 /** @defgroup MC_CMP_CMD_SP_CONT_UNLOCK_BY_SP_RSP Response 1086 * @{ */ 1087 1088 typedef struct { 1089 mcSoSpCont_t soSpCont; 1090 } cmpSpUnlockBySpRspEdata_t; 1091 1092 typedef struct { 1093 cmpSpUnlockBySpRspEdata_t edata; 1094 uint8_t padding[CMP_ED_PADDING(sizeof(cmpSpUnlockBySpRspEdata_t))]; 1095 } cmpSpUnlockBySpRspEd_t; 1096 1097 typedef struct { 1098 cmpResponseHeader_t rspHeader; 1099 cmpSpUnlockBySpRspEd_t ed; 1100 } cmpSpUnlockBySpRspSdata_t; 1101 1102 typedef struct { 1103 cmpSpUnlockBySpRspSdata_t sdata; 1104 cmpMac_t mac; 1105 } cmpSpContUnlockBySpRsp_t; 1106 1107 /** SpContUnlockBySp response. */ 1108 typedef struct { 1109 cmpSpContUnlockBySpRsp_t rsp; 1110 mcSoSpCont_t soSpCont; 1111 } cmpRspSpContUnlockBySp_t; 1112 1113 /** @} */ 1114 1115 /** @} */ 1116 1117 /** @defgroup MC_CMP_CMD_TLT_CONT_REGISTER 1118 * @{ */ 1119 1120 /** @defgroup MC_CMP_CMD_TLT_CONT_REGISTER_CMD Command 1121 * @{ */ 1122 1123 typedef struct { 1124 mcSymmetricKey_t kSpTltEnc; 1125 } cmpTltRegMsgEdata_t; 1126 1127 typedef struct { 1128 cmpTltRegMsgEdata_t edata; 1129 uint8_t padding[CMP_ED_PADDING(sizeof(cmpTltRegMsgEdata_t))]; 1130 } cmpTltRegCmdEd_t; 1131 1132 typedef struct { 1133 cmpCommandHeader_t cmdHeader; 1134 mcSpid_t spid; 1135 mcUuid_t uuid; 1136 cmpTltRegCmdEd_t ed; 1137 } cmpTltRegCmdSdata_t; 1138 1139 typedef struct { 1140 cmpTltRegCmdSdata_t sdata; 1141 cmpMac_t mac; 1142 } cmpTltContRegisterCmd_t; 1143 1144 /** TltContRegister command. */ 1145 typedef struct { 1146 cmpTltContRegisterCmd_t cmd; 1147 } cmpCmdTltContRegister_t; 1148 1149 /** @} */ 1150 1151 /** @defgroup MC_CMP_CMD_TLT_CONT_REGISTER_RSP Response 1152 * @{ */ 1153 1154 typedef struct { 1155 mcSoSpCont_t soSpCont; 1156 mcSoTltCont_t soTltCont; 1157 } cmpTltRegRspEdata_t; 1158 1159 typedef struct { 1160 cmpTltRegRspEdata_t edata; 1161 uint8_t padding[CMP_ED_PADDING(sizeof(cmpTltRegRspEdata_t))]; 1162 } cmpTltRegRspEd_t; 1163 1164 typedef struct { 1165 cmpResponseHeader_t rspHeader; 1166 cmpTltRegRspEd_t ed; 1167 } cmpTltRegRspSdata_t; 1168 1169 typedef struct { 1170 cmpTltRegRspSdata_t sdata; 1171 cmpMac_t mac; 1172 } cmpTltContRegisterRsp_t; 1173 1174 /** TltContRegister response. */ 1175 typedef struct { 1176 cmpTltContRegisterRsp_t rsp; 1177 mcSoSpCont_t soSpCont; 1178 mcSoTltCont_t soTltCont; 1179 } cmpRspTltContRegister_t; 1180 1181 /** @} */ 1182 1183 /** @} */ 1184 1185 /** @defgroup MC_CMP_CMD_TLT_CONT_ACTIVATE 1186 * @{ */ 1187 1188 /** @defgroup MC_CMP_CMD_TLT_CONT_ACTIVATE_CMD Command 1189 * @{ */ 1190 1191 typedef struct { 1192 cmpCommandHeader_t cmdHeader; 1193 mcSpid_t spid; 1194 mcUuid_t uuid; 1195 } cmpTltActCmdSdata_t; 1196 1197 typedef struct { 1198 cmpTltActCmdSdata_t sdata; 1199 cmpMac_t mac; 1200 } cmpTltContActivateCmd_t; 1201 1202 /** TltContActivate command. */ 1203 typedef struct { 1204 cmpTltContActivateCmd_t cmd; 1205 mcSoTltCont_t soTltCont; 1206 } cmpCmdTltContActivate_t; 1207 1208 /** @} */ 1209 1210 /** @defgroup MC_CMP_CMD_TLT_CONT_ACTIVATE_RSP Response 1211 * @{ */ 1212 1213 typedef struct { 1214 mcSoTltCont_t soTltCont; 1215 } cmpTltActRspEdata_t; 1216 1217 typedef struct { 1218 cmpTltActRspEdata_t edata; 1219 uint8_t padding[CMP_ED_PADDING(sizeof(cmpTltActRspEdata_t))]; 1220 } cmpTltActRspEd_t; 1221 1222 typedef struct { 1223 cmpResponseHeader_t rspHeader; 1224 cmpTltActRspEd_t ed; 1225 } cmpTltActRspSdata_t; 1226 1227 typedef struct { 1228 cmpTltActRspSdata_t sdata; 1229 cmpMac_t mac; 1230 } cmpTltContActivateRsp_t; 1231 1232 /** TltContActivate response. */ 1233 typedef struct { 1234 cmpTltContActivateRsp_t rsp; 1235 mcSoTltCont_t soTltCont; 1236 } cmpRspTltContActivate_t; 1237 1238 /** @} */ 1239 1240 /** @} */ 1241 1242 /** @defgroup MC_CMP_CMD_TLT_CONT_REGISTER_ACTIVATE 1243 * @{ */ 1244 1245 /** @defgroup MC_CMP_CMD_TLT_CONT_REGISTER_ACTIVATE_CMD Command 1246 * @{ */ 1247 1248 typedef struct { 1249 mcSymmetricKey_t kSpTltEnc; 1250 } cmpTltRegActMsgEdata_t; 1251 1252 typedef struct { 1253 cmpTltRegActMsgEdata_t edata; 1254 uint8_t padding[CMP_ED_PADDING(sizeof(cmpTltRegActMsgEdata_t))]; 1255 } cmpTltRegActCmdEd_t; 1256 1257 typedef struct { 1258 cmpCommandHeader_t cmdHeader; 1259 mcSpid_t spid; 1260 mcUuid_t uuid; 1261 cmpTltRegActCmdEd_t ed; 1262 } cmpTltRegActCmdSdata_t; 1263 1264 typedef struct { 1265 cmpTltRegActCmdSdata_t sdata; 1266 cmpMac_t mac; 1267 } cmpTltContRegisterActivateCmd_t; 1268 1269 /** TltContRegisterActivate command. */ 1270 typedef struct { 1271 cmpTltContRegisterActivateCmd_t cmd; 1272 } cmpCmdTltContRegisterActivate_t; 1273 1274 /** @} */ 1275 1276 /** @defgroup MC_CMP_CMD_TLT_CONT_REGISTER_ACTIVATE_RSP Response 1277 * @{ */ 1278 1279 typedef struct { 1280 mcSoSpCont_t soSpCont; 1281 mcSoTltCont_t soTltCont; 1282 } cmpTltRegActRspEdata_t; 1283 1284 typedef struct { 1285 cmpTltRegActRspEdata_t edata; 1286 uint8_t padding[CMP_ED_PADDING(sizeof(cmpTltRegActRspEdata_t))]; 1287 } cmpTltRegActRspEd_t; 1288 1289 typedef struct { 1290 cmpResponseHeader_t rspHeader; 1291 cmpTltRegActRspEd_t ed; 1292 } cmpTltRegActRspSdata_t; 1293 1294 typedef struct { 1295 cmpTltRegActRspSdata_t sdata; 1296 cmpMac_t mac; 1297 } cmpTltContRegisterActivateRsp_t; 1298 1299 /** TltContRegisterActivate response. */ 1300 typedef struct { 1301 cmpTltContRegisterActivateRsp_t rsp; 1302 mcSoSpCont_t soSpCont; 1303 mcSoTltCont_t soTltCont; 1304 } cmpRspTltContRegisterActivate_t; 1305 1306 /** @} */ 1307 1308 /** @} */ 1309 1310 /** @defgroup MC_CMP_CMD_TLT_CONT_UNREGISTER 1311 * @{ */ 1312 1313 /** @defgroup MC_CMP_CMD_TLT_CONT_UNREGISTER_CMD Command 1314 * @{ */ 1315 1316 typedef struct { 1317 cmpCommandHeader_t cmdHeader; 1318 mcSpid_t spid; 1319 mcUuid_t uuid; 1320 } cmpTltUnregCmdSdata_t; 1321 1322 typedef struct { 1323 cmpTltUnregCmdSdata_t sdata; 1324 cmpMac_t mac; 1325 } cmpTltContUnregisterCmd_t; 1326 1327 /** TltContUnregister command. */ 1328 typedef struct { 1329 cmpTltContUnregisterCmd_t cmd; 1330 } cmpCmdTltContUnregister_t; 1331 1332 /** @} */ 1333 1334 /** @defgroup MC_CMP_CMD_TLT_CONT_UNREGISTER_RSP Response 1335 * @{ */ 1336 1337 typedef struct { 1338 mcSoSpCont_t soSpCont; 1339 } cmpTltUnregRspEdata_t; 1340 1341 typedef struct { 1342 cmpTltUnregRspEdata_t edata; 1343 uint8_t padding[CMP_ED_PADDING(sizeof(cmpTltUnregRspEdata_t))]; 1344 } cmpTltUnregRspEd_t; 1345 1346 typedef struct { 1347 cmpResponseHeader_t rspHeader; 1348 cmpTltUnregRspEd_t ed; 1349 } cmpTltUnregRspSdata_t; 1350 1351 typedef struct { 1352 cmpTltUnregRspSdata_t sdata; 1353 cmpMac_t mac; 1354 } cmpTltContUnregisterRsp_t; 1355 1356 /** TltContUnregister response. */ 1357 typedef struct { 1358 cmpTltContUnregisterRsp_t rsp; 1359 mcSoSpCont_t soSpCont; 1360 } cmpRspTltContUnregister_t; 1361 1362 /** @} */ 1363 1364 /** @} */ 1365 1366 /** @defgroup MC_CMP_CMD_TLT_CONT_LOCK_BY_SP 1367 * @{ */ 1368 1369 /** @defgroup MC_CMP_CMD_TLT_CONT_LOCK_BY_SP_CMD Command 1370 * @{ */ 1371 1372 typedef struct { 1373 cmpCommandHeader_t cmdHeader; 1374 mcSpid_t spid; 1375 mcUuid_t uuid; 1376 } cmpTltLockBySpCmdSdata_t; 1377 1378 typedef struct { 1379 cmpTltLockBySpCmdSdata_t sdata; 1380 cmpMac_t mac; 1381 } cmpTltContLockBySpCmd_t; 1382 1383 /** TltContLockBySp command. */ 1384 typedef struct { 1385 cmpTltContLockBySpCmd_t cmd; 1386 mcSoTltCont_t soTltCont; 1387 } cmpCmdTltContLockBySp_t; 1388 1389 /** @} */ 1390 1391 /** @defgroup MC_CMP_CMD_TLT_CONT_LOCK_BY_SP_RSP Response 1392 * @{ */ 1393 1394 typedef struct { 1395 mcSoTltCont_t soTltCont; 1396 } cmpTltLockBySpRspEdata_t; 1397 1398 typedef struct { 1399 cmpTltLockBySpRspEdata_t edata; 1400 uint8_t padding[CMP_ED_PADDING(sizeof(cmpTltLockBySpRspEdata_t))]; 1401 } cmpTltLockBySpRspEd_t; 1402 1403 typedef struct { 1404 cmpResponseHeader_t rspHeader; 1405 cmpTltLockBySpRspEd_t ed; 1406 } cmpTltLockBySpRspSdata_t; 1407 1408 typedef struct { 1409 cmpTltLockBySpRspSdata_t sdata; 1410 cmpMac_t mac; 1411 } cmpTltContLockBySpRsp_t; 1412 1413 /** TltContLockBySp response. */ 1414 typedef struct { 1415 cmpTltContLockBySpRsp_t rsp; 1416 mcSoTltCont_t soTltCont; 1417 } cmpRspTltContLockBySp_t; 1418 1419 /** @} */ 1420 1421 /** @} */ 1422 1423 /** @defgroup MC_CMP_CMD_TLT_CONT_UNLOCK_BY_SP 1424 * @{ */ 1425 1426 /** @defgroup MC_CMP_CMD_TLT_CONT_UNLOCK_BY_SP_CMD Command 1427 * @{ */ 1428 1429 typedef struct { 1430 cmpCommandHeader_t cmdHeader; 1431 mcSpid_t spid; 1432 mcUuid_t uuid; 1433 } cmpTltUnlockBySpCmdSdata_t; 1434 1435 typedef struct { 1436 cmpTltUnlockBySpCmdSdata_t sdata; 1437 cmpMac_t mac; 1438 } cmpTltContUnlockBySpCmd_t; 1439 1440 /** TltContUnlockBySp command. */ 1441 typedef struct { 1442 cmpTltContUnlockBySpCmd_t cmd; 1443 mcSoTltCont_t soTltCont; 1444 } cmpCmdTltContUnlockBySp_t; 1445 1446 /** @} */ 1447 1448 /** @defgroup MC_CMP_CMD_TLT_CONT_UNLOCK_BY_SP_RSP Response 1449 * @{ */ 1450 1451 typedef struct { 1452 mcSoTltCont_t soTltCont; 1453 } cmpTltUnlockBySpRspEdata_t; 1454 1455 typedef struct { 1456 cmpTltUnlockBySpRspEdata_t edata; 1457 uint8_t padding[CMP_ED_PADDING(sizeof(cmpTltUnlockBySpRspEdata_t))]; 1458 } cmpTltUnlockBySpRspEd_t; 1459 1460 typedef struct { 1461 cmpResponseHeader_t rspHeader; 1462 cmpTltUnlockBySpRspEd_t ed; 1463 } cmpTltUnlockBySpRspSdata_t; 1464 1465 typedef struct { 1466 cmpTltUnlockBySpRspSdata_t sdata; 1467 cmpMac_t mac; 1468 } cmpTltContUnlockBySpRsp_t; 1469 1470 /** TltContUnlockBySp response. */ 1471 typedef struct { 1472 cmpTltContUnlockBySpRsp_t rsp; 1473 mcSoTltCont_t soTltCont; 1474 } cmpRspTltContUnlockBySp_t; 1475 1476 /** @} */ 1477 1478 /** @} */ 1479 1480 /** @defgroup MC_CMP_CMD_GET_SUID 1481 * @{ */ 1482 1483 /** @defgroup MC_CMP_CMD_GET_SUID_CMD Command 1484 * @{ */ 1485 1486 /** GetSuid command. */ 1487 typedef struct { 1488 cmpCommandHeader_t cmdHeader; 1489 } cmpCmdGetSuid_t; 1490 1491 /** @} */ 1492 1493 /** @defgroup MC_CMP_CMD_GET_SUID_RSP Response 1494 * @{ */ 1495 1496 /** GetSuid response. */ 1497 typedef struct { 1498 cmpResponseHeader_t rspHeader; 1499 mcSuid_t suid; 1500 } cmpRspGetSuid_t; 1501 1502 /** @} */ 1503 1504 /** @} */ 1505 1506 /** @defgroup MC_CMP_CMD_AUTHENTICATE_TERMINATE 1507 * @{ */ 1508 1509 /** @defgroup MC_CMP_CMD_AUTHENTICATE_TERMINATE_CMD Command 1510 * @{ */ 1511 1512 typedef struct { 1513 cmpCommandHeader_t cmdHeader; 1514 } cmpAuthenticateTerminateCmdSdata_t; 1515 1516 typedef struct { 1517 cmpAuthenticateTerminateCmdSdata_t sdata; 1518 cmpMac_t mac; 1519 } cmpAuthenticateTerminateCmd_t; 1520 1521 /** AuthenticateTerminate command. */ 1522 typedef struct { 1523 cmpAuthenticateTerminateCmd_t cmd; 1524 } cmpCmdAuthenticateTerminate_t; 1525 1526 /** @} */ 1527 1528 /** @defgroup MC_CMP_CMD_AUTHENTICATE_TERMINATE_RSP Response 1529 * @{ */ 1530 1531 typedef struct { 1532 cmpResponseHeader_t rspHeader; 1533 } cmpAuthenticateTerminateRspSdata_t; 1534 1535 typedef struct { 1536 cmpAuthenticateTerminateRspSdata_t sdata; 1537 cmpMac_t mac; 1538 } cmpTerminateAutenticateRsp_t; 1539 1540 /** AuthenticateTerminate response. */ 1541 typedef struct { 1542 cmpTerminateAutenticateRsp_t rsp; 1543 } cmpRspAuthenticateTerminate_t; 1544 1545 /** @} */ 1546 1547 /** @} */ 1548 1549 /** @defgroup MC_CMP_CMD_TLT_CONT_PERSONALIZE 1550 * @{ */ 1551 1552 /** @defgroup MC_CMP_CMD_TLT_CONT_PERSONALIZE_CMD Command 1553 * @{ */ 1554 1555 typedef struct { 1556 mcPid_t pid; 1557 mcCoDataCont_t persoData; 1558 } cmpTltContPersonalizeCmdEdata_t; 1559 1560 typedef struct { 1561 cmpTltContPersonalizeCmdEdata_t edata; 1562 uint8_t padding_[CMP_ED_PADDING(sizeof(cmpTltContPersonalizeCmdEdata_t))]; 1563 } cmpTltContPersonalizeCmdEd_t; 1564 1565 typedef struct { 1566 cmpCommandHeader_t cmdHeader; 1567 mcSpid_t spid; 1568 mcUuid_t uuid; 1569 uint32_t edLen; 1570 cmpTltContPersonalizeCmdEd_t ed; 1571 } cmpTltContPersonalizeCmdSdata_t; 1572 1573 typedef struct { 1574 cmpTltContPersonalizeCmdSdata_t sdata; 1575 cmpMac_t mac_; 1576 } cmpTltContPersonalizeCmd_t; 1577 1578 /** TltContPersonalize command. */ 1579 typedef struct { 1580 cmpTltContPersonalizeCmd_t cmd; 1581 mcSoTltCont_t soTltCont_; 1582 } cmpCmdTltContPersonalize_t; 1583 1584 /** @} */ 1585 1586 /** @defgroup MC_CMP_CMD_TLT_CONT_PERSONLIZE_RSP Response 1587 * @{ */ 1588 1589 typedef struct { 1590 mcSoDataCont_t soDataCont; 1591 } cmpTltContPersonalizeRspEdata_t; 1592 1593 typedef struct { 1594 cmpTltContPersonalizeRspEdata_t edata; 1595 uint8_t padding_[CMP_ED_PADDING(sizeof(cmpTltContPersonalizeRspEdata_t))]; 1596 } cmpTltContPersonalizeRspEd_t; 1597 1598 typedef struct { 1599 cmpResponseHeader_t rspHeader; 1600 uint32_t edLen; 1601 cmpTltContPersonalizeRspEd_t ed; 1602 } cmpTltContPersonalizeRspSdata_t; 1603 1604 typedef struct { 1605 cmpTltContPersonalizeRspSdata_t sdata; 1606 cmpMac_t mac_; 1607 } cmpTltContPersonalizeRsp_t; 1608 1609 /** TltContPersonalize response. */ 1610 typedef struct { 1611 cmpTltContPersonalizeRsp_t rsp; 1612 mcSoDataCont_t soDataCont_; 1613 } cmpRspTltContPersonalize_t; 1614 1615 1616 /** @} */ 1617 1618 /** @} */ 1619 1620 1621 #endif // CMP_H_ 1622 1623 /** @} */ 1624 1625