<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Facing issue while setting the RAM catalog key as key provision using key usages flag in S32K</title>
    <link>https://community.nxp.com/t5/S32K/Facing-issue-while-setting-the-RAM-catalog-key-as-key-provision/m-p/2336681#M57429</link>
    <description>Any updates, Team</description>
    <pubDate>Fri, 20 Mar 2026 12:34:59 GMT</pubDate>
    <dc:creator>KaleRushikesh</dc:creator>
    <dc:date>2026-03-20T12:34:59Z</dc:date>
    <item>
      <title>Facing issue while setting the RAM catalog key as key provision using key usages flag</title>
      <link>https://community.nxp.com/t5/S32K/Facing-issue-while-setting-the-RAM-catalog-key-as-key-provision/m-p/2333504#M57350</link>
      <description>&lt;P&gt;Hello NXP Team,&lt;/P&gt;&lt;P&gt;I want to use the RAM catalog key (which is in plain) to provision the next import keys in RAM catalog. For this purpose, we add the key usages flag as shown below for the key. But the hse service gives&amp;nbsp;HSE_SRV_RSP_INVALID_PARAM as response after adding the usages flag HSE_KF_USAGE_KEY_PROVISION.&lt;/P&gt;&lt;P&gt;As per my understanding we can use RAM key if it is with usages flag HSE_SRV_RSP_INVALID_PARAM to provision the keys, then why this happened?&lt;/P&gt;&lt;P&gt;Here is my service descriptor: -&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;hseSrvResponse_t RetVal = HSE_SRV_RSP_GENERAL_ERROR;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;hseSrvDescriptor_t *pHseSrvDescriptor;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;uint8 u8MuChannel = Hse_Ip_GetFreeChannel(MU0_INSTANCE_U8);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;keyInfo.keyBitLen = 128;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;keyInfo.keyType = HSE_KEY_TYPE_AES;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;keyInfo.keyFlags =&amp;nbsp; (HSE_KF_USAGE_KEY_PROVISION | HSE_KF_USAGE_DECRYPT | HSE_KF_USAGE_ENCRYPT );&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;//keyInfo.specific.aesBlockModeMask = HSE_KU_AES_BLOCK_MODE_ANY;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;if(HSE_IP_INVALID_MU_CHANNEL_U8 != u8MuChannel)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;pHseSrvDescriptor&amp;nbsp; &amp;nbsp;= &amp;amp;Hse_aSrvDescriptor[u8MuChannel];&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;memset(pHseSrvDescriptor, 0, sizeof(hseSrvDescriptor_t));&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;pHseSrvDescriptor-&amp;gt;srvId = HSE_SRV_ID_IMPORT_KEY;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;pHseSrvDescriptor-&amp;gt;hseSrv.importKeyReq.keyLen[2] = 16;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;pHseSrvDescriptor-&amp;gt;hseSrv.importKeyReq.pKey[2] = HSE_PTR_TO_HOST_ADDR(App_au8AesRamKey);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;pHseSrvDescriptor-&amp;gt;hseSrv.importKeyReq.pKeyInfo= HSE_PTR_TO_HOST_ADDR(&amp;amp;keyInfo);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;pHseSrvDescriptor-&amp;gt;hseSrv.importKeyReq.targetKeyHandle = GET_KEY_HANDLE(2,1,0);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;// Both the fields given below must be configured.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;pHseSrvDescriptor-&amp;gt;hseSrv.importKeyReq.cipher.cipherKeyHandle= HSE_INVALID_KEY_HANDLE;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;pHseSrvDescriptor-&amp;gt;hseSrv.importKeyReq.keyContainer.authKeyHandle= HSE_INVALID_KEY_HANDLE;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* Build the request to be sent to Hse Ip layer */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; HseIp_aRequest[u8MuChannel].eReqType&amp;nbsp; &amp;nbsp;= HSE_IP_REQTYPE_SYNC;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; HseIp_aRequest[u8MuChannel].u32Timeout = TIMEOUT_TICKS_U32;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /* Send the request to Hse Ip layer */&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RetVal = Hse_Ip_ServiceRequest(MU0_INSTANCE_U8, u8MuChannel, &amp;amp;HseIp_aRequest[u8MuChannel], pHseSrvDescriptor);&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;thanks...&lt;/DIV&gt;</description>
      <pubDate>Mon, 16 Mar 2026 12:19:22 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/Facing-issue-while-setting-the-RAM-catalog-key-as-key-provision/m-p/2333504#M57350</guid>
      <dc:creator>KaleRushikesh</dc:creator>
      <dc:date>2026-03-16T12:19:22Z</dc:date>
    </item>
    <item>
      <title>Re: Facing issue while setting the RAM catalog key as key provision using key usages flag</title>
      <link>https://community.nxp.com/t5/S32K/Facing-issue-while-setting-the-RAM-catalog-key-as-key-provision/m-p/2334017#M57360</link>
      <description>&lt;P&gt;Also, I have the following questions:&lt;BR /&gt;1. We know that while importing RAM/NVM keys, the owner of the provisioning key and the target key must be the same. So, can we use a provisioning key of a different type than the importing key type? For example, can we use an AES-type provisioning key to import an RSA key pair?&lt;BR /&gt;2. Can we import an encrypted key into the RAM/NVM catalog without using authentication if I have superuser rights?&lt;BR /&gt;3. For importing an authenticated key, we need to configure &lt;STRONG&gt;keyConatiner&lt;/STRONG&gt;. I understand the data fields other than&amp;nbsp;&lt;STRONG&gt;pKeyContainer&lt;/STRONG&gt;. Since there is no standard structure that describes this field, could you please explain it with an example?&lt;/P&gt;</description>
      <pubDate>Tue, 17 Mar 2026 10:29:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/Facing-issue-while-setting-the-RAM-catalog-key-as-key-provision/m-p/2334017#M57360</guid>
      <dc:creator>KaleRushikesh</dc:creator>
      <dc:date>2026-03-17T10:29:28Z</dc:date>
    </item>
    <item>
      <title>Re: Facing issue while setting the RAM catalog key as key provision using key usages flag</title>
      <link>https://community.nxp.com/t5/S32K/Facing-issue-while-setting-the-RAM-catalog-key-as-key-provision/m-p/2336681#M57429</link>
      <description>Any updates, Team</description>
      <pubDate>Fri, 20 Mar 2026 12:34:59 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/Facing-issue-while-setting-the-RAM-catalog-key-as-key-provision/m-p/2336681#M57429</guid>
      <dc:creator>KaleRushikesh</dc:creator>
      <dc:date>2026-03-20T12:34:59Z</dc:date>
    </item>
    <item>
      <title>Re: Facing issue while setting the RAM catalog key as key provision using key usages flag</title>
      <link>https://community.nxp.com/t5/S32K/Facing-issue-while-setting-the-RAM-catalog-key-as-key-provision/m-p/2337521#M57442</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/253372"&gt;@KaleRushikesh&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Sorry for delay, I'm quite overloaded now. I will try to check this later today or tomorrow. Thanks for patience.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Regards,&lt;/P&gt;
&lt;P&gt;Lukas&lt;/P&gt;</description>
      <pubDate>Mon, 23 Mar 2026 09:33:20 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/Facing-issue-while-setting-the-RAM-catalog-key-as-key-provision/m-p/2337521#M57442</guid>
      <dc:creator>lukaszadrapa</dc:creator>
      <dc:date>2026-03-23T09:33:20Z</dc:date>
    </item>
    <item>
      <title>Re: Facing issue while setting the RAM catalog key as key provision using key usages flag</title>
      <link>https://community.nxp.com/t5/S32K/Facing-issue-while-setting-the-RAM-catalog-key-as-key-provision/m-p/2337708#M57459</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/253372"&gt;@KaleRushikesh&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Description of hseImportKeySrv_t in HSE Service API reference manual explicitly states:&lt;/P&gt;
&lt;P&gt;“The RAM provision keys can be imported only authenticated and can be used only to import RAM keys.”&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It also says:&lt;/P&gt;
&lt;P&gt;“The NVM provisioning keys can be installed/updated without authentication only having&lt;/P&gt;
&lt;P&gt;SuperUser rights; they can also be updated having User rights using the pre-installed provision keys.”&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;So, SuperUser rights are not sufficient for RAM keys, the authentication is needed.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;We know that while importing RAM/NVM keys, the owner of the provisioning key and the target key must be the same. So, can we use a provisioning key of a different type than the importing key type? For example, can we use an AES-type provisioning key to import an RSA key pair?&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;- That’s correct, you can use different key types – like mentioned AES provisioning key to import RSA key pair.&lt;/P&gt;
&lt;OL start="2"&gt;
&lt;LI&gt;&lt;BR /&gt;Can we import an encrypted key into the RAM/NVM catalog without using authentication if I have superuser rights?&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;- No. The HSE Service API reference manual explicitly says:&lt;BR /&gt;“An encrypted key can be imported only authenticated.”&lt;/P&gt;
&lt;P&gt;This is valid for both User rights and SuperUser rights.&lt;/P&gt;
&lt;OL start="3"&gt;
&lt;LI&gt;&lt;BR /&gt;For importing an authenticated key, we need to configure &lt;STRONG&gt;keyConatiner&lt;/STRONG&gt;. I understand the data fields other than&amp;nbsp;&lt;STRONG&gt;pKeyContainer&lt;/STRONG&gt;. Since there is no standard structure that describes this field, could you please explain it with an example?&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;- KeyContainer has no defined structure. But the idea is simple – it’s just an array somewhere in RAM. You are supposed to copy KeyInfo structure and the Key itself to the array. The size of array must be large enough for KeyInfo + Key. It can be bigger, it’s not limited.&lt;/P&gt;
&lt;P&gt;Then you need to generate a signature of the container/array.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;When importing authenticated key, fill structure hseImportKeySrv_t.keyContainer – there’s pointer to the container, length of the container, keyhandle for verification, pointer to signature…&lt;/P&gt;
&lt;P&gt;Pointer to the key and to the KeyInfo is configured in hseImportKeySrv_t. That’s the reason why no specific structure is needed for the container. HSE itself will check if the key and KeyInfo fall within the container.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have an example for update of ECC public key. This operation requires authentication. I used HSE framework from HSE DemoExamples SW package. If you are interested, please create a case here and I will share it:&lt;/P&gt;
&lt;P&gt;&lt;A href="https://support.nxp.com/s/?language=en_US" target="_blank"&gt;https://support.nxp.com/s/?language=en_US&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Write something like “Assign to Lukas Zadrapa” to the description.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Regards,&lt;/P&gt;
&lt;P&gt;Lukas&lt;/P&gt;</description>
      <pubDate>Mon, 23 Mar 2026 15:17:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/Facing-issue-while-setting-the-RAM-catalog-key-as-key-provision/m-p/2337708#M57459</guid>
      <dc:creator>lukaszadrapa</dc:creator>
      <dc:date>2026-03-23T15:17:33Z</dc:date>
    </item>
    <item>
      <title>Re: Facing issue while setting the RAM catalog key as key provision using key usages flag</title>
      <link>https://community.nxp.com/t5/S32K/Facing-issue-while-setting-the-RAM-catalog-key-as-key-provision/m-p/2338424#M57495</link>
      <description>More quick questions-&lt;BR /&gt;1) As the authentication is mandatory for provision key to import in RAM catalog. So, when there is not any provision key present in catalog (means we are importing our first provision key), what are the fields for cipherKeyHandle, authKeyHandle.&lt;BR /&gt;2) I am struggling while calculating the M1, M2, M3, M4, M5 of SHE Key update protocol, do we have some standard tool to calculate these parameters?</description>
      <pubDate>Tue, 24 Mar 2026 09:53:45 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/Facing-issue-while-setting-the-RAM-catalog-key-as-key-provision/m-p/2338424#M57495</guid>
      <dc:creator>KaleRushikesh</dc:creator>
      <dc:date>2026-03-24T09:53:45Z</dc:date>
    </item>
  </channel>
</rss>

