import old mobicore
[GitHub/LineageOS/android_hardware_samsung_slsi_exynos7580.git] / mobicore / common / MobiCore / inc / TlCm / 2.0 / cmp.h
CommitLineData
cd9434cc
T
1/** @addtogroup CMP_2_0
2 * Content Management Protocol 2.0 Definitions.
3 *
4 * The content management protocol (CMP) is based on the trustlet control
5 * interface (TCI) and defines commands/responses with the content management
6 * trustlet (TlCm).
7 *
8 * @{
9 *
10 * @file
11 * CMP 2.0 global definitions.
12 * Various components need access to (sub-)structures defined and used by CMP
13 * 2.0. These common definitions are made available through this header file.
15e8442f
JA
14 *
15 * Copyright © Trustonic Limited 2013.
16 *
17 * All rights reserved.
18 *
19 * Redistribution and use in source and binary forms, with or without
20 * modification, are permitted provided that the following conditions are met:
21 * 1. Redistributions of source code must retain the above copyright notice,
22 * this list of conditions and the following disclaimer.
23 * 2. Redistributions in binary form must reproduce the above copyright notice,
24 * this list of conditions and the following disclaimer in the documentation
25 * and/or other materials provided with the distribution.
26 * 3. Neither the name of the Trustonic Limited nor the names of its
27 * contributors may be used to endorse or promote products derived from this
28 * software without specific prior written permission.
29 *
30 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
31 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
32 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
33 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
34 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
35 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
36 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
37 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
38 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
39 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
40 * POSSIBILITY OF SUCH DAMAGE.
cd9434cc
T
41 */
42
43#ifndef CMP_H_
44#define CMP_H_
45
46#include "TlCm/cmpCommon.h"
47
48/** Key size of encryption algorithm used for secure messaging. */
49#define CMP_MSG_KEY_SIZE 32
50
51/** @defgroup MC_CMP_2_0_CMD_BEGIN_SOC_AUTHENTICATION \
52 MC_CMP_2_0_CMD_BEGIN_SOC_AUTHENTICATION
53 * @{ */
54
55/** @defgroup MC_CMP_2_0_CMD_BEGIN_SOC_AUTHENTICATION_CMD Command_2_0
56 * @{ */
57
58/** BeginSocAuthentication non signed command. */
59typedef struct {
60 /** Command header. */
61 cmpCommandHeader_t cmdHeader;
62} cmpBeginSocAuthenticationCmd_t;
63
64/** BeginSocAuthentication command. */
65typedef struct {
66 /** Command. */
67 cmpBeginSocAuthenticationCmd_t cmd;
68 /** AuthToken container secure object. */
69 mcSoAuthTokenCont_t soAuthTokenCont;
70} cmpCmdBeginSocAuthentication_t;
71
72/** @} */
73
74/** @defgroup MC_CMP_2_0_CMD_BEGIN_SOC_AUTHENTICATION_RSP Response_2_0
75 * @{ */
76
77/** BeginSocAuthentication signed response. */
78typedef struct {
79 /** Response header. */
80 cmpResponseHeader_t rspHeader;
81 /** Suid. */
82 mcSuid_t suid;
83 /** SWd authentication random number. */
84 cmpRnd8_t rnd1;
85} cmpBeginSocAuthenticationRspSdata_t;
86
87/** BeginSocAuthentication signed response and signature. */
88typedef struct {
89 /** Signed response. */
90 cmpBeginSocAuthenticationRspSdata_t sdata;
91 /** Signature. */
92 cmpMac_t mac;
93} cmpBeginSocAuthenticationRsp_t;
94
95/** BeginSocAuthentication response. */
96typedef struct {
97 /** Response. */
98 cmpBeginSocAuthenticationRsp_t rsp;
99} cmpRspBeginSocAuthentication_t;
100
101/** @} */
102
103/** @} */
104
105/** @defgroup MC_CMP_2_0_CMD_BEGIN_ROOT_AUTHENTICATION \
106 MC_CMP_2_0_CMD_BEGIN_ROOT_AUTHENTICATION
107 * @{ */
108
109/** @defgroup MC_CMP_2_0_CMD_BEGIN_ROOT_AUTHENTICATION_CMD Command_2_0
110 * @{ */
111
112/** BeginRootAuthentication non signed command. */
113typedef struct {
114 /** Command header. */
115 cmpCommandHeader_t cmdHeader;
116} cmpBeginRootAuthenticationCmd_t;
117
118/** BeginRootAuthentication command. */
119typedef struct {
120 /** Command. */
121 cmpBeginRootAuthenticationCmd_t cmd;
122 /** Root container secure object. */
123 mcSoRootCont_t soRootCont;
124} cmpCmdBeginRootAuthentication_t;
125
126/** @} */
127
128/** @defgroup MC_CMP_2_0_CMD_BEGIN_ROOT_AUTHENTICATION_RSP Response_2_0
129 * @{ */
130
131/** BeginRootAuthentication signed response. */
132typedef struct {
133 /** Response header. */
134 cmpResponseHeader_t rspHeader;
135 /** Suid. */
136 mcSuid_t suid;
137 /** SWd authentication random number. */
138 cmpRnd8_t rnd1;
139} cmpBeginRootAuthenticationRspSdata_t;
140
141/** BeginRootAuthentication signed response and signature. */
142typedef struct {
143 /** Signed response. */
144 cmpBeginRootAuthenticationRspSdata_t sdata;
145 /** Signature. */
146 cmpMac_t mac;
147} cmpBeginRootAuthenticationRsp_t;
148
149/** BeginRootAuthentication response. */
150typedef struct {
151 /** Response. */
152 cmpBeginRootAuthenticationRsp_t rsp;
153} cmpRspBeginRootAuthentication_t;
154
155/** @} */
156
157/** @} */
158
159/** @defgroup MC_CMP_2_0_CMD_BEGIN_SP_AUTHENTICATION \
160 MC_CMP_2_0_CMD_BEGIN_SP_AUTHENTICATION
161 * @{ */
162
163/** @defgroup MC_CMP_2_0_CMD_BEGIN_SP_AUTHENTICATION_CMD Command_2_0
164 * @{ */
165
166/** BeginSpAuthentication non signed command. */
167typedef struct {
168 /** Command header. */
169 cmpCommandHeader_t cmdHeader;
170 /** Spid. */
171 mcSpid_t spid;
172} cmpBeginSpAuthenticationCmdSdata_t;
173
174/** BeginSpAuthentication non signed command and no signature. */
175typedef struct {
176 /** Non signed command. */
177 cmpBeginSpAuthenticationCmdSdata_t sdata;
178} cmpBeginSpAuthenticationCmd_t;
179
180/** BeginSpAuthentication command. */
181typedef struct {
182 /** Command. */
183 cmpBeginSpAuthenticationCmd_t cmd;
184 /** Root container secure object. */
185 mcSoRootCont_t soRootCont;
186 /** Sp container secure object. */
187 mcSoSpCont_t soSpCont;
188} cmpCmdBeginSpAuthentication_t;
189
190/** @} */
191
192/** @defgroup MC_CMP_2_0_CMD_BEGIN_SP_AUTHENTICATION_RSP Response_2_0
193 * @{ */
194
195/** BeginSpAuthentication signed response. */
196typedef struct {
197 /** Response header. */
198 cmpResponseHeader_t rspHeader;
199 /** Suid. */
200 mcSuid_t suid;
201 /** Spid. */
202 mcSpid_t spid;
203 /** SWd authentication random number. */
204 cmpRnd8_t rnd1;
205} cmpBeginSpAuthenticationRspSdata_t;
206
207/** BeginSpAuthentication signed response and signature. */
208typedef struct {
209 /** Signed response. */
210 cmpBeginSpAuthenticationRspSdata_t sdata;
211 /** Signature. */
212 cmpMac_t mac;
213} cmpBeginSpAuthenticationRsp_t;
214
215/** BeginSpAuthentication response. */
216typedef struct {
217 /** Response. */
218 cmpBeginSpAuthenticationRsp_t rsp;
219} cmpRspBeginSpAuthentication_t;
220
221/** @} */
222
223/** @} */
224
225/** @defgroup MC_CMP_2_0_CMD_AUTHENTICATE MC_CMP_2_0_CMD_AUTHENTICATE
226 * @{ */
227
228/** @defgroup MC_CMP_2_0_CMD_AUTHENTICATE_CMD Command_2_0
229 * @{ */
230
231/** Authenticate encrypted data command. */
232typedef struct {
233 /** Suid. */
234 mcSuid_t suid;
235 /** EntityId. */
236 uint32_t entityId;
237 /** NWd authentication random number. */
238 cmpRnd8_t rnd2;
239 /** SWd authentication random number. */
240 cmpRnd8_t rnd1;
241 /** NWd authentication random seed. */
242 cmpRnd32_t k2;
243} cmpAuthMsgEdata_t;
244
245/** Authenticate encrypted and padded data command. */
246typedef struct {
247 /** Encrypted data. */
248 cmpAuthMsgEdata_t edata;
249 /** Padding. */
250 uint8_t padding[CMP_ED_PADDING(sizeof(cmpAuthMsgEdata_t))];
251} cmpAuthCmdEd_t;
252
253/** Authenticate signed command. */
254typedef struct {
255 /** Command header. */
256 cmpCommandHeader_t cmdHeader;
257 /** Encrypted and padded data. */
258 cmpAuthCmdEd_t ed;
259} cmpAuthCmdSdata_t;
260
261/** Authenticate signed command and signature. */
262typedef struct {
263 /** Signed command. */
264 cmpAuthCmdSdata_t sdata;
265 /** Signature. */
266 cmpMac_t mac;
267} cmpAuthenticateCmd_t;
268
269/** Authenticate command. */
270typedef struct {
271 /** Command. */
272 cmpAuthenticateCmd_t cmd;
273} cmpCmdAuthenticate_t;
274
275/** @} */
276
277/** @defgroup MC_CMP_2_0_CMD_AUTHENTICATE_RSP Response_2_0
278 * @{ */
279
280/** Authenticate encrypted data response. */
281typedef struct {
282 /** Suid. */
283 mcSuid_t suid;
284 /** EntityId. */
285 uint32_t entityId;
286 /** SWd authentication random number. */
287 cmpRnd8_t rnd1;
288 /** NWd authentication random number. */
289 cmpRnd8_t rnd2;
290 /** SWd authentication random seed. */
291 cmpRnd32_t k1;
292} cmpAuthRspEdata_t;
293
294/** Authenticate encrypted and padded data response. */
295typedef struct {
296 /** Encrypted data. */
297 cmpAuthRspEdata_t edata;
298 /** Padding. */
299 uint8_t padding[CMP_ED_PADDING(sizeof(cmpAuthRspEdata_t))];
300} cmpAuthRspEd_t;
301
302/** Authenticate signed response. */
303typedef struct {
304 /** Response header. */
305 cmpResponseHeader_t rspHeader;
306 /** Encrypted and padded data. */
307 cmpAuthRspEd_t ed;
308} cmpAuthRspSdata_t;
309
310/** Authenticate signed response and signature. */
311typedef struct {
312 /** Signed response. */
313 cmpAuthRspSdata_t sdata;
314 /** Signature. */
315 cmpMac_t mac;
316} cmpAuthenticateRsp_t;
317
318/** Authenticate response. */
319typedef struct {
320 /** Response. */
321 cmpAuthenticateRsp_t rsp;
322} cmpRspAuthenticate_t;
323
324/** @} */
325
326/** @} */
327
328/** @defgroup MC_CMP_2_0_CMD_AUTHENTICATE_TERMINATE \
329 MC_CMP_2_0_CMD_AUTHENTICATE_TERMINATE
330 * @{ */
331
332/** @defgroup MC_CMP_2_0_CMD_AUTHENTICATE_TERMINATE_CMD Command_2_0
333 * @{ */
334
335/** AuthenticateTerminate signed command. */
336typedef struct {
337 /** Command header. */
338 cmpCommandHeader_t cmdHeader;
339} cmpAuthenticateTerminateCmdSdata_t;
340
341/** AuthenticateTerminate signed command and signature. */
342typedef struct {
343 /** Signed command. */
344 cmpAuthenticateTerminateCmdSdata_t sdata;
345 /** Signature. */
346 cmpMac_t mac;
347} cmpAuthenticateTerminateCmd_t;
348
349/** AuthenticateTerminate command. */
350typedef struct {
351 /** Command. */
352 cmpAuthenticateTerminateCmd_t cmd;
353} cmpCmdAuthenticateTerminate_t;
354
355/** @} */
356
357/** @defgroup MC_CMP_2_0_CMD_AUTHENTICATE_TERMINATE_RSP Response_2_0
358 * @{ */
359
360/** AuthenticateTerminate signed response. */
361typedef struct {
362 /** Response header. */
363 cmpResponseHeader_t rspHeader;
364} cmpAuthenticateTerminateRspSdata_t;
365
366/** AuthenticateTerminate signed response and signature. */
367typedef struct {
368 /** Signed response. */
369 cmpAuthenticateTerminateRspSdata_t sdata;
370 /** Signature. */
371 cmpMac_t mac;
372} cmpTerminateAutenticateRsp_t;
373
374/** AuthenticateTerminate response. */
375typedef struct {
376 /** Response. */
377 cmpTerminateAutenticateRsp_t rsp;
378} cmpRspAuthenticateTerminate_t;
379
380/** @} */
381
382/** @} */
383
384/** @defgroup MC_CMP_2_0_CMD_ROOT_CONT_REGISTER_ACTIVATE \
385 MC_CMP_2_0_CMD_ROOT_CONT_REGISTER_ACTIVATE
386 * @{ */
387
388/** @defgroup MC_CMP_2_0_CMD_ROOT_CONT_REGISTER_ACTIVATE_CMD Command_2_0
389 * @{ */
390
391/** RootContRegisterActivate encrypted data command. */
392typedef struct {
393 /** Root authentication key. */
394 mcSymmetricKey_t kRootAuth;
395} cmpRootRegActMsgEdata_t;
396
397/** RootContRegisterActivate encrypted and padded data command. */
398typedef struct {
399 /** Encrypted data. */
400 cmpRootRegActMsgEdata_t edata;
401 /** Padding. */
402 uint8_t padding[CMP_ED_PADDING(sizeof(cmpRootRegActMsgEdata_t))];
403} cmpRootRegActCmdEd_t;
404
405/** RootContRegisterActivate signed command. */
406typedef struct {
407 /** Command header. */
408 cmpCommandHeader_t cmdHeader;
409 /** Rootid. */
410 mcRootid_t rootid;
411 /** Encrypted and padded data. */
412 cmpRootRegActCmdEd_t ed;
413} cmpRootRegActCmdSdata_t;
414
415/** RootContRegisterActivate signed command and signature. */
416typedef struct {
417 /** Signed command. */
418 cmpRootRegActCmdSdata_t sdata;
419 /** Signature. */
420 cmpMac_t mac;
421} cmpRootContRegisterActivateCmd_t;
422
423/** RootContRegisterActivate command. */
424typedef struct {
425 /** Command. */
426 cmpRootContRegisterActivateCmd_t cmd;
427} cmpCmdRootContRegisterActivate_t;
428
429/** @} */
430
431/** @defgroup MC_CMP_2_0_CMD_ROOT_CONT_REGISTER_ACTIVATE_RSP Response_2_0
432 * @{ */
433
434/** RootContRegisterActivate encrypted data response. */
435typedef struct {
436 /** Root container secure object. */
437 mcSoRootCont_t soRootCont;
438} cmpRootRegActRspEdata_t;
439
440/** RootContRegisterActivate encrypted and padded data response. */
441typedef struct {
442 /** Encrypted data. */
443 cmpRootRegActRspEdata_t edata;
444 /** Padding. */
445 uint8_t padding[CMP_ED_PADDING(sizeof(cmpRootRegActRspEdata_t))];
446} cmpRootRegActRspEd_t;
447
448/** RootContRegisterActivate signed response. */
449typedef struct {
450 /** Response header. */
451 cmpResponseHeader_t rspHeader;
452 /** Encrypted and padded data. */
453 cmpRootRegActRspEd_t ed;
454} cmpRootRegActRspSdata_t;
455
456/** RootContRegisterActivate signed response and signature. */
457typedef struct {
458 /** Signed response. */
459 cmpRootRegActRspSdata_t sdata;
460 /** Signature. */
461 cmpMac_t mac;
462} cmpRootContRegisterActivateRsp_t;
463
464/** RooContRegisterActivate response. */
465typedef struct {
466 /** Response. */
467 cmpRootContRegisterActivateRsp_t rsp;
468 /** Root container secure object. */
469 mcSoRootCont_t soRootCont;
470} cmpRspRootContRegisterActivate_t;
471
472/** @} */
473
474/** @} */
475
476/** @defgroup MC_CMP_2_0_CMD_ROOT_CONT_UNREGISTER \
477 MC_CMP_2_0_CMD_ROOT_CONT_UNREGISTER
478 * @{ */
479
480/** @defgroup MC_CMP_2_0_CMD_ROOT_CONT_UNREGISTER_CMD Command_2_0
481 * @{ */
482
483/** RootContUnregister encrypted data command. */
484typedef struct {
485 /** Suid. */
486 mcSuid_t suid;
487 /** AuthToken container secure object. */
488 mcSoAuthTokenCont_t soAuthTokenCont;
489} cmpRootUnregMsgEdata_t;
490
491/** RootContUnregister encrypted and padded data command. */
492typedef struct {
493 /** Encrypted data. */
494 cmpRootUnregMsgEdata_t edata;
495 /** Padding. */
496 uint8_t padding[CMP_ED_PADDING(sizeof(cmpRootUnregMsgEdata_t))];
497} cmpRootUnregCmdEd_t;
498
499/** RootContUnregister signed command. */
500typedef struct {
501 /** Command header. */
502 cmpCommandHeader_t cmdHeader;
503 /** Encrypted and padded data. */
504 cmpRootUnregCmdEd_t ed;
505} cmpRootUnregCmdSdata_t;
506
507/** RootContUnregister signed command and signature. */
508typedef struct {
509 /** Signed command. */
510 cmpRootUnregCmdSdata_t sdata;
511 /** Signature. */
512 cmpMac_t mac;
513} cmpRootContUnregisterCmd_t;
514
515/** RootContUnregister command. */
516typedef struct {
517 /** Command. */
518 cmpRootContUnregisterCmd_t cmd;
519} cmpCmdRootContUnregister_t;
520
521/** @} */
522
523/** @defgroup MC_CMP_2_0_CMD_ROOT_CONT_UNREGISTER_RSP Response_2_0
524 * @{ */
525
526/** RootContUnregister encrypted data response. */
527typedef struct {
528 /** Suid. */
529 mcSuid_t suid;
530} cmpRootUnregRspEdata_t;
531
532/** RootContUnregister encrypted and padded data response. */
533typedef struct {
534 /** Encrypted data. */
535 cmpRootUnregRspEdata_t edata;
536 /** Padding. */
537 uint8_t padding[CMP_ED_PADDING(sizeof(cmpRootUnregRspEdata_t))];
538} cmpRootUnregRspEd_t;
539
540/** RootContUnregister signed response. */
541typedef struct {
542 /** Response header. */
543 cmpResponseHeader_t rspHeader;
544 /** Encrypted and padded data. */
545 cmpRootUnregRspEd_t ed;
546} cmpRootUnregRspSdata_t;
547
548/** RootContUnregister signed response and signature. */
549typedef struct {
550 /** Signed response. */
551 cmpRootUnregRspSdata_t sdata;
552 /** Signature. */
553 cmpMac_t mac;
554} cmpRootContUnregisterRsp_t;
555
556/** RootContUnregister response. */
557typedef struct {
558 /** Response. */
559 cmpRootContUnregisterRsp_t rsp;
560 /** AuthToken container secure object. */
561 mcSoAuthTokenCont_t soAuthTokenCont;
562} cmpRspRootContUnregister_t;
563
564/** @} */
565
566/** @} */
567
568/** @defgroup MC_CMP_2_0_CMD_ROOT_CONT_LOCK_BY_ROOT \
569 MC_CMP_2_0_CMD_ROOT_CONT_LOCK_BY_ROOT
570 * @{ */
571
572/** @defgroup MC_CMP_2_0_CMD_ROOT_CONT_LOCK_BY_ROOT_CMD Command_2_0
573 * @{ */
574
575/** RootContLockByRoot signed command. */
576typedef struct {
577 /** Command header. */
578 cmpCommandHeader_t cmdHeader;
579} cmpRootLockByRootCmdSdata_t;
580
581/** RootContLockByRoot signed command and signature. */
582typedef struct {
583 /** Signed command. */
584 cmpRootLockByRootCmdSdata_t sdata;
585 /** Signature. */
586 cmpMac_t mac;
587} cmpRootContLockByRootCmd_t;
588
589/** RootContLockByRoot command. */
590typedef struct {
591 /** Command. */
592 cmpRootContLockByRootCmd_t cmd;
593} cmpCmdRootContLockByRoot_t;
594
595/** @} */
596
597/** @defgroup MC_CMP_2_0_CMD_ROOT_CONT_LOCK_BY_ROOT_RSP Response_2_0
598 * @{ */
599
600/** RootContLockByRoot encrypted data response. */
601typedef struct {
602 /** Root container secure object. */
603 mcSoRootCont_t soRootCont;
604} cmpRootLockByRootRspEdata_t;
605
606/** RootContLockByRoot encrypted and padded data response. */
607typedef struct {
608 /** Encrypted data. */
609 cmpRootLockByRootRspEdata_t edata;
610 /** Padding. */
611 uint8_t padding[CMP_ED_PADDING(sizeof(cmpRootLockByRootRspEdata_t))];
612} cmpRootLockByRootRspEd_t;
613
614/** RootContLockByRoot signed response. */
615typedef struct {
616 /** Response header. */
617 cmpResponseHeader_t rspHeader;
618 /** Encrypted and padded data. */
619 cmpRootLockByRootRspEd_t ed;
620} cmpRootLockByRootRspSdata_t;
621
622/** RootContLockByRoot signed response and signature. */
623typedef struct {
624 /** Signed response. */
625 cmpRootLockByRootRspSdata_t sdata;
626 /** Signature. */
627 cmpMac_t mac;
628} cmpRootContLockByRootRsp_t;
629
630/** RootContLockByRoot response. */
631typedef struct {
632 /** Response. */
633 cmpRootContLockByRootRsp_t rsp;
634 /** Root container secure object. */
635 mcSoRootCont_t soRootCont;
636} cmpRspRootContLockByRoot_t;
637
638/** @} */
639
640/** @} */
641
642/** @defgroup MC_CMP_2_0_CMD_ROOT_CONT_UNLOCK_BY_ROOT \
643 MC_CMP_2_0_CMD_ROOT_CONT_UNLOCK_BY_ROOT
644 * @{ */
645
646/** @defgroup MC_CMP_2_0_CMD_ROOT_CONT_UNLOCK_BY_ROOT_CMD Command_2_0
647 * @{ */
648
649/** RootContUnlockByRoot signed command. */
650typedef struct {
651 /** Command header. */
652 cmpCommandHeader_t cmdHeader;
653} cmpRootUnlockByRootCmdSdata_t;
654
655/** RootContUnlockByRoot signed command and signature. */
656typedef struct {
657 /** Signed command. */
658 cmpRootUnlockByRootCmdSdata_t sdata;
659 /** Signature. */
660 cmpMac_t mac;
661} cmpRootContUnlockByRootCmd_t;
662
663/** RootContUnlockByRoot command. */
664typedef struct {
665 /** Command. */
666 cmpRootContUnlockByRootCmd_t cmd;
667} cmpCmdRootContUnlockByRoot_t;
668
669/** @} */
670
671/** @defgroup MC_CMP_2_0_CMD_ROOT_CONT_UNLOCK_BY_ROOT_RSP Response_2_0
672 * @{ */
673
674/** RootContUnlockByRoot encrypted data response. */
675typedef struct {
676 /** Root container secure object. */
677 mcSoRootCont_t soRootCont;
678} cmpRootUnlockByRootRspEdata_t;
679
680/** RootContUnlockByRoot encrypted and padded data response. */
681typedef struct {
682 /** Encrypted data. */
683 cmpRootUnlockByRootRspEdata_t edata;
684 /** Padding. */
685 uint8_t padding[CMP_ED_PADDING(sizeof(cmpRootUnlockByRootRspEdata_t))];
686} cmpRootUnlockByRootRspEd_t;
687
688/** RootContUnlockByRoot signed response. */
689typedef struct {
690 /** Response header. */
691 cmpResponseHeader_t rspHeader;
692 /** Encrypted and padded data. */
693 cmpRootUnlockByRootRspEd_t ed;
694} cmpRootUnlockByRootRspSdata_t;
695
696/** RootContUnlockByRoot signed response and signature. */
697typedef struct {
698 /** Signed response. */
699 cmpRootUnlockByRootRspSdata_t sdata;
700 /** Signature. */
701 cmpMac_t mac;
702} cmpRootContUnlockByRootRsp_t;
703
704/** RootContUnlockByRoot response. */
705typedef struct {
706 /** Response. */
707 cmpRootContUnlockByRootRsp_t rsp;
708 /** Root container secure object. */
709 mcSoRootCont_t soRootCont;
710} cmpRspRootContUnlockByRoot_t;
711
712/** @} */
713
714/** @} */
715
716/** @defgroup MC_CMP_2_0_CMD_SP_CONT_REGISTER_ACTIVATE \
717 MC_CMP_2_0_CMD_SP_CONT_REGISTER_ACTIVATE
718 * @{ */
719
720/** @defgroup MC_CMP_2_0_CMD_SP_CONT_REGISTER_ACTIVATE_CMD Command_2_0
721 * @{ */
722
723/** SpContRegisterActivate encrypted data command. */
724typedef struct {
725 /** Sp authentication key. */
726 mcSymmetricKey_t kSpAuth;
727} cmpSpRegActMsgEdata_t;
728
729/** SpContRegisterActivate encrypted and padded data command. */
730typedef struct {
731 /** Encrypted data. */
732 cmpSpRegActMsgEdata_t edata;
733 /** Padding. */
734 uint8_t padding[CMP_ED_PADDING(sizeof(cmpSpRegActMsgEdata_t))];
735} cmpSpRegActCmdEd_t;
736
737/** SpContRegisterActivate signed command. */
738typedef struct {
739 /** Command header. */
740 cmpCommandHeader_t cmdHeader;
741 mcSpid_t spid;
742 /** Encrypted and padded data. */
743 cmpSpRegActCmdEd_t ed;
744} cmpSpRegActCmdSdata_t;
745
746/** SpContRegisterActivate signed command and signature. */
747typedef struct {
748 /** Signed command. */
749 cmpSpRegActCmdSdata_t sdata;
750 /** Signature. */
751 cmpMac_t mac;
752} cmpSpContRegisterActivateCmd_t;
753
754/** SpContRegisterActivate command. */
755typedef struct {
756 /** Command. */
757 cmpSpContRegisterActivateCmd_t cmd;
758} cmpCmdSpContRegisterActivate_t;
759
760/** @} */
761
762/** @defgroup MC_CMP_2_0_CMD_SP_CONT_REGISTER_ACTIVATE_RSP Response_2_0
763 * @{ */
764
765/** SpContRegisterActivate encrypted data response. */
766typedef struct {
767 /** Root container secure object. */
768 mcSoRootCont_t soRootCont;
769 /** Sp container secure object. */
770 mcSoSpCont_t soSpCont;
771} cmpSpRegActRspEdata_t;
772
773/** SpContRegisterActivate encrypted and padded data response. */
774typedef struct {
775 /** Encrypted data. */
776 cmpSpRegActRspEdata_t edata;
777 /** Padding. */
778 uint8_t padding[CMP_ED_PADDING(sizeof(cmpSpRegActRspEdata_t))];
779} cmpSpRegActRspEd_t;
780
781/** SpContRegisterActivate signed response. */
782typedef struct {
783 /** Response header. */
784 cmpResponseHeader_t rspHeader;
785 /** Encrypted and padded data. */
786 cmpSpRegActRspEd_t ed;
787} cmpSpRegActRspSdata_t;
788
789/** SpContRegisterActivate signed response and signature. */
790typedef struct {
791 /** Signed response. */
792 cmpSpRegActRspSdata_t sdata;
793 /** Signature. */
794 cmpMac_t mac;
795} cmpSpContRegisterActivateRsp_t;
796
797/** SpContRegisterActivate response. */
798typedef struct {
799 /** Response. */
800 cmpSpContRegisterActivateRsp_t rsp;
801 /** Root container secure object. */
802 mcSoRootCont_t soRootCont;
803 /** Sp container secure object. */
804 mcSoSpCont_t soSpCont;
805} cmpRspSpContRegisterActivate_t;
806
807/** @} */
808
809/** @} */
810
811/** @defgroup MC_CMP_2_0_CMD_SP_CONT_UNREGISTER \
812 MC_CMP_2_0_CMD_SP_CONT_UNREGISTER
813 * @{ */
814
815/** @defgroup MC_CMP_2_0_CMD_SP_CONT_UNREGISTER_CMD Command_2_0
816 * @{ */
817
818/** SpContUnregister signed response. */
819typedef struct {
820 /** Command header. */
821 cmpCommandHeader_t cmdHeader;
822 /** Spid. */
823 mcSpid_t spid;
824} cmpSpContUnregCmdSdata_t;
825
826/** SpContUnregister signed command and signature. */
827typedef struct {
828 /** Signed command. */
829 cmpSpContUnregCmdSdata_t sdata;
830 /** Signature. */
831 cmpMac_t mac;
832} cmpSpContUnregisterCmd_t;
833
834/** SpContUnregister command. */
835typedef struct {
836 /** Command. */
837 cmpSpContUnregisterCmd_t cmd;
838} cmpCmdSpContUnregister_t;
839
840/** @} */
841
842/** @defgroup MC_CMP_2_0_CMD_SP_CONT_UNREGISTER_RSP Response_2_0
843 * @{ */
844
845/** SpContUnregister encrypted data response. */
846typedef struct {
847 /** Root container secure object. */
848 mcSoRootCont_t soRootCont;
849} cmpSpUnregRspEdata_t;
850
851/** SpContUnregister encrypted and padded data response. */
852typedef struct {
853 /** Encrypted data. */
854 cmpSpUnregRspEdata_t edata;
855 /** Padding. */
856 uint8_t padding[CMP_ED_PADDING(sizeof(cmpSpUnregRspEdata_t))];
857} cmpSpUnregRspEd_t;
858
859/** SpContUnregister signed response. */
860typedef struct {
861 /** Response header. */
862 cmpResponseHeader_t rspHeader;
863 /** Encrypted and padded data. */
864 cmpSpUnregRspEd_t ed;
865} cmpSpContUnregRspSdata_t;
866
867/** SpContUnregister signed response and signature. */
868typedef struct {
869 /** Signed response. */
870 cmpSpContUnregRspSdata_t sdata;
871 /** Signature. */
872 cmpMac_t mac;
873} cmpSpContUnregisterRsp_t;
874
875/** SpContUnregister response. */
876typedef struct {
877 /** Response. */
878 cmpSpContUnregisterRsp_t rsp;
879 /** Root container secure object. */
880 mcSoRootCont_t soRootCont;
881} cmpRspSpContUnregister_t;
882
883/** @} */
884
885/** @} */
886
887/** @defgroup MC_CMP_2_0_CMD_SP_CONT_REGISTER \
888 MC_CMP_2_0_CMD_SP_CONT_REGISTER
889 * @{ */
890
891/** @defgroup MC_CMP_2_0_CMD_SP_CONT_REGISTER_CMD Command_2_0
892 * @{ */
893
894/** SpContRegister encrypted data command. */
895typedef struct {
896 /** Sp authentication key. */
897 mcSymmetricKey_t kSpAuth;
898} cmpSpRegisterMsgEdata_t;
899
900/** SpContRegister encrypted and padded data command. */
901typedef struct {
902 /** Encrypted data. */
903 cmpSpRegisterMsgEdata_t edata;
904 /** Padding. */
905 uint8_t padding[CMP_ED_PADDING(sizeof(cmpSpRegisterMsgEdata_t))];
906} cmpSpRegisterCmdEd_t;
907
908/** SpContRegister signed command. */
909typedef struct {
910 /** Command header. */
911 cmpCommandHeader_t cmdHeader;
912 /** Spid. */
913 mcSpid_t spid;
914 /** Encrypted and padded data. */
915 cmpSpRegisterCmdEd_t ed;
916} cmpSpRegisterCmdSdata_t;
917
918/** SpContRegister signed command and signature. */
919typedef struct {
920 /** Signed command. */
921 cmpSpRegisterCmdSdata_t sdata;
922 /** Signature. */
923 cmpMac_t mac;
924} cmpSpContRegisterCmd_t;
925
926/** SpContRegister command. */
927typedef struct {
928 /** Command. */
929 cmpSpContRegisterCmd_t cmd;
930} cmpCmdSpContRegister_t;
931
932/** @} */
933
934/** @defgroup MC_CMP_2_0_CMD_SP_CONT_REGISTER_RSP Response_2_0
935 * @{ */
936
937/** SpContRegister encrypted data response. */
938typedef struct {
939 /** Root container secure object. */
940 mcSoRootCont_t soRootCont;
941 /** Sp container secure object. */
942 mcSoSpCont_t soSpCont;
943} cmpSpRegisterRspEdata_t;
944
945/** SpContRegister encrypted and padded data response. */
946typedef struct {
947 /** Encrypted data. */
948 cmpSpRegisterRspEdata_t edata;
949 /** Padding. */
950 uint8_t padding[CMP_ED_PADDING(sizeof(cmpSpRegisterRspEdata_t))];
951} cmpSpRegisterRspEd_t;
952
953/** SpContRegister signed response. */
954typedef struct {
955 /** Response header. */
956 cmpResponseHeader_t rspHeader;
957 /** Encrypted and padded data. */
958 cmpSpRegisterRspEd_t ed;
959} cmpSpRegisterRspSdata_t;
960
961/** SpContRegister signed response and signature. */
962typedef struct {
963 cmpSpRegisterRspSdata_t sdata;
964 /** Signature. */
965 cmpMac_t mac;
966} cmpSpContRegisterRsp_t;
967
968/** SpContRegister response. */
969typedef struct {
970 /** Response. */
971 cmpSpContRegisterRsp_t rsp;
972 /** Root container secure object. */
973 mcSoRootCont_t soRootCont;
974 /** Sp container secure object. */
975 mcSoSpCont_t soSpCont;
976} cmpRspSpContRegister_t;
977
978/** @} */
979
980/** @} */
981
982/** @defgroup MC_CMP_2_0_CMD_SP_CONT_LOCK_BY_ROOT \
983 MC_CMP_2_0_CMD_SP_CONT_LOCK_BY_ROOT
984 * @{ */
985
986/** @defgroup MC_CMP_2_0_CMD_SP_CONT_LOCK_BY_ROOT_CMD Command_2_0
987 * @{ */
988
989/** SpContLockByRoot signed command. */
990typedef struct {
991 /** Command header. */
992 cmpCommandHeader_t cmdHeader;
993 /** Spid. */
994 mcSpid_t spid;
995} cmpSpLockByRootCmdSdata_t;
996
997/** SpContLockByRoot signed command and signature. */
998typedef struct {
999 /** Signed command. */
1000 cmpSpLockByRootCmdSdata_t sdata;
1001 /** Signature. */
1002 cmpMac_t mac;
1003} cmpSpContLockByRootCmd_t;
1004
1005/** SpContLockByRoot command. */
1006typedef struct {
1007 /** Command. */
1008 cmpSpContLockByRootCmd_t cmd;
1009 /** Sp container secure object. */
1010 mcSoSpCont_t soSpCont;
1011} cmpCmdSpContLockByRoot_t;
1012
1013/** @} */
1014
1015/** @defgroup MC_CMP_2_0_CMD_SP_CONT_LOCK_BY_ROOT_RSP Response_2_0
1016 * @{ */
1017
1018/** SpContLockByRoot encrypted data response. */
1019typedef struct {
1020 /** Sp container secure object. */
1021 mcSoSpCont_t soSpCont;
1022} cmpSpLockByRootRspEdata_t;
1023
1024/** SpContLockByRoot encrypted and padded data response. */
1025typedef struct {
1026 /** Encrypted data. */
1027 cmpSpLockByRootRspEdata_t edata;
1028 /** Padding. */
1029 uint8_t padding[CMP_ED_PADDING(sizeof(cmpSpLockByRootRspEdata_t))];
1030} cmpSpLockByRootRspEd_t;
1031
1032/** SpContLockByRoot signed response. */
1033typedef struct {
1034 /** Response header. */
1035 cmpResponseHeader_t rspHeader;
1036 /** Encrypted and padded data. */
1037 cmpSpLockByRootRspEd_t ed;
1038} cmpSpLockByRootRspSdata_t;
1039
1040/** SpContLockByRoot signed response and signature. */
1041typedef struct {
1042 /** Signed response. */
1043 cmpSpLockByRootRspSdata_t sdata;
1044 /** Signature. */
1045 cmpMac_t mac;
1046} cmpSpContLockByRootRsp_t;
1047
1048/** SpContLockByRoot response. */
1049typedef struct {
1050 /** Response. */
1051 cmpSpContLockByRootRsp_t rsp;
1052 /** Sp container secure object. */
1053 mcSoSpCont_t soSpCont;
1054} cmpRspSpContLockByRoot_t;
1055
1056/** @} */
1057
1058/** @} */
1059
1060/** @defgroup MC_CMP_2_0_CMD_SP_CONT_UNLOCK_BY_ROOT \
1061 MC_CMP_2_0_CMD_SP_CONT_UNLOCK_BY_ROOT
1062 * @{ */
1063
1064/** @defgroup MC_CMP_2_0_CMD_SP_CONT_UNLOCK_BY_ROOT_CMD Command_2_0
1065 * @{ */
1066
1067/** SpContUnlockByRoot signed command. */
1068typedef struct {
1069 /** Command header. */
1070 cmpCommandHeader_t cmdHeader;
1071 /** Spid. */
1072 mcSpid_t spid;
1073} cmpSpUnlockByRootCmdSdata_t;
1074
1075/** SpContUnlockByRoot signed command and signature. */
1076typedef struct {
1077 /** Signed command. */
1078 cmpSpUnlockByRootCmdSdata_t sdata;
1079 /** Signature. */
1080 cmpMac_t mac;
1081} cmpSpContUnlockByRootCmd_t;
1082
1083/** SpContUnlockByRoot command. */
1084typedef struct {
1085 /** Command. */
1086 cmpSpContUnlockByRootCmd_t cmd;
1087 /** Sp container secure object. */
1088 mcSoSpCont_t soSpCont;
1089} cmpCmdSpContUnlockByRoot_t;
1090
1091/** @} */
1092
1093/** @defgroup MC_CMP_2_0_CMD_SP_CONT_UNLOCK_BY_ROOT_RSP Response_2_0
1094 * @{ */
1095
1096/** SpContUnlockByRoot encrypted data response. */
1097typedef struct {
1098 /** Sp container secure object. */
1099 mcSoSpCont_t soSpCont;
1100} cmpSpUnlockByRootRspEdata_t;
1101
1102/** SpContUnlockByRoot encrypted and padded data response. */
1103typedef struct {
1104 /** Encrypted data. */
1105 cmpSpUnlockByRootRspEdata_t edata;
1106 /** Padding. */
1107 uint8_t padding[CMP_ED_PADDING(sizeof(cmpSpUnlockByRootRspEdata_t))];
1108} cmpSpUnlockByRootRspEd_t;
1109
1110/** SpContUnlockByRoot signed response. */
1111typedef struct {
1112 /** Response header. */
1113 cmpResponseHeader_t rspHeader;
1114 /** Encrypted and padded data. */
1115 cmpSpUnlockByRootRspEd_t ed;
1116} cmpSpUnlockByRootRspSdata_t;
1117
1118/** SpContUnlockByRoot signed response and signature. */
1119typedef struct {
1120 /** Signed response. */
1121 cmpSpUnlockByRootRspSdata_t sdata;
1122 /** Signature. */
1123 cmpMac_t mac;
1124} cmpSpContUnlockByRootRsp_t;
1125
1126/** SpContUnlockByRoot response. */
1127typedef struct {
1128 /** Response. */
1129 cmpSpContUnlockByRootRsp_t rsp;
1130 /** Sp container secure object. */
1131 mcSoSpCont_t soSpCont;
1132} cmpRspSpContUnlockByRoot_t;
1133
1134/** @} */
1135
1136/** @} */
1137
1138/** @defgroup MC_CMP_2_0_CMD_SP_CONT_ACTIVATE \
1139 MC_CMP_2_0_CMD_SP_CONT_ACTIVATE
1140 * @{ */
1141
1142/** @defgroup MC_CMP_2_0_CMD_SP_CONT_ACTIVATE_CMD Command_2_0
1143 * @{ */
1144
1145/** SpContActivate encrypted data command. */
1146typedef struct {
1147 /** Sp authentication key. */
1148 mcSymmetricKey_t kSpAuth;
1149} cmpSpActivateMsgEdata_t;
1150
1151/** SpContActivate encrypted and padded data command. */
1152typedef struct {
1153 /** Encrypted data. */
1154 cmpSpActivateMsgEdata_t edata;
1155 /** Padding. */
1156 uint8_t padding[CMP_ED_PADDING(sizeof(cmpSpActivateMsgEdata_t))];
1157} cmpSpActivateCmdEd_t;
1158
1159/** SpContActivate signed command. */
1160typedef struct {
1161 /** Command header. */
1162 cmpCommandHeader_t cmdHeader;
1163 /** Spid. */
1164 mcSpid_t spid;
1165 /** Encrypted and padded data. */
1166 cmpSpActivateCmdEd_t ed;
1167} cmpSpActivateCmdSdata_t;
1168
1169/** SpContActivate signed command and signature. */
1170typedef struct {
1171 /** Signed command. */
1172 cmpSpActivateCmdSdata_t sdata;
1173 /** Signature. */
1174 cmpMac_t mac;
1175} cmpSpContActivateCmd_t;
1176
1177/** SpContActivate command. */
1178typedef struct {
1179 /** Command. */
1180 cmpSpContActivateCmd_t cmd;
1181} cmpCmdSpContActivate_t;
1182
1183/** @} */
1184
1185/** @defgroup MC_CMP_2_0_CMD_SP_CONT_ACTIVATE_RSP Response_2_0
1186 * @{ */
1187
1188/** SpContActivate encrypted data response. */
1189typedef struct {
1190 /** Sp container secure object. */
1191 mcSoSpCont_t soSpCont;
1192} cmpSpActivateRspEdata_t;
1193
1194/** SpContActivate encrypted and padded data response. */
1195typedef struct {
1196 /** Encrypted data. */
1197 cmpSpActivateRspEdata_t edata;
1198 /** Padding. */
1199 uint8_t padding[CMP_ED_PADDING(sizeof(cmpSpActivateRspEdata_t))];
1200} cmpSpActivateRspEd_t;
1201
1202/** SpContActivate signed response. */
1203typedef struct {
1204 /** Response header. */
1205 cmpResponseHeader_t rspHeader;
1206 /** Encrypted and padded data. */
1207 cmpSpActivateRspEd_t ed;
1208} cmpSpActivateRspSdata_t;
1209
1210/** SpContActivate signed response and signature. */
1211typedef struct {
1212 /** Signed response. */
1213 cmpSpActivateRspSdata_t sdata;
1214 /** Signature. */
1215 cmpMac_t mac;
1216} cmpSpContActivateRsp_t;
1217
1218/** SpContActivate response. */
1219typedef struct {
1220 /** Response. */
1221 cmpSpContActivateRsp_t rsp;
1222 /** Sp container secure object. */
1223 mcSoSpCont_t soSpCont;
1224} cmpRspSpContActivate_t;
1225
1226/** @} */
1227
1228/** @} */
1229
1230/** @defgroup MC_CMP_2_0_CMD_SP_CONT_LOCK_BY_SP \
1231 MC_CMP_2_0_CMD_SP_CONT_LOCK_BY_SP
1232 * @{ */
1233
1234/** @defgroup MC_CMP_2_0_CMD_SP_CONT_LOCK_BY_SP_CMD Command_2_0
1235 * @{ */
1236
1237/** SpContLockBySp signed command. */
1238typedef struct {
1239 /** Command header. */
1240 cmpCommandHeader_t cmdHeader;
1241 /** Spid. */
1242 mcSpid_t spid;
1243} cmpSpLockBySpCmdSdata_t;
1244
1245/** SpContLockBySp signed command and signature. */
1246typedef struct {
1247 /** Signed command. */
1248 cmpSpLockBySpCmdSdata_t sdata;
1249 /** Signature. */
1250 cmpMac_t mac;
1251} cmpSpContLockBySpCmd_t;
1252
1253/** SpContLockBySp command. */
1254typedef struct {
1255 /** Command. */
1256 cmpSpContLockBySpCmd_t cmd;
1257} cmpCmdSpContLockBySp_t;
1258
1259/** @} */
1260
1261/** @defgroup MC_CMP_2_0_CMD_SP_CONT_LOCK_BY_SP_RSP Response_2_0
1262 * @{ */
1263
1264/** SpContLockBySp encrypted data response. */
1265typedef struct {
1266 /** Sp container secure object. */
1267 mcSoSpCont_t soSpCont;
1268} cmpSpLockBySpRspEdata_t;
1269
1270/** SpContLockBySp encrypted and padded data command. */
1271typedef struct {
1272 /** Encrypted data. */
1273 cmpSpLockBySpRspEdata_t edata;
1274 /** Padding. */
1275 uint8_t padding[CMP_ED_PADDING(sizeof(cmpSpLockBySpRspEdata_t))];
1276} cmpSpLockBySpRspEd_t;
1277
1278/** SpContLockBySp signed response. */
1279typedef struct {
1280 /** Response header. */
1281 cmpResponseHeader_t rspHeader;
1282 /** Encrypted and padded data. */
1283 cmpSpLockBySpRspEd_t ed;
1284} cmpSpLockBySpRspSdata_t;
1285
1286/** SpContLockBySp signed response and signature. */
1287typedef struct {
1288 /** Signed response. */
1289 cmpSpLockBySpRspSdata_t sdata;
1290 /** Signature. */
1291 cmpMac_t mac;
1292} cmpSpContLockBySpRsp_t;
1293
1294/** SpContLockBySp response. */
1295typedef struct {
1296 /** Response. */
1297 cmpSpContLockBySpRsp_t rsp;
1298 /** Sp container secure object. */
1299 mcSoSpCont_t soSpCont;
1300} cmpRspSpContLockBySp_t;
1301
1302/** @} */
1303
1304/** @} */
1305
1306/** @defgroup MC_CMP_2_0_CMD_SP_CONT_UNLOCK_BY_SP \
1307 MC_CMP_2_0_CMD_SP_CONT_UNLOCK_BY_SP
1308 * @{ */
1309
1310/** @defgroup MC_CMP_2_0_CMD_SP_CONT_UNLOCK_BY_SP_CMD Command_2_0
1311 * @{ */
1312
1313/** SpContUnlockBySp signed command. */
1314typedef struct {
1315 /** Command header. */
1316 cmpCommandHeader_t cmdHeader;
1317 /** Spid. */
1318 mcSpid_t spid;
1319} cmpSpUnlockBySpCmdSdata_t;
1320
1321/** SpContUnlockBySp signed command and signature. */
1322typedef struct {
1323 /** Signed command. */
1324 cmpSpUnlockBySpCmdSdata_t sdata;
1325 /** Signature. */
1326 cmpMac_t mac;
1327} cmpSpContUnlockBySpCmd_t;
1328
1329/** SpContUnlockBySp command. */
1330typedef struct {
1331 /** Command. */
1332 cmpSpContUnlockBySpCmd_t cmd;
1333} cmpCmdSpContUnlockBySp_t;
1334
1335/** @} */
1336
1337/** @defgroup MC_CMP_2_0_CMD_SP_CONT_UNLOCK_BY_SP_RSP Response_2_0
1338 * @{ */
1339
1340/** SpContUnlockBySp encrypted data response. */
1341typedef struct {
1342 /** Sp container secure object. */
1343 mcSoSpCont_t soSpCont;
1344} cmpSpUnlockBySpRspEdata_t;
1345
1346/** SpContUnlockBySp encrypted and padded data command. */
1347typedef struct {
1348 /** Encrypted data. */
1349 cmpSpUnlockBySpRspEdata_t edata;
1350 /** Padding. */
1351 uint8_t padding[CMP_ED_PADDING(sizeof(cmpSpUnlockBySpRspEdata_t))];
1352} cmpSpUnlockBySpRspEd_t;
1353
1354/** SpContUnlockBySp signed response. */
1355typedef struct {
1356 /** Response header. */
1357 cmpResponseHeader_t rspHeader;
1358 /** Encrypted and padded data. */
1359 cmpSpUnlockBySpRspEd_t ed;
1360} cmpSpUnlockBySpRspSdata_t;
1361
1362/** SpContUnlockBySp signed response and signature. */
1363typedef struct {
1364 /** Signed response. */
1365 cmpSpUnlockBySpRspSdata_t sdata;
1366 /** Signature. */
1367 cmpMac_t mac;
1368} cmpSpContUnlockBySpRsp_t;
1369
1370/** SpContUnlockBySp response. */
1371typedef struct {
1372 /** Response. */
1373 cmpSpContUnlockBySpRsp_t rsp;
1374 /** Sp container secure object. */
1375 mcSoSpCont_t soSpCont;
1376} cmpRspSpContUnlockBySp_t;
1377
1378/** @} */
1379
1380/** @} */
1381
1382/** @defgroup MC_CMP_2_0_CMD_TLT_CONT_REGISTER_ACTIVATE \
1383 MC_CMP_2_0_CMD_TLT_CONT_REGISTER_ACTIVATE
1384 * @{ */
1385
1386/** @defgroup MC_CMP_2_0_CMD_TLT_CONT_REGISTER_ACTIVATE_CMD Command_2_0
1387 * @{ */
1388
1389/** TltContRegisterActivate encrypted data command. */
1390typedef struct {
1391 /** Tlt authentication key. */
1392 mcSymmetricKey_t kSpTltEnc;
1393} cmpTltRegActMsgEdata_t;
1394
1395/** TltContRegisterActivate encrypted and padded data command. */
1396typedef struct {
1397 /** Encrypted data. */
1398 cmpTltRegActMsgEdata_t edata;
1399 /** Padding. */
1400 uint8_t padding[CMP_ED_PADDING(sizeof(cmpTltRegActMsgEdata_t))];
1401} cmpTltRegActCmdEd_t;
1402
1403/** TltContRegisterActivate signed command. */
1404typedef struct {
1405 /** Command header. */
1406 cmpCommandHeader_t cmdHeader;
1407 /** Spid. */
1408 mcSpid_t spid;
1409 /** Uuid. */
1410 mcUuid_t uuid;
1411 /** Encrypted and padded data. */
1412 cmpTltRegActCmdEd_t ed;
1413} cmpTltRegActCmdSdata_t;
1414
1415/** TltContRegisterActivate signed command and signature. */
1416typedef struct {
1417 /** Signed command. */
1418 cmpTltRegActCmdSdata_t sdata;
1419 /** Signature. */
1420 cmpMac_t mac;
1421} cmpTltContRegisterActivateCmd_t;
1422
1423/** TltContRegisterActivate command. */
1424typedef struct {
1425 /** Command. */
1426 cmpTltContRegisterActivateCmd_t cmd;
1427} cmpCmdTltContRegisterActivate_t;
1428
1429/** @} */
1430
1431/** @defgroup MC_CMP_2_0_CMD_TLT_CONT_REGISTER_ACTIVATE_RSP Response_2_0
1432 * @{ */
1433
1434/** TltContRegisterActivate encrypted data response. */
1435typedef struct {
1436 /** Sp container secure object. */
1437 mcSoSpCont_t soSpCont;
1438 /** Tlt container secure object. */
1439 mcSoTltCont_2_0_t soTltCont;
1440} cmpTltRegActRspEdata_t;
1441
1442/** TltContRegisterActivate encrypted and padded data response. */
1443typedef struct {
1444 /** Encrypted data. */
1445 cmpTltRegActRspEdata_t edata;
1446 /** Padding. */
1447 uint8_t padding[CMP_ED_PADDING(sizeof(cmpTltRegActRspEdata_t))];
1448} cmpTltRegActRspEd_t;
1449
1450/** TltContRegisterActivate signed response. */
1451typedef struct {
1452 /** Response header. */
1453 cmpResponseHeader_t rspHeader;
1454 /** Encrypted and padded data. */
1455 cmpTltRegActRspEd_t ed;
1456} cmpTltRegActRspSdata_t;
1457
1458/** TltContRegisterActivate signed response and signature. */
1459typedef struct {
1460 /** Signed response. */
1461 cmpTltRegActRspSdata_t sdata;
1462 /** Signature. */
1463 cmpMac_t mac;
1464} cmpTltContRegisterActivateRsp_t;
1465
1466/** TltContRegisterActivate response. */
1467typedef struct {
1468 /** Response. */
1469 cmpTltContRegisterActivateRsp_t rsp;
1470 /** Sp container secure object. */
1471 mcSoSpCont_t soSpCont;
1472 /** Tlt container secure object. */
1473 mcSoTltCont_2_0_t soTltCont;
1474} cmpRspTltContRegisterActivate_t;
1475
1476/** @} */
1477
1478/** @} */
1479
1480/** @defgroup MC_CMP_2_0_CMD_TLT_CONT_UNREGISTER \
1481 MC_CMP_2_0_CMD_TLT_CONT_UNREGISTER
1482 * @{ */
1483
1484/** @defgroup MC_CMP_2_0_CMD_TLT_CONT_UNREGISTER_CMD Command_2_0
1485 * @{ */
1486
1487/** TltContUnregister signed command. */
1488typedef struct {
1489 /** Command header. */
1490 cmpCommandHeader_t cmdHeader;
1491 /** Spid. */
1492 mcSpid_t spid;
1493 /** Uuid. */
1494 mcUuid_t uuid;
1495} cmpTltUnregCmdSdata_t;
1496
1497/** TltContUnregister signed command and signature. */
1498typedef struct {
1499 /** Signed command. */
1500 cmpTltUnregCmdSdata_t sdata;
1501 /** Signature. */
1502 cmpMac_t mac;
1503} cmpTltContUnregisterCmd_t;
1504
1505/** TltContUnregister command. */
1506typedef struct {
1507 /** Command. */
1508 cmpTltContUnregisterCmd_t cmd;
1509} cmpCmdTltContUnregister_t;
1510
1511/** @} */
1512
1513/** @defgroup MC_CMP_2_0_CMD_TLT_CONT_UNREGISTER_RSP Response_2_0
1514 * @{ */
1515
1516/** TltContUnregister encrypted data response. */
1517typedef struct {
1518 /** Sp container secure object. */
1519 mcSoSpCont_t soSpCont;
1520} cmpTltUnregRspEdata_t;
1521
1522/** TltContUnregister encrypted and padded data response. */
1523typedef struct {
1524 /** Encrypted data. */
1525 cmpTltUnregRspEdata_t edata;
1526 /** Padding. */
1527 uint8_t padding[CMP_ED_PADDING(sizeof(cmpTltUnregRspEdata_t))];
1528} cmpTltUnregRspEd_t;
1529
1530/** TltContUnregister signed command. */
1531typedef struct {
1532 /** Response header. */
1533 cmpResponseHeader_t rspHeader;
1534 /** Encrypted and padded data. */
1535 cmpTltUnregRspEd_t ed;
1536} cmpTltUnregRspSdata_t;
1537
1538/** TltContUnregister signed command and signature. */
1539typedef struct {
1540 /** Signed response. */
1541 cmpTltUnregRspSdata_t sdata;
1542 /** Signature. */
1543 cmpMac_t mac;
1544} cmpTltContUnregisterRsp_t;
1545
1546/** TltContUnregister response. */
1547typedef struct {
1548 /** Response. */
1549 cmpTltContUnregisterRsp_t rsp;
1550 /** Sp container secure object. */
1551 mcSoSpCont_t soSpCont;
1552} cmpRspTltContUnregister_t;
1553
1554/** @} */
1555
1556/** @} */
1557
1558/** @defgroup MC_CMP_2_0_CMD_TLT_CONT_REGISTER \
1559 MC_CMP_2_0_CMD_TLT_CONT_REGISTER
1560 * @{ */
1561
1562/** @defgroup MC_CMP_2_0_CMD_TLT_CONT_REGISTER_CMD Command_2_0
1563 * @{ */
1564
1565/** TltContRegister encrypted data command. */
1566typedef struct {
1567 /** Tlt authentication key. */
1568 mcSymmetricKey_t kSpTltEnc;
1569} cmpTltRegMsgEdata_t;
1570
1571/** TltContRegister encrypted and padded data command. */
1572typedef struct {
1573 /** Encrypted data. */
1574 cmpTltRegMsgEdata_t edata;
1575 /** Padding. */
1576 uint8_t padding[CMP_ED_PADDING(sizeof(cmpTltRegMsgEdata_t))];
1577} cmpTltRegCmdEd_t;
1578
1579/** TltContRegister signed command. */
1580typedef struct {
1581 /** Command header. */
1582 cmpCommandHeader_t cmdHeader;
1583 /** Spid. */
1584 mcSpid_t spid;
1585 /** Uuid. */
1586 mcUuid_t uuid;
1587 /** Encrypted and padded data. */
1588 cmpTltRegCmdEd_t ed;
1589} cmpTltRegCmdSdata_t;
1590
1591/** TltContRegister signed command and signature. */
1592typedef struct {
1593 /** Signed command. */
1594 cmpTltRegCmdSdata_t sdata;
1595 /** Signature. */
1596 cmpMac_t mac;
1597} cmpTltContRegisterCmd_t;
1598
1599/** TltContRegister command. */
1600typedef struct {
1601 /** Command. */
1602 cmpTltContRegisterCmd_t cmd;
1603} cmpCmdTltContRegister_t;
1604
1605/** @} */
1606
1607/** @defgroup MC_CMP_2_0_CMD_TLT_CONT_REGISTER_RSP Response_2_0
1608 * @{ */
1609
1610/** TltContRegister encrypted data response. */
1611typedef struct {
1612 /** Sp container secure object. */
1613 mcSoSpCont_t soSpCont;
1614 /** Tlt container secure object. */
1615 mcSoTltCont_2_0_t soTltCont;
1616} cmpTltRegRspEdata_t;
1617
1618/** TltContRegister encrypted and padded data response. */
1619typedef struct {
1620 /** Encrypted data. */
1621 cmpTltRegRspEdata_t edata;
1622 /** Padding. */
1623 uint8_t padding[CMP_ED_PADDING(sizeof(cmpTltRegRspEdata_t))];
1624} cmpTltRegRspEd_t;
1625
1626/** TltContRegister signed response. */
1627typedef struct {
1628 /** Response header. */
1629 cmpResponseHeader_t rspHeader;
1630 /** Encrypted and padded data. */
1631 cmpTltRegRspEd_t ed;
1632} cmpTltRegRspSdata_t;
1633
1634/** TltContRegister signed response and signature. */
1635typedef struct {
1636 /** Signed response. */
1637 cmpTltRegRspSdata_t sdata;
1638 /** Signature. */
1639 cmpMac_t mac;
1640} cmpTltContRegisterRsp_t;
1641
1642/** TltContRegister response. */
1643typedef struct {
1644 /** Response. */
1645 cmpTltContRegisterRsp_t rsp;
1646 /** Sp container secure object. */
1647 mcSoSpCont_t soSpCont;
1648 /** Tlt container secure object. */
1649 mcSoTltCont_2_0_t soTltCont;
1650} cmpRspTltContRegister_t;
1651
1652/** @} */
1653
1654/** @} */
1655
1656/** @defgroup MC_CMP_2_0_CMD_TLT_CONT_ACTIVATE \
1657 MC_CMP_2_0_CMD_TLT_CONT_ACTIVATE
1658 * @{ */
1659
1660/** @defgroup MC_CMP_2_0_CMD_TLT_CONT_ACTIVATE_CMD Command_2_0
1661 * @{ */
1662
1663/** TltContActivate signed command. */
1664typedef struct {
1665 /** Command header. */
1666 cmpCommandHeader_t cmdHeader;
1667 /** Spid. */
1668 mcSpid_t spid;
1669 /** Uuid. */
1670 mcUuid_t uuid;
1671} cmpTltActCmdSdata_t;
1672
1673/** TltContActivate signed command and signature. */
1674typedef struct {
1675 /** Signed command. */
1676 cmpTltActCmdSdata_t sdata;
1677 /** Signature. */
1678 cmpMac_t mac;
1679} cmpTltContActivateCmd_t;
1680
1681/** TltContActivate command. */
1682typedef struct {
1683 /** Command. */
1684 cmpTltContActivateCmd_t cmd;
1685 /** Tlt container secure object. */
1686 mcSoTltCont_2_0_t soTltCont;
1687} cmpCmdTltContActivate_t;
1688
1689/** @} */
1690
1691/** @defgroup MC_CMP_2_0_CMD_TLT_CONT_ACTIVATE_RSP Response_2_0
1692 * @{ */
1693
1694/** TltContActivate encrypted data response. */
1695typedef struct {
1696 /** Tlt container secure object. */
1697 mcSoTltCont_2_0_t soTltCont;
1698} cmpTltActRspEdata_t;
1699
1700/** TltContActivate encrypted and padded data response. */
1701typedef struct {
1702 /** Encrypted data. */
1703 cmpTltActRspEdata_t edata;
1704 /** Padding. */
1705 uint8_t padding[CMP_ED_PADDING(sizeof(cmpTltActRspEdata_t))];
1706} cmpTltActRspEd_t;
1707
1708/** TltContActivate signed response. */
1709typedef struct {
1710 /** Response header. */
1711 cmpResponseHeader_t rspHeader;
1712 /** Encrypted and padded data. */
1713 cmpTltActRspEd_t ed;
1714} cmpTltActRspSdata_t;
1715
1716/** TltContActivate signed response and signature. */
1717typedef struct {
1718 /** Signed response. */
1719 cmpTltActRspSdata_t sdata;
1720 /** Signature. */
1721 cmpMac_t mac;
1722} cmpTltContActivateRsp_t;
1723
1724/** TltContActivate response. */
1725typedef struct {
1726 /** Response. */
1727 cmpTltContActivateRsp_t rsp;
1728 /** Tlt container secure object. */
1729 mcSoTltCont_2_0_t soTltCont;
1730} cmpRspTltContActivate_t;
1731
1732/** @} */
1733
1734/** @} */
1735
1736/** @defgroup MC_CMP_2_0_CMD_TLT_CONT_LOCK_BY_SP \
1737 MC_CMP_2_0_CMD_TLT_CONT_LOCK_BY_SP
1738 * @{ */
1739
1740/** @defgroup MC_CMP_2_0_CMD_TLT_CONT_LOCK_BY_SP_CMD Command_2_0
1741 * @{ */
1742
1743/** TltContLockBySp signed command. */
1744typedef struct {
1745 /** Command header. */
1746 cmpCommandHeader_t cmdHeader;
1747 /** Spid. */
1748 mcSpid_t spid;
1749 /** Uuid. */
1750 mcUuid_t uuid;
1751} cmpTltLockBySpCmdSdata_t;
1752
1753/** TltContLockBySp signed command and signature. */
1754typedef struct {
1755 /** Signed command. */
1756 cmpTltLockBySpCmdSdata_t sdata;
1757 /** Signature. */
1758 cmpMac_t mac;
1759} cmpTltContLockBySpCmd_t;
1760
1761/** TltContLockBySp command. */
1762typedef struct {
1763 /** Command. */
1764 cmpTltContLockBySpCmd_t cmd;
1765 /** Tlt container secure object. */
1766 mcSoTltCont_2_0_t soTltCont;
1767} cmpCmdTltContLockBySp_t;
1768
1769/** @} */
1770
1771/** @defgroup MC_CMP_2_0_CMD_TLT_CONT_LOCK_BY_SP_RSP Response_2_0
1772 * @{ */
1773
1774/** TltContLockBySp encrypted data response. */
1775typedef struct {
1776 /** Tlt container secure object. */
1777 mcSoTltCont_2_0_t soTltCont;
1778} cmpTltLockBySpRspEdata_t;
1779
1780/** TltContLockBySp encrypted and padded data response. */
1781typedef struct {
1782 /** Encrypted data. */
1783 cmpTltLockBySpRspEdata_t edata;
1784 /** Padding. */
1785 uint8_t padding[CMP_ED_PADDING(sizeof(cmpTltLockBySpRspEdata_t))];
1786} cmpTltLockBySpRspEd_t;
1787
1788/** TltContLockBySp signed response. */
1789typedef struct {
1790 /** Response header. */
1791 cmpResponseHeader_t rspHeader;
1792 /** Encrypted and padded data. */
1793 cmpTltLockBySpRspEd_t ed;
1794} cmpTltLockBySpRspSdata_t;
1795
1796/** TltContLockBySp signed response and signature. */
1797typedef struct {
1798 /** Signed response. */
1799 cmpTltLockBySpRspSdata_t sdata;
1800 /** Signature. */
1801 cmpMac_t mac;
1802} cmpTltContLockBySpRsp_t;
1803
1804/** TltContLockBySp response. */
1805typedef struct {
1806 /** Response. */
1807 cmpTltContLockBySpRsp_t rsp;
1808 /** Tlt container secure object. */
1809 mcSoTltCont_2_0_t soTltCont;
1810} cmpRspTltContLockBySp_t;
1811
1812/** @} */
1813
1814/** @} */
1815
1816/** @defgroup MC_CMP_2_0_CMD_TLT_CONT_UNLOCK_BY_SP \
1817 MC_CMP_2_0_CMD_TLT_CONT_UNLOCK_BY_SP
1818 * @{ */
1819
1820/** @defgroup MC_CMP_2_0_CMD_TLT_CONT_UNLOCK_BY_SP_CMD Command_2_0
1821 * @{ */
1822
1823/** TltContUnlockBySp signed command. */
1824typedef struct {
1825 /** Command header. */
1826 cmpCommandHeader_t cmdHeader;
1827 /** Spid. */
1828 mcSpid_t spid;
1829 /** Uuid. */
1830 mcUuid_t uuid;
1831} cmpTltUnlockBySpCmdSdata_t;
1832
1833/** TltContUnlockBySp signed command and signature. */
1834typedef struct {
1835 /** Signed command. */
1836 cmpTltUnlockBySpCmdSdata_t sdata;
1837 /** Signature. */
1838 cmpMac_t mac;
1839} cmpTltContUnlockBySpCmd_t;
1840
1841/** TltContUnlockBySp command. */
1842typedef struct {
1843 /** Command. */
1844 cmpTltContUnlockBySpCmd_t cmd;
1845 /** Tlt container secure object. */
1846 mcSoTltCont_2_0_t soTltCont;
1847} cmpCmdTltContUnlockBySp_t;
1848
1849/** @} */
1850
1851/** @defgroup MC_CMP_2_0_CMD_TLT_CONT_UNLOCK_BY_SP_RSP Response_2_0
1852 * @{ */
1853
1854/** TltContUnlockBySp encrypted data response. */
1855typedef struct {
1856 /** Tlt container secure object. */
1857 mcSoTltCont_2_0_t soTltCont;
1858} cmpTltUnlockBySpRspEdata_t;
1859
1860/** TltContUnlockBySp encrypted and padded data response. */
1861typedef struct {
1862 /** Encrypted data. */
1863 cmpTltUnlockBySpRspEdata_t edata;
1864 /** Padding. */
1865 uint8_t padding[CMP_ED_PADDING(sizeof(cmpTltUnlockBySpRspEdata_t))];
1866} cmpTltUnlockBySpRspEd_t;
1867
1868/** TltContUnlockBySp signed response. */
1869typedef struct {
1870 /** Response header. */
1871 cmpResponseHeader_t rspHeader;
1872 /** Encrypted and padded data. */
1873 cmpTltUnlockBySpRspEd_t ed;
1874} cmpTltUnlockBySpRspSdata_t;
1875
1876/** TltContUnlockBySp signed response and signature. */
1877typedef struct {
1878 /** Signed response. */
1879 cmpTltUnlockBySpRspSdata_t sdata;
1880 /** Signature. */
1881 cmpMac_t mac;
1882} cmpTltContUnlockBySpRsp_t;
1883
1884/** TltContUnlockBySp response. */
1885typedef struct {
1886 /** Response. */
1887 cmpTltContUnlockBySpRsp_t rsp;
1888 /** Tlt container secure object. */
1889 mcSoTltCont_2_0_t soTltCont;
1890} cmpRspTltContUnlockBySp_t;
1891
1892/** @} */
1893
1894/** @} */
1895
1896/** @defgroup MC_CMP_2_0_CMD_TLT_CONT_PERSONALIZE \
1897 MC_CMP_2_0_CMD_TLT_CONT_PERSONALIZE
1898 * @{ */
1899
1900/** @defgroup MC_CMP_2_0_CMD_TLT_CONT_PERSONALIZE_CMD Command_2_0
1901 * @{ */
1902
1903/** TltContPersonalize encrypted data command. */
1904typedef struct {
1905 /** Pid. */
1906 mcPid_t pid;
1907 /** Data. */
1908 mcCoDataCont_t persoData;
1909} cmpTltContPersonalizeCmdEdata_t;
1910
1911/** TltContPersonalize encrypted and padded data command. */
1912typedef struct {
1913 /** Encrypted data. */
1914 cmpTltContPersonalizeCmdEdata_t edata;
1915 /** Padding. */
1916 uint8_t padding[CMP_ED_PADDING(sizeof(cmpTltContPersonalizeCmdEdata_t))];
1917} cmpTltContPersonalizeCmdEd_t;
1918
1919/** TltContPersonalize signed command. */
1920typedef struct {
1921 /** Command header. */
1922 cmpCommandHeader_t cmdHeader;
1923 /** Spid. */
1924 mcSpid_t spid;
1925 /** Uuid. */
1926 mcUuid_t uuid;
1927 /** Encrypted and padded data size. */
1928 uint32_t edLen;
1929 /** Encrypted and padded data. */
1930 cmpTltContPersonalizeCmdEd_t ed;
1931} cmpTltContPersonalizeCmdSdata_t;
1932
1933/** TltContPersonalize signed command and signature. */
1934typedef struct {
1935 /** Signed command. */
1936 cmpTltContPersonalizeCmdSdata_t sdata;
1937 /** Signature. */
1938 cmpMac_t mac;
1939} cmpTltContPersonalizeCmd_t;
1940
1941/** TltContPersonalize command. */
1942typedef struct {
1943 /** Command. */
1944 cmpTltContPersonalizeCmd_t cmd;
1945 /** Tlt container secure object. */
1946 mcSoTltCont_2_0_t soTltCont;
1947} cmpCmdTltContPersonalize_t;
1948
1949/** @} */
1950
1951/** @defgroup MC_CMP_2_0_CMD_TLT_CONT_PERSONLIZE_RSP Response_2_0
1952 * @{ */
1953
1954/** TltContPersonalize encrypted data response. */
1955typedef struct {
1956 /** Data container secure object. */
1957 mcSoDataCont_t soDataCont;
1958} cmpTltContPersonalizeRspEdata_t;
1959
1960/** TltContPersonalize encrypted and padded data response. */
1961typedef struct {
1962 /** Encrypted data. */
1963 cmpTltContPersonalizeRspEdata_t edata;
1964 /** Padding. */
1965 uint8_t padding[CMP_ED_PADDING(sizeof(cmpTltContPersonalizeRspEdata_t))];
1966} cmpTltContPersonalizeRspEd_t;
1967
1968/** TltContPersonalize signed response. */
1969typedef struct {
1970 /** Response header. */
1971 cmpResponseHeader_t rspHeader;
1972 /** Encrypted and padded data size. */
1973 uint32_t edLen;
1974 /** Encrypted and padded data. */
1975 cmpTltContPersonalizeRspEd_t ed;
1976} cmpTltContPersonalizeRspSdata_t;
1977
1978/** TltContPersonalize signed response and signature. */
1979typedef struct {
1980 /** Signed response. */
1981 cmpTltContPersonalizeRspSdata_t sdata;
1982 cmpMac_t mac;
1983} cmpTltContPersonalizeRsp_t;
1984
1985/** TltContPersonalize response. */
1986typedef struct {
1987 /** Response. */
1988 cmpTltContPersonalizeRsp_t rsp;
1989 /** Data container secure object. */
1990 mcSoDataCont_t soDataCont;
1991} cmpRspTltContPersonalize_t;
1992
1993/** @} */
1994
1995/** @} */
1996
1997#endif // CMP_H_
1998
1999/** @} */