<?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>S32KのトピックRe: HSE_SRV_ID_GET_KEY_INFO service return - HSE_SRV_RSP_NOT_ALLOWED responce</title>
    <link>https://community.nxp.com/t5/S32K/HSE-SRV-ID-GET-KEY-INFO-service-return-HSE-SRV-RSP-NOT-ALLOWED/m-p/2360142#M58349</link>
    <description>Hii &lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/37795"&gt;@lukaszadrapa&lt;/a&gt;&lt;BR /&gt;&lt;BR /&gt;1. As you can see in following line, the variable is placed in non-cacheable memory and that is verified.&lt;BR /&gt;/* The variables in the section below need to be put in non-cacheable memory area in order to be correctly seen by the HSE */&lt;BR /&gt;#define CRYPTO_START_SEC_VAR_CLEARED_UNSPECIFIED_NO_CACHEABLE&lt;BR /&gt;#include "Crypto_MemMap.h"&lt;BR /&gt;&lt;BR /&gt;/* Variable where HSE will write (return) the supported capabilities */&lt;BR /&gt;static hseAttrCapabilities_t Hse_AttrCapabilities;&lt;BR /&gt;static hseAttrSecureLifecycle_t hseAttrSecureLifecycle;&lt;BR /&gt;static hseKeyInfo_t aes128NvmKeyInfo;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;/* Variable where application will store the request of configuring (enabling/disabling) the MU instances */&lt;BR /&gt;static hseAttrMUConfig_t Hse_MuConfig;&lt;BR /&gt;&lt;BR /&gt;#define CRYPTO_STOP_SEC_VAR_CLEARED_UNSPECIFIED_NO_CACHEABLE&lt;BR /&gt;#include "Crypto_MemMap.h"&lt;BR /&gt;&lt;BR /&gt;#define CRYPTO_START_SEC_VAR_SHARED_CLEARED_UNSPECIFIED_NO_CACHEABLE&lt;BR /&gt;#include "Crypto_MemMap.h"&lt;BR /&gt;&lt;BR /&gt;2. Also tried with disabling cache memory, the result is same.</description>
    <pubDate>Mon, 04 May 2026 16:22:14 GMT</pubDate>
    <dc:creator>KaleRushikesh</dc:creator>
    <dc:date>2026-05-04T16:22:14Z</dc:date>
    <item>
      <title>HSE_SRV_ID_GET_KEY_INFO service return - HSE_SRV_RSP_NOT_ALLOWED responce</title>
      <link>https://community.nxp.com/t5/S32K/HSE-SRV-ID-GET-KEY-INFO-service-return-HSE-SRV-RSP-NOT-ALLOWED/m-p/2359672#M58324</link>
      <description>&lt;P&gt;&lt;SPAN&gt;I am working with the HSE on an S32K3 device and have successfully imported an AES-128 key into NVM using the IMPORT_KEY service. The import service completes without error.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;To verify the key, I am using the GET_KEY_INFO service descriptor as shown below-&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&lt;DIV&gt;&lt;PRE&gt;&lt;SPAN&gt;static&lt;/SPAN&gt; &lt;SPAN&gt;hseSrvResponse_t &lt;/SPAN&gt;&lt;SPAN&gt;App_GetKeyInfo&lt;/SPAN&gt;
&lt;SPAN&gt;(
    const uint8 u8MuInstance,
    hseKeyInfo_t* pAes128NvmKeyInfo
)&lt;/SPAN&gt;
&lt;SPAN&gt;{
    &lt;/SPAN&gt;&lt;SPAN&gt;hseSrvDescriptor_t* &lt;/SPAN&gt;&lt;SPAN&gt;pHseSrvDescriptor;
    &lt;/SPAN&gt;&lt;SPAN&gt;hseGetKeyInfoSrv_t* &lt;/SPAN&gt;&lt;SPAN&gt;pHseGetKeyInfo;

    &lt;/SPAN&gt;&lt;SPAN&gt;pHseSrvDescriptor &lt;/SPAN&gt;&lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;&amp;amp;Hse_aSrvDescriptor[MU_ADMIN_CHANNEL_U8];
    &lt;/SPAN&gt;&lt;SPAN&gt;memset&lt;/SPAN&gt;&lt;SPAN&gt;(pHseSrvDescriptor, &lt;/SPAN&gt;&lt;SPAN&gt;0&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;sizeof&lt;/SPAN&gt;&lt;SPAN&gt;(hseSrvDescriptor_t));

    &lt;/SPAN&gt;&lt;SPAN&gt;pHseGetKeyInfo &lt;/SPAN&gt;&lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;&amp;amp;(pHseSrvDescriptor-&amp;gt;hseSrv.getKeyInfoReq);

    &lt;/SPAN&gt;&lt;SPAN&gt;pHseSrvDescriptor-&amp;gt;srvId &lt;/SPAN&gt;&lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;HSE_SRV_ID_GET_KEY_INFO;
    &lt;/SPAN&gt;&lt;SPAN&gt;pHseGetKeyInfo-&amp;gt;keyHandle &lt;/SPAN&gt;&lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;GET_KEY_HANDLE(HSE_KEY_CATALOG_ID_NVM, &lt;/SPAN&gt;&lt;SPAN&gt;1U&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;0U&lt;/SPAN&gt;&lt;SPAN&gt;);
    &lt;/SPAN&gt;&lt;SPAN&gt;pHseGetKeyInfo-&amp;gt;pKeyInfo &lt;/SPAN&gt;&lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;(HOST_ADDR)pAes128NvmKeyInfo;

    &lt;/SPAN&gt;&lt;SPAN&gt;HseIp_aRequest[MU_ADMIN_CHANNEL_U8].eReqType   &lt;/SPAN&gt;&lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;HSE_IP_REQTYPE_SYNC;
    &lt;/SPAN&gt;&lt;SPAN&gt;HseIp_aRequest[MU_ADMIN_CHANNEL_U8].u32Timeout &lt;/SPAN&gt;&lt;SPAN&gt;= &lt;/SPAN&gt;&lt;SPAN&gt;TIMEOUT_TICKS_U32;

    &lt;/SPAN&gt;&lt;SPAN&gt;return&lt;/SPAN&gt; &lt;SPAN&gt;Hse_Ip_ServiceRequest(u8MuInstance, &lt;/SPAN&gt;&lt;SPAN&gt;MU_ADMIN_CHANNEL_U8,
                                 &lt;/SPAN&gt;&lt;SPAN&gt;&amp;amp;HseIp_aRequest[MU_ADMIN_CHANNEL_U8],
                                 &lt;/SPAN&gt;&lt;SPAN&gt;pHseSrvDescriptor);&lt;/SPAN&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&lt;SPAN&gt;However, when I call this service, the response is not HSE_SRV_RSP_OK. Instead, the service seems to return HSE_SRV_ID_GET_KEY_INFO.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;My device is currently in &lt;STRONG&gt;CUST_DEL lifecycle state&lt;/STRONG&gt;.&lt;BR /&gt;&lt;BR /&gt;Here is the Aes import key service descriptor-&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;static hseSrvResponse_t App_AesLoadPlainNvmKey(void)&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;hseSrvResponse_t RetVal = HSE_SRV_RSP_GENERAL_ERROR;&lt;/SPAN&gt;&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_DECRYPT | HSE_KF_USAGE_ENCRYPT | HSE_KF_USAGE_KEY_PROVISION );&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;keyInfo.keyCounter = 0; // first time while NVM key importing it should be greater than or equal to 0.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;keyInfo.smrFlags = 0;&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_au8AesNvmKey);&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(1,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;SPAN&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;return RetVal;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;</description>
      <pubDate>Fri, 01 May 2026 15:18:50 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/HSE-SRV-ID-GET-KEY-INFO-service-return-HSE-SRV-RSP-NOT-ALLOWED/m-p/2359672#M58324</guid>
      <dc:creator>KaleRushikesh</dc:creator>
      <dc:date>2026-05-01T15:18:50Z</dc:date>
    </item>
    <item>
      <title>Re: HSE_SRV_ID_GET_KEY_INFO service return - HSE_SRV_RSP_NOT_ALLOWED responce</title>
      <link>https://community.nxp.com/t5/S32K/HSE-SRV-ID-GET-KEY-INFO-service-return-HSE-SRV-RSP-NOT-ALLOWED/m-p/2359958#M58336</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;I can see nothing wrong,&amp;nbsp;HSE_SRV_ID_GET_KEY_INFO is simple service, this should work.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Isn't that just data cache issue? Could you try to turn off the data cache to see if it makes a difference? All objects used for communication with HSE must be forced to non-cacheable memory.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Regards,&lt;/P&gt;
&lt;P&gt;Lukas&lt;/P&gt;</description>
      <pubDate>Mon, 04 May 2026 08:10:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/HSE-SRV-ID-GET-KEY-INFO-service-return-HSE-SRV-RSP-NOT-ALLOWED/m-p/2359958#M58336</guid>
      <dc:creator>lukaszadrapa</dc:creator>
      <dc:date>2026-05-04T08:10:02Z</dc:date>
    </item>
    <item>
      <title>Re: HSE_SRV_ID_GET_KEY_INFO service return - HSE_SRV_RSP_NOT_ALLOWED responce</title>
      <link>https://community.nxp.com/t5/S32K/HSE-SRV-ID-GET-KEY-INFO-service-return-HSE-SRV-RSP-NOT-ALLOWED/m-p/2360142#M58349</link>
      <description>Hii &lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/37795"&gt;@lukaszadrapa&lt;/a&gt;&lt;BR /&gt;&lt;BR /&gt;1. As you can see in following line, the variable is placed in non-cacheable memory and that is verified.&lt;BR /&gt;/* The variables in the section below need to be put in non-cacheable memory area in order to be correctly seen by the HSE */&lt;BR /&gt;#define CRYPTO_START_SEC_VAR_CLEARED_UNSPECIFIED_NO_CACHEABLE&lt;BR /&gt;#include "Crypto_MemMap.h"&lt;BR /&gt;&lt;BR /&gt;/* Variable where HSE will write (return) the supported capabilities */&lt;BR /&gt;static hseAttrCapabilities_t Hse_AttrCapabilities;&lt;BR /&gt;static hseAttrSecureLifecycle_t hseAttrSecureLifecycle;&lt;BR /&gt;static hseKeyInfo_t aes128NvmKeyInfo;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;/* Variable where application will store the request of configuring (enabling/disabling) the MU instances */&lt;BR /&gt;static hseAttrMUConfig_t Hse_MuConfig;&lt;BR /&gt;&lt;BR /&gt;#define CRYPTO_STOP_SEC_VAR_CLEARED_UNSPECIFIED_NO_CACHEABLE&lt;BR /&gt;#include "Crypto_MemMap.h"&lt;BR /&gt;&lt;BR /&gt;#define CRYPTO_START_SEC_VAR_SHARED_CLEARED_UNSPECIFIED_NO_CACHEABLE&lt;BR /&gt;#include "Crypto_MemMap.h"&lt;BR /&gt;&lt;BR /&gt;2. Also tried with disabling cache memory, the result is same.</description>
      <pubDate>Mon, 04 May 2026 16:22:14 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/HSE-SRV-ID-GET-KEY-INFO-service-return-HSE-SRV-RSP-NOT-ALLOWED/m-p/2360142#M58349</guid>
      <dc:creator>KaleRushikesh</dc:creator>
      <dc:date>2026-05-04T16:22:14Z</dc:date>
    </item>
    <item>
      <title>Re: HSE_SRV_ID_GET_KEY_INFO service return - HSE_SRV_RSP_NOT_ALLOWED responce</title>
      <link>https://community.nxp.com/t5/S32K/HSE-SRV-ID-GET-KEY-INFO-service-return-HSE-SRV-RSP-NOT-ALLOWED/m-p/2360437#M58363</link>
      <description>&lt;P&gt;Now I noticed that you use&amp;nbsp;&lt;SPAN&gt;MU_ADMIN_CHANNEL_U8&lt;/SPAN&gt;&amp;nbsp;here (i.e. channel 0):&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;SPAN&gt;return&lt;/SPAN&gt; &lt;SPAN&gt;Hse_Ip_ServiceRequest(u8MuInstance, &lt;/SPAN&gt;&lt;SPAN&gt;MU_ADMIN_CHANNEL_U8,
                                 &lt;/SPAN&gt;&lt;SPAN&gt;&amp;amp;HseIp_aRequest[MU_ADMIN_CHANNEL_U8],
                                 &lt;/SPAN&gt;&lt;SPAN&gt;pHseSrvDescriptor);&lt;/SPAN&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;That's not correct.&amp;nbsp;HSE_SRV_ID_GET_KEY_INFO service is not administrator service. It's not possible to use channel 0. You need to use channel 1 or higher. Then it will work as expected.&amp;nbsp;&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>Tue, 05 May 2026 10:59:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/HSE-SRV-ID-GET-KEY-INFO-service-return-HSE-SRV-RSP-NOT-ALLOWED/m-p/2360437#M58363</guid>
      <dc:creator>lukaszadrapa</dc:creator>
      <dc:date>2026-05-05T10:59:27Z</dc:date>
    </item>
    <item>
      <title>Re: HSE_SRV_ID_GET_KEY_INFO service return - HSE_SRV_RSP_NOT_ALLOWED responce</title>
      <link>https://community.nxp.com/t5/S32K/HSE-SRV-ID-GET-KEY-INFO-service-return-HSE-SRV-RSP-NOT-ALLOWED/m-p/2360600#M58370</link>
      <description>Thanks &lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/37795"&gt;@lukaszadrapa&lt;/a&gt;</description>
      <pubDate>Tue, 05 May 2026 17:17:51 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/HSE-SRV-ID-GET-KEY-INFO-service-return-HSE-SRV-RSP-NOT-ALLOWED/m-p/2360600#M58370</guid>
      <dc:creator>KaleRushikesh</dc:creator>
      <dc:date>2026-05-05T17:17:51Z</dc:date>
    </item>
  </channel>
</rss>

