S32K3 HSE: Export EDDSA Public Key

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

S32K3 HSE: Export EDDSA Public Key

跳至解决方案
602 次查看
MHan
Contributor I

I am able to generate an ED25519 key pair with the Key Generation Service, and I would like to be able to export the public key later with the Key Export Service. However, the HSE returns a HSE_SRV_RSP_NOT_ALLOWED when I attempt to export the public key.

When I generate the key I use the following parameters:
Service ID: HSE_SRV_ID_KEY_GENERATE

targetKeyHandle = key_handle;

keyInfo:
keyFlags = HSE_KF_USAGE_SIGN | HSE_KF_USAGE_VERIFY | HSE_KF_ACCESS_EXPORTABLE
keyBitLen = HSE_KEY256_BITS
keyCounter = 0
smrFlags = 0
keyType = HSE_KEY_TYPE_ECC_PAIR
specific.eccCurveId = HSE_EC_25519_ED25519

keyGenScheme = HSE_KEY_GEN_ECC_KEY_PAIR

sch.eccKey.pPubKey = (HOST_ADDR)pub_key_output_ptr;

And when I export the key:

Service ID: HSE_SRV_ID_EXPORT_KEY

targetKeyHandle = key_handle; // Same Key Handle

keyInfo:
keyFlags = HSE_KF_USAGE_VERIFY | HSE_KF_ACCESS_EXPORTABLE
keyBitLen = HSE_KEY256_BITS
keyCounter = 0
smrFlags = 0
keyType = HSE_KEY_TYPE_ECC_PAIR
specific.eccCurveId = HSE_EC_25519_ED25519

pKey[0] = (HOST_ADDR)pub_key_output_ptr;
pKeyLen[0] = (HOST_ADDR)&g_identity_key_len;
 
Are there any parameter's that are missing or configured incorrectly?

 

标记 (3)
0 项奖励
回复
1 解答
568 次查看
lukaszadrapa
NXP TechSupport
NXP TechSupport

Hi @MHan 

I can see nothing wrong in those parameters. Because the public ECC key is exported in plain and not authenticated, did you configured cipherKeyHandle and authKeyHandle as HSE_INVALID_KEY_HANDLE (0xFFFFFFFF)? Setting of HSE_INVALID_KEY_HANDLE to these key handles ensures that authentication and encryption parameters are ignored.
Also try to disable data cache to confirm it is not cache issue.

Regards,
Lukas

在原帖中查看解决方案

2 回复数
529 次查看
MHan
Contributor I

Thank you Lukas, I was missing setting the HSE_INVALID_KEY_HANDLE's.

I see now in the header files: Must be set to #HSE_INVALID_KEY_HANDLE if not used.

0 项奖励
回复
569 次查看
lukaszadrapa
NXP TechSupport
NXP TechSupport

Hi @MHan 

I can see nothing wrong in those parameters. Because the public ECC key is exported in plain and not authenticated, did you configured cipherKeyHandle and authKeyHandle as HSE_INVALID_KEY_HANDLE (0xFFFFFFFF)? Setting of HSE_INVALID_KEY_HANDLE to these key handles ensures that authentication and encryption parameters are ignored.
Also try to disable data cache to confirm it is not cache issue.

Regards,
Lukas

%3CLINGO-SUB%20id%3D%22lingo-sub-2189425%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ES32K3%20HSE%EF%BC%9A%E5%AF%BC%E5%87%BA%20EDDSA%20%E5%85%AC%E9%92%A5%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2189425%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%3CSPAN%3E%E6%88%91%E5%8F%AF%E4%BB%A5%E4%BD%BF%E7%94%A8%20%22%E5%AF%86%E9%92%A5%E7%94%9F%E6%88%90%E6%9C%8D%E5%8A%A1%20%22%E7%94%9F%E6%88%90%20ED25519%20%E5%AF%86%E9%92%A5%E5%AF%B9%EF%BC%8C%E5%B9%B6%E5%B8%8C%E6%9C%9B%E7%A8%8D%E5%90%8E%E8%83%BD%E4%BD%BF%E7%94%A8%20%22%E5%AF%86%E9%92%A5%E5%AF%BC%E5%87%BA%E6%9C%8D%E5%8A%A1%20%22%E5%AF%BC%E5%87%BA%E5%85%AC%E9%92%A5%E3%80%82%E4%BD%86%E6%98%AF%EF%BC%8C%E5%BD%93%E6%88%91%E5%B0%9D%E8%AF%95%E5%AF%BC%E5%87%BA%E5%85%AC%E9%92%A5%E6%97%B6%EF%BC%8CHSE%20%E8%BF%94%E5%9B%9E%20HSE_SRV_RSP_NOT_ALLOWED%E3%80%82%3CBR%20%2F%3E%3CBR%20%2F%3E%3CFONT%20size%3D%224%22%3E%E7%94%9F%E6%88%90%E5%AF%86%E9%92%A5%E6%97%B6%EF%BC%8C%E6%88%91%E4%BD%BF%E7%94%A8%E4%BA%86%E4%BB%A5%E4%B8%8B%E5%8F%82%E6%95%B0%EF%BC%9A%3C%2FFONT%3E%3CBR%20%2F%3E%E6%9C%8D%E5%8A%A1%20ID%EF%BC%9AHSE_SRV_ID_KEY_GENERATE%3CBR%20%2F%3E%3CBR%20%2F%3EtargetKeyHandle%20%3D%20key_handle%EF%BC%9B%3CBR%20%2F%3E%3CBR%20%2F%3EkeyInfo%EF%BC%9A%3CBR%20%2F%3EkeyFlags%20%3D%20HSE_KF_USAGE_SIGN%20%7C%20HSE_KF_USAGE_VERIFY%20%7C%20HSE_KF_ACCESS_EXPORTABLE%3CBR%20%2F%3EkeyBitLen%20%3D%20HSE_KEY256_BITS%3CBR%20%2F%3EkeyCounter%20%3D%200%3CBR%20%2F%3EsmrFlags%20%3D%200%3CBR%20%2F%3EkeyType%20%3D%20HSE_KEY_TYPE_ECC_PAIR%3CBR%20%2F%3Especific.eccCurveId%20%3D%20HSE_EC_25519_ED25519%3CBR%20%2F%3E%3CBR%20%2F%3EkeyGenScheme%20%3D%20HSE_KEY_GEN_ECC_KEY_PAIR%3CBR%20%2F%3E%3CBR%20%2F%3Esch.eccKey.pPubKey%20%3D%20(HOST_ADDR)pub_key_output_ptr%3B%3CBR%20%2F%3E%3CBR%20%2F%3E%3CFONT%20size%3D%224%22%3E%E5%BD%93%E6%88%91%E5%AF%BC%E5%87%BA%E5%AF%86%E9%92%A5%E6%97%B6%EF%BC%9A%3C%2FFONT%3E%3C%2FSPAN%3E%3C%2FP%3E%3CDIV%3E%3CDIV%3E%E6%9C%8D%E5%8A%A1%20ID%EF%BC%9AHSE_SRV_ID_EXPORT_KEY%3CBR%20%2F%3E%3CBR%20%2F%3EtargetKeyHandle%20%3D%20key_handle%3B%20%2F%2F%20%E7%9B%B8%E5%90%8C%E7%9A%84%E5%AF%86%E9%92%A5%E5%8F%A5%E6%9F%84%3CBR%20%2F%3E%3CBR%20%2F%3EkeyInfo%EF%BC%9A%3CBR%20%2F%3EkeyFlags%20%3D%20HSE_KF_USAGE_VERIFY%20%7C%20HSE_KF_ACCESS_EXPORTABLE%3CBR%20%2F%3EkeyBitLen%20%3D%20HSE_KEY256_BITS%3CBR%20%2F%3EkeyCounter%20%3D%200%3CBR%20%2F%3EsmrFlags%20%3D%200%3CBR%20%2F%3EkeyType%20%3D%20HSE_KEY_TYPE_ECC_PAIR%3CBR%20%2F%3Especific.eccCurveId%20%3D%20HSE_EC_25519_ED25519%3CBR%20%2F%3E%3CBR%20%2F%3EpKey%5B0%5D%20%3D%20(HOST_ADDR)pub_key_output_ptr%3B%3CBR%20%2F%3EpKeyLen%5B0%5D%20%3D%20(HOST_ADDR)%26amp%3Bg_identity_key_len%EF%BC%9B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%E6%98%AF%E5%90%A6%E6%9C%89%E4%BB%BB%E4%BD%95%E5%8F%82%E6%95%B0%E4%B8%A2%E5%A4%B1%E6%88%96%E9%85%8D%E7%BD%AE%E9%94%99%E8%AF%AF%EF%BC%9F%3C%2FDIV%3E%3C%2FDIV%3E%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2192016%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20S32K3%20HSE%3A%20Export%20EDDSA%20Public%20Key%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2192016%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E8%B0%A2%E8%B0%A2%E4%BD%A0%EF%BC%8CLukas%EF%BC%8C%E6%88%91%E6%B2%A1%E6%9C%89%E8%AE%BE%E7%BD%AE%3CSPAN%3EHSE_INVALID_KEY_HANDLE%E3%80%82%20%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%E7%8E%B0%E5%9C%A8%E6%88%91%E5%9C%A8%E5%A4%B4%E6%96%87%E4%BB%B6%E4%B8%AD%E7%9C%8B%E5%88%B0%20%3C%2FSPAN%3E%3CSPAN%3E%E5%A6%82%E6%9E%9C%E6%9C%AA%E4%BD%BF%E7%94%A8%EF%BC%8C%E5%BF%85%E9%A1%BB%E8%AE%BE%E7%BD%AE%E4%B8%BA%20%23HSE_INVALID_KEY_HANDLE%E3%80%82%3C%2FSPAN%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2189916%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20S32K3%20HSE%3A%20Export%20EDDSA%20Public%20Key%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2189916%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E5%97%A8%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F255983%22%20target%3D%22_blank%22%3E%40MHan%3C%2FA%3E%3C%2FP%3E%0A%3CP%3E%E6%88%91%E7%9C%8B%E4%B8%8D%E5%87%BA%E8%BF%99%E4%BA%9B%E5%8F%82%E6%95%B0%E6%9C%89%E4%BB%80%E4%B9%88%E9%97%AE%E9%A2%98%E3%80%82%E7%94%B1%E4%BA%8E%E5%85%AC%E5%BC%80%20ECC%20%E5%AF%86%E9%92%A5%E4%BB%A5%E6%98%8E%E6%96%87%E5%BD%A2%E5%BC%8F%E5%AF%BC%E5%87%BA%EF%BC%8C%E6%9C%AA%E7%BB%8F%E9%AA%8C%E8%AF%81%EF%BC%8C%E6%82%A8%E6%98%AF%E5%90%A6%E5%B0%86%20cipherKeyHandle%20%E5%92%8C%20authKeyHandle%20%E9%85%8D%E7%BD%AE%E4%B8%BA%20HSE_INVALID_KEY_HANDLE%20(0xFFFFFFFF)%EF%BC%9F%E5%AF%B9%E8%BF%99%E4%BA%9B%E5%AF%86%E9%92%A5%E5%8F%A5%E6%9F%84%E8%AE%BE%E7%BD%AE%20HSE_INVALID_KEY_HANDLE%20%E5%8F%AF%E7%A1%AE%E4%BF%9D%E5%BF%BD%E7%95%A5%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81%E5%92%8C%E5%8A%A0%E5%AF%86%E5%8F%82%E6%95%B0%E3%80%82%3CBR%20%2F%3E%E8%BF%98%E5%8F%AF%E4%BB%A5%E5%B0%9D%E8%AF%95%E7%A6%81%E7%94%A8%E6%95%B0%E6%8D%AE%E7%BC%93%E5%AD%98%EF%BC%8C%E4%BB%A5%E7%A1%AE%E8%AE%A4%E4%B8%8D%E6%98%AF%E7%BC%93%E5%AD%98%E9%97%AE%E9%A2%98%E3%80%82%3C%2FP%3E%0A%3CP%3E%E9%97%AE%E5%80%99%EF%BC%8C%3CBR%20%2F%3ELukas%3C%2FP%3E%3C%2FLINGO-BODY%3E