AM263x MCU+ SDK  10.01.00
hsmclient.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2022-24 Texas Instruments Incorporated
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  *
8  * Redistributions of source code must retain the above copyright
9  * notice, this list of conditions and the following disclaimer.
10  *
11  * Redistributions in binary form must reproduce the above copyright
12  * notice, this list of conditions and the following disclaimer in the
13  * documentation and/or other materials provided with the
14  * distribution.
15  *
16  * Neither the name of Texas Instruments Incorporated nor the names of
17  * its contributors may be used to endorse or promote products derived
18  * from this software without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */
32 
33 #ifndef HSM_CLIENT_H_
34 #define HSM_CLIENT_H_
35 
36 #ifdef __cplusplus
37 extern "C" {
38 #endif
39 
40 /* Header file for HSM client driver */
41 #include <stdint.h>
45 #include <kernel/dpl/SemaphoreP.h>
46 
55 #define LABEL_AND_CONTEXT_LEN_MAX 48U
56 
61 #define HSMRT_LOAD_NOT_REQUESTED (0U)
62 
66 #define HSMRT_LOAD_REQUESTED (1U)
67 
71 #define HSMRT_LOAD_FAILED (2U)
72 
76 #define HSMRT_LOAD_SUCCEEDED (3U)
77 
83 typedef union HsmVer_t_
84 {
85  uint64_t HsmrtVer ;
86  struct
87  {
88  uint8_t PatchVer ;
89  uint8_t MinorVer ;
90  uint8_t MajorVer;
91  uint8_t ApiVer ;
92  uint8_t SocType ;
93  uint8_t BinType ;
94  uint8_t HsmType ;
95  uint8_t DevType ;
98 #if defined(_TMS320C6X)
99 }__attribute__((packed)) HsmVer_t_;
100 #else
101 }__attribute__((packed)) HsmVer_t;
102 #endif
103 
104 
110 typedef struct HsmClient_t_
111 {
114  HsmMsg_t ReqMsg ;
115  HsmMsg_t RespMsg ;
116  uint8_t RespFlag ;
117  uint8_t ClientId ;
119 } HsmClient_t ;
120 
126 typedef struct EfuseRead_t_
127 {
128  uint32_t rowData ;
129  uint8_t rowIdx ;
130  uint8_t rsvd[3];
131 } EfuseRead_t;
132 
138 typedef struct EfuseRowWrite_t_
139 {
140  uint32_t rowData ;
141  uint32_t rowBitMask ;
142  uint8_t rowIdx ;
143  uint8_t rsvd[3];
145 
151 typedef struct EfuseRowCount_t_
152 {
153  uint32_t rowCount ;
154  uint8_t rowSize ;
155  uint8_t rsvd[3];
157 
164 typedef struct EfuseRowProt_t_
165 {
166  uint8_t rowidx ;
167  uint8_t readProt ;
168  uint8_t writeProt ;
169  uint8_t rsvd[1];
170 } EfuseRowProt_t ;
171 
177 typedef struct keywriter_cert_header_t_
178 {
179  uint8_t* certAddress; /*For holding cerificate address*/
180  uint32_t certSize; /*Cerificate size*/
181  uint32_t debugResponse; /*Debug response*/
182  uint32_t reserved; /*reserved for future use*/
184 
190 typedef struct FirewallRegionReq_t_
191 {
192  uint16_t firewallId ;
193  uint16_t region ;
195  uint32_t startAddress;
196  uint32_t endAddress;
198 
204 typedef struct FirewallReq_t_
205 {
206  uint16_t regionCount;
207  uint16_t crcArr;
210 }FirewallReq_t ;
211 
218 typedef struct FirewallIntrReq_t_
219 {
220  uint16_t firewallId ;
221  uint8_t interruptEnable;
224  uint8_t faultClear;
226 
236 typedef struct SWRev_t_
237 {
238  uint32_t revValue;
239  uint8_t revId;
240  uint8_t rsvd[3];
241 } SWRev_t;
242 
253 typedef struct DKEK_t_
254 {
255  uint8_t label_length;
256  uint8_t context_length;
257  uint8_t label_and_context[LABEL_AND_CONTEXT_LEN_MAX];
258  uint32_t dkek[8];
259 } DKEK_t;
260 
272 typedef struct RNGReq_t_
273 {
274  uint8_t* resultPtr;
275  uint32_t* resultLengthPtr;
276  uint8_t DRBGMode;
277  uint32_t* seedValue;
279  uint8_t reserved;
280 } RNGReq_t;
281 
287 typedef struct SecureBoot_Stream_t_
288 {
289  uint8_t* dataIn ;
290  uint32_t dataLen ;
291  uint8_t canBeEncrypted ;
292 } __attribute__((packed)) SecureBoot_Stream_t ;
293 
302 typedef struct FirmwareUpdateReq_t_
303 {
304  uint8_t *pStartAddress;
305  uint32_t dataLength;
306  uint32_t bankMode;
308 
320 
331 int32_t HsmClient_init(SIPC_Params* params);
332 
338 void HsmClient_deInit(void);
339 
355 int32_t HsmClient_getVersion(HsmClient_t *HsmClient ,
356  HsmVer_t* verId,uint32_t timeToWaitInTick);
357 
373 int32_t HsmClient_getUID(HsmClient_t* HsmClient,
374  uint8_t* uid, uint32_t timeout);
375 
392 int32_t HsmClient_openDbgFirewall(HsmClient_t* HsmClient,
393  uint8_t* cert,
394  uint32_t cert_size,
395  uint32_t timeout);
396 
413 int32_t HsmClient_importKeyring(HsmClient_t* HsmClient,
414  uint8_t* cert,
415  uint32_t cert_size,
416  uint32_t timeout);
417 
430 int32_t HsmClient_readOTPRow(HsmClient_t* HsmClient,
431  EfuseRead_t* readRow);
432 
445 int32_t HsmClient_writeOTPRow(HsmClient_t* HsmClient,
446  EfuseRowWrite_t* writeRow);
447 
460 int32_t HsmClient_lockOTPRow(HsmClient_t* HsmClient,
461  EfuseRowProt_t* rowProt);
462 
475 int32_t HsmClient_getOTPRowCount(HsmClient_t* HsmClient,
476  EfuseRowCount_t* rowCount);
477 
490 int32_t HsmClient_getOTPRowProtection(HsmClient_t* HsmClient,
491  EfuseRowProt_t* rowProt);
492 
509 int32_t HsmClient_procAuthBoot(HsmClient_t* HsmClient,
510  uint8_t* cert,
511  uint32_t cert_size,
512  uint32_t timeout);
513 
528 int32_t HsmClient_procAuthBootStart(HsmClient_t* HsmClient,
529  SecureBoot_Stream_t *secureBootInfo);
530 
545 int32_t HsmClient_procAuthBootUpdate(HsmClient_t* HsmClient,
546  SecureBoot_Stream_t *secureBootInfo);
547 
562 int32_t HsmClient_procAuthBootFinish(HsmClient_t* HsmClient,
563  SecureBoot_Stream_t *secureBootInfo);
564 
580 int32_t HsmClient_setFirewall(HsmClient_t* HsmClient,
581  FirewallReq_t* FirewallReqObj,
582  uint32_t timeout);
598 int32_t HsmClient_FirewallIntr(HsmClient_t* HsmClient,
599  FirewallIntrReq_t* FirewallIntrReqObj,
600  uint32_t timeout);
601 
614 int32_t HsmClient_keyWriter(HsmClient_t* HsmClient,
615  KeyWriterCertHeader_t* certHeader,
616  uint32_t timeout);
617 
630 int32_t HsmClient_readSWRev(HsmClient_t* HsmClient,
631  SWRev_t* readSWRev);
632 
645 int32_t HsmClient_writeSWRev(HsmClient_t* HsmClient,
646  SWRev_t* writeSWRev);
647 
664 int32_t HsmClient_getDKEK(HsmClient_t* HsmClient,
665  DKEK_t* getDKEK,
666  uint32_t timeout);
678 int32_t HsmClient_register(HsmClient_t* HsmClient, uint8_t clientId);
679 
688 void HsmClient_unregister(HsmClient_t* HsmClient,uint8_t clientId);
689 
703 int32_t HsmClient_waitForBootNotify(HsmClient_t* HsmClient,uint32_t timeToWaitInTicks);
704 
715 int32_t Hsmclient_loadHSMRtFirmware(HsmClient_t *gHSMClient, const uint8_t *pHSMRt_firmware);
716 
726 int32_t Hsmclient_loadHSMRtFirmwareNonBlocking(const uint8_t *pHSMRt_firmware);
727 
739 int32_t HsmClient_getRandomNum(HsmClient_t* HsmClient,
740  RNGReq_t* getRandomNum);
741 
757  FirmwareUpdateReq_t *pFirmwareUpdateObject);
758 
773  FirmwareUpdateReq_t *pFirmwareUpdateObject);
774 
790  FirmwareUpdateReq_t *pFirmwareUpdateObject);
793 #ifdef __cplusplus
794 }
795 #endif
796 
797 #endif /* HSM_CLIENT_H_ */
SIPC_Params
Parameters used by SIPC_init.
Definition: sipc_notify.h:84
KeyWriterCertHeader_t::certSize
uint32_t certSize
Definition: hsmclient.h:180
EfuseRead_t::rowData
uint32_t rowData
Definition: hsmclient.h:128
HsmVer_t_
type for reading HSMRt version.
Definition: hsmclient.h:84
HsmClient_checkAndWaitForBootNotification
int32_t HsmClient_checkAndWaitForBootNotification(void)
This API waits for HSMRT load if requested and then waits for boot notification. In case of failure i...
Definition: hsmclient.c:389
LABEL_AND_CONTEXT_LEN_MAX
#define LABEL_AND_CONTEXT_LEN_MAX
Definition: hsmclient.h:55
HsmClient_setFirewall
int32_t HsmClient_setFirewall(HsmClient_t *HsmClient, FirewallReq_t *FirewallReqObj, uint32_t timeout)
The service issued to HSM Server sets the firewall for the given firewall id and region.
Definition: hsmclient.c:1296
HsmClient_writeSWRev
int32_t HsmClient_writeSWRev(HsmClient_t *HsmClient, SWRev_t *writeSWRev)
The service issued to HSM Server writes the SWRevision value based on identifier as param.
Definition: hsmclient.c:1645
HsmVer_t_::PatchVer
uint8_t PatchVer
Definition: hsmclient.h:88
SecureBoot_Stream_t_::dataIn
uint8_t * dataIn
Definition: hsmclient.h:289
HsmClient_firmwareUpdate_CodeProgram
int32_t HsmClient_firmwareUpdate_CodeProgram(HsmClient_t *HsmClient, FirmwareUpdateReq_t *pFirmwareUpdateObject)
service request issued to HSM server to program the incoming firmware to device dormant banks This se...
Definition: hsmclient.c:1871
EfuseRowProt_t
This is a EfuseRowProt type which holds the information of eFuse row index and protection status corr...
Definition: hsmclient.h:165
EfuseRowCount_t::rowCount
uint32_t rowCount
Definition: hsmclient.h:153
FirewallRegionReq_t::region
uint16_t region
Definition: hsmclient.h:193
HsmClient_t::RespFlag
uint8_t RespFlag
Definition: hsmclient.h:116
SecureBoot_Stream_t_
This is the SecureBoot Stream type which holds the data for a specific bootloader to HSM call....
Definition: hsmclient.h:288
HsmClient_firmwareUpdate_CodeVerify
int32_t HsmClient_firmwareUpdate_CodeVerify(HsmClient_t *HsmClient, FirmwareUpdateReq_t *pFirmwareUpdateObject)
service request issued to HSM server to decrypt the firmware programmed in dormant flash bank in plac...
Definition: hsmclient.c:1946
EfuseRowWrite_t::rowBitMask
uint32_t rowBitMask
Definition: hsmclient.h:141
EfuseRowProt_t::rowidx
uint8_t rowidx
Definition: hsmclient.h:166
DKEK_t
This is DKEK type which holds the label and context for derivation. This also holds the 256 derived K...
Definition: hsmclient.h:254
SecureBoot_Stream_t_::canBeEncrypted
uint8_t canBeEncrypted
Definition: hsmclient.h:291
EfuseRowWrite_t
This is a EfuseRowWrite type which holds the information regarding programming eFuse row.
Definition: hsmclient.h:139
HsmClient_readSWRev
int32_t HsmClient_readSWRev(HsmClient_t *HsmClient, SWRev_t *readSWRev)
The service issued to HSM Server retrieves the SWRevision value based on identifier as param.
Definition: hsmclient.c:1577
Hsmclient_loadHSMRtFirmwareNonBlocking
int32_t Hsmclient_loadHSMRtFirmwareNonBlocking(const uint8_t *pHSMRt_firmware)
Loads the HSMRt firmware but does wait for ROM response and boot notification. This is typically call...
Definition: hsmclient_loadhsmrt.c:410
HsmClient_importKeyring
int32_t HsmClient_importKeyring(HsmClient_t *HsmClient, uint8_t *cert, uint32_t cert_size, uint32_t timeout)
The service issued to HSM Server verifies the certificate and imports the keys from the certificate.
Definition: hsmclient.c:709
EfuseRead_t::rowIdx
uint8_t rowIdx
Definition: hsmclient.h:129
HsmVer_t_::HsmType
uint8_t HsmType
Definition: hsmclient.h:94
HsmClient_procAuthBootStart
int32_t HsmClient_procAuthBootStart(HsmClient_t *HsmClient, SecureBoot_Stream_t *secureBootInfo)
The service issued to HSM Server helps with extended secure boot for applications.
Definition: hsmclient.c:1189
RNGReq_t::seedValue
uint32_t * seedValue
Definition: hsmclient.h:277
HsmVer_t_::MajorVer
uint8_t MajorVer
Definition: hsmclient.h:90
FirewallIntrReq_t::firewallId
uint16_t firewallId
Definition: hsmclient.h:220
FirewallReq_t::FirewallRegionArr
FirewallRegionReq_t * FirewallRegionArr
Definition: hsmclient.h:208
FirmwareUpdateReq_t::pStartAddress
uint8_t * pStartAddress
Definition: hsmclient.h:304
FirewallRegionReq_t
This is a FirewallRegionReq type which holds the information of Firewall region configuration.
Definition: hsmclient.h:191
RNGReq_t::resultPtr
uint8_t * resultPtr
Definition: hsmclient.h:274
HsmClient_t
This is a HSMClient type which holds the information needed by hsm client to communicate with HSM .
Definition: hsmclient.h:111
HsmVer_t_::SocType
uint8_t SocType
Definition: hsmclient.h:92
HsmVer_t_::ApiVer
uint8_t ApiVer
Definition: hsmclient.h:91
SemaphoreP.h
HsmClient_procAuthBootFinish
int32_t HsmClient_procAuthBootFinish(HsmClient_t *HsmClient, SecureBoot_Stream_t *secureBootInfo)
The service issued to HSM Server helps with extended secure boot for applications.
Definition: hsmclient.c:1257
HsmVer_t_::HsmrtVer
uint64_t HsmrtVer
Definition: hsmclient.h:85
sipc_notify.h
HsmVer_t_::DevType
uint8_t DevType
Definition: hsmclient.h:95
RNGReq_t::seedSizeInDWords
uint8_t seedSizeInDWords
Definition: hsmclient.h:278
HsmClient_firmwareUpdate_CertProcess
int32_t HsmClient_firmwareUpdate_CertProcess(HsmClient_t *HsmClient, FirmwareUpdateReq_t *pFirmwareUpdateObject)
service request issued to HSM server to parse the certificate to validate authenticity and identify t...
Definition: hsmclient.c:1795
HsmClient_t::RespMsg
HsmMsg_t RespMsg
Definition: hsmclient.h:115
FirewallRegionReq_t::endAddress
uint32_t endAddress
Definition: hsmclient.h:196
HsmClient_openDbgFirewall
int32_t HsmClient_openDbgFirewall(HsmClient_t *HsmClient, uint8_t *cert, uint32_t cert_size, uint32_t timeout)
The service issued to HSM Server verifies the certificate and by default the hsm flag is set to HSM_F...
Definition: hsmclient.c:637
SWRev_t::revValue
uint32_t revValue
Definition: hsmclient.h:238
HsmClient_register
int32_t HsmClient_register(HsmClient_t *HsmClient, uint8_t clientId)
register a client to a particular ClientId
Definition: hsmclient.c:444
FirewallIntrReq_t
This is a FirewallIntrReq type which holds the information of MPU Firewall request for interrupt enab...
Definition: hsmclient.h:219
FirmwareUpdateReq_t::bankMode
uint32_t bankMode
Definition: hsmclient.h:306
EfuseRowCount_t
This is a EfuseRowCount type which holds the information regarding eFuse row count and size of each r...
Definition: hsmclient.h:152
HsmClient_getOTPRowCount
int32_t HsmClient_getOTPRowCount(HsmClient_t *HsmClient, EfuseRowCount_t *rowCount)
The service issued to HSM Server retrieves the count of extended OTP rows.
Definition: hsmclient.c:983
FirewallReq_t
This is a FirewallReq_t type which holds the information of Firewall configuration.
Definition: hsmclient.h:205
EfuseRowProt_t::readProt
uint8_t readProt
Definition: hsmclient.h:167
FirewallIntrReq_t::interruptEnableClear
uint8_t interruptEnableClear
Definition: hsmclient.h:222
FirewallRegionReq_t::permissionAttributes
uint32_t permissionAttributes
Definition: hsmclient.h:194
HsmClient_init
int32_t HsmClient_init(SIPC_Params *params)
Initialize the HSM client for current core.
Definition: hsmclient.c:473
HsmClient_FirewallIntr
int32_t HsmClient_FirewallIntr(HsmClient_t *HsmClient, FirewallIntrReq_t *FirewallIntrReqObj, uint32_t timeout)
The service issued to HSM Server sets the firewall interrupt request for the given firewall id.
Definition: hsmclient.c:1371
SWRev_t
This is SWRev type which holds the information regarding Revision identifier and value corresponding ...
Definition: hsmclient.h:237
HsmClient_getOTPRowProtection
int32_t HsmClient_getOTPRowProtection(HsmClient_t *HsmClient, EfuseRowProt_t *rowProt)
The service issued to HSM Server retrieves the extended otp efuse row protection status.
Definition: hsmclient.c:1050
HsmVer_t_::BinType
uint8_t BinType
Definition: hsmclient.h:93
FirewallRegionReq_t::startAddress
uint32_t startAddress
Definition: hsmclient.h:195
HsmVer_t_::VerStruct
struct HsmVer_t_::@0 VerStruct
SecureBoot_Stream_t_::dataLen
uint32_t dataLen
Definition: hsmclient.h:290
FirewallReq_t::statusFirewallRegionArr
uint16_t statusFirewallRegionArr
Definition: hsmclient.h:209
FirewallReq_t::regionCount
uint16_t regionCount
Definition: hsmclient.h:206
DKEK_t::context_length
uint8_t context_length
Definition: hsmclient.h:256
SWRev_t::revId
uint8_t revId
Definition: hsmclient.h:239
HsmClient_unregister
void HsmClient_unregister(HsmClient_t *HsmClient, uint8_t clientId)
unregister a client to a particular ClientId
Definition: hsmclient.c:494
FirewallIntrReq_t::faultClear
uint8_t faultClear
Definition: hsmclient.h:224
hsmclient_msg.h
HsmClient_writeOTPRow
int32_t HsmClient_writeOTPRow(HsmClient_t *HsmClient, EfuseRowWrite_t *writeRow)
The service issued to HSM Server writes the data to extended OTP efuse row based on row index provide...
Definition: hsmclient.c:849
FirmwareUpdateReq_t::dataLength
uint32_t dataLength
Definition: hsmclient.h:305
FirewallIntrReq_t::interruptEnable
uint8_t interruptEnable
Definition: hsmclient.h:221
KeyWriterCertHeader_t::certAddress
uint8_t * certAddress
Definition: hsmclient.h:179
Hsmclient_loadHSMRtFirmware
int32_t Hsmclient_loadHSMRtFirmware(HsmClient_t *gHSMClient, const uint8_t *pHSMRt_firmware)
Loads the HSMRt firmware. This is typically called by SBL.
Definition: hsmclient_loadhsmrt.c:323
HsmClient_procAuthBootUpdate
int32_t HsmClient_procAuthBootUpdate(HsmClient_t *HsmClient, SecureBoot_Stream_t *secureBootInfo)
The service issued to HSM Server helps with extended secure boot for applications.
Definition: hsmclient.c:1223
HsmClient_readOTPRow
int32_t HsmClient_readOTPRow(HsmClient_t *HsmClient, EfuseRead_t *readRow)
The service issued to HSM Server retrieves the data of GP OTP row based on row index provided as para...
Definition: hsmclient.c:781
HsmClient_waitForBootNotify
int32_t HsmClient_waitForBootNotify(HsmClient_t *HsmClient, uint32_t timeToWaitInTicks)
Current core will wait for bootnotify message from HSM core.
EfuseRowWrite_t::rowData
uint32_t rowData
Definition: hsmclient.h:140
HsmClient_t::Semaphore
SemaphoreP_Object Semaphore
Definition: hsmclient.h:112
HsmVer_t_::MinorVer
uint8_t MinorVer
Definition: hsmclient.h:89
EfuseRowProt_t::writeProt
uint8_t writeProt
Definition: hsmclient.h:168
EfuseRead_t
This is a EfuseRead type which holds the information of eFuse row index and row data corresponding to...
Definition: hsmclient.h:127
FirewallRegionReq_t::firewallId
uint16_t firewallId
Definition: hsmclient.h:192
RNGReq_t::resultLengthPtr
uint32_t * resultLengthPtr
Definition: hsmclient.h:275
HsmClient_getUID
int32_t HsmClient_getUID(HsmClient_t *HsmClient, uint8_t *uid, uint32_t timeout)
The service issued to HSM Server populates the Device UID by default the hsm flag is set to HSM_FLAG_...
Definition: hsmclient.c:569
HsmClient_keyWriter
int32_t HsmClient_keyWriter(HsmClient_t *HsmClient, KeyWriterCertHeader_t *certHeader, uint32_t timeout)
The service issued to HSM Server verifies the certificate and process the keywriter operations,...
Definition: hsmclient.c:1506
EfuseRowWrite_t::rowIdx
uint8_t rowIdx
Definition: hsmclient.h:142
HsmClient_t::ClientId
uint8_t ClientId
Definition: hsmclient.h:117
SemaphoreP_Object
Opaque semaphore object used with the semaphore APIs.
Definition: SemaphoreP.h:59
HsmClient_getRandomNum
int32_t HsmClient_getRandomNum(HsmClient_t *HsmClient, RNGReq_t *getRandomNum)
Returns the Random Number Generated.
Definition: hsmclient.c:1713
KeyWriterCertHeader_t::debugResponse
uint32_t debugResponse
Definition: hsmclient.h:181
HsmClient_getDKEK
int32_t HsmClient_getDKEK(HsmClient_t *HsmClient, DKEK_t *getDKEK, uint32_t timeout)
The service issued to HSM Server retrieves the derived KEK based on identifier as param.
Definition: hsmclient.c:1439
RNGReq_t::reserved
uint8_t reserved
Definition: hsmclient.h:279
EfuseRowCount_t::rowSize
uint8_t rowSize
Definition: hsmclient.h:154
KeyWriterCertHeader_t::reserved
uint32_t reserved
Definition: hsmclient.h:182
FirmwareUpdateReq_t
This is Firmware Update request structure passed to HSM core via SIPC as argument,...
Definition: hsmclient.h:303
DKEK_t::label_length
uint8_t label_length
Definition: hsmclient.h:255
__attribute__
union HsmVer_t_ __attribute__((packed)) HsmVer_t
type for reading HSMRt version.
KeyWriterCertHeader_t
This is a keywriter_cert_header type which holds the information of customer key certificate and debu...
Definition: hsmclient.h:178
FirewallIntrReq_t::interruptEnableStatusClear
uint8_t interruptEnableStatusClear
Definition: hsmclient.h:223
FirewallReq_t::crcArr
uint16_t crcArr
Definition: hsmclient.h:207
RNGReq_t
This is RNG type which holds the resultPtr for derivation which is returned by TIFS....
Definition: hsmclient.h:273
HsmClient_procAuthBoot
int32_t HsmClient_procAuthBoot(HsmClient_t *HsmClient, uint8_t *cert, uint32_t cert_size, uint32_t timeout)
The service issued to HSM Server helps with extended secure boot for applications.
Definition: hsmclient.c:1117
HsmClient_getVersion
int32_t HsmClient_getVersion(HsmClient_t *HsmClient, HsmVer_t *verId, uint32_t timeToWaitInTick)
populates the current HSMRT version Id by default the hsm flag is set to HSM_FLAG_AOP for this servic...
Definition: hsmclient.c:500
RNGReq_t::DRBGMode
uint8_t DRBGMode
Definition: hsmclient.h:276
HsmClient_lockOTPRow
int32_t HsmClient_lockOTPRow(HsmClient_t *HsmClient, EfuseRowProt_t *rowProt)
The service issued to HSM Server sets the protection status bit of the specified row to 1.
Definition: hsmclient.c:916
hsmclient_utils.h
HsmClient_t::ReqMsg
HsmMsg_t ReqMsg
Definition: hsmclient.h:114
HsmClient_deInit
void HsmClient_deInit(void)
De initialize the HSM client for current core.