How to achieve dual HAB authentication for two images (bootloader + app) on i.MX RT1050

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

How to achieve dual HAB authentication for two images (bootloader + app) on i.MX RT1050

521 次查看
BiHDeveloper
Contributor I

Hi,

I’m working on a secure boot implementation for the i.MX RT1050 MCU and I’d like to achieve dual image authentication — one for the second-stage bootloader and another for the application image, both located in external flash.

My current setup idea is as follows:

  • I plan to use the MCU Secure Provisioning Tool to generate the SRK, IMG, and CSF keys/certificates.

  • These keys will be used to sign and authenticate the second-stage bootloader through HAB.

  • The application image is stored in flash after the bootloader, and I’d like to be able to update it independently (e.g., via USB or OTA).

At the moment, my idea is to implement a custom authentication mechanism in the second-stage bootloader. The bootloader would:

  1. Read the application image footer (containing a public key, SHA-256 hash, and signature) - manually implemented/added on image.

  2. Verify the app image authenticity before jumping to it.

However, I’d like to know:

  • Is it possible to use NXP-generated certificates (from the Secure Provisioning Tool) or the HAB mechanism itself to authenticate both the bootloader and the application image?

  • If so, what is the recommended approach to securely implement HAB authentication for two images (bootloader + app) on i.MX RT1050?

  • Should both images be signed using the same SRK/CSF keys, or does NXP provide a supported method for multi-image verification?

Any official guidance, examples, or references to documentation for this type of dual secure boot chain would be greatly appreciated.
At the moment, I only have AN12681.pdf, so I would appreciate advice on how to properly implement this setup using NXP’s recommended method.

Thank you!

0 项奖励
回复
3 回复数

500 次查看
diego_charles
NXP TechSupport
NXP TechSupport

Hi @BiHDeveloper 

Your custom bootloader can use the  HAB APIs integrated into the bootROM to authenticate the application image, the image could be signed with the same keys and certs than the bootloader. 

I would like to also  recommend you the CST Version 4.0.1, that you can get  from nxp.com. this is the latest version. From the CST you can check the  RM00298
High Assurance Boot Version 4 API Reference Manual.

At this moment I do not have released and simple demo to point you to. But you can take a look at our SBL. More precisely to the api implementation https://github.com/nxp-mcuxpresso/sbl/blob/master/component/secure/semifunc/hab_rvt.c

I hope this helps!

Diego

 

 

0 项奖励
回复

365 次查看
BiHDeveloper
Contributor I

Hi Diego,

Thank you for your reply and the useful references.

I have used the same key set to sign both the bootloader and the application image, and I am invoking the ROM HAB API from within my Second Stage Bootloader to authenticate the application image.
The authentication process works — the function returns a valid reset handler address, meaning the image is successfully verified.

Here’s the relevant call I am using:
load_addr = (uint32_t)hab_authenticate_image_no_dcd(1, ivt_offset, image_start, bytes);

and the implementation of that wrapper:
hab_image_entry_f hab_authenticate_image_no_dcd(uint8_t cid, uint32_t ivt_offset, uint32_t start, size_t bytes)
{
return g_habrvtTree->authenticate_image_no_dcd(cid, ivt_offset, (void **)&start, (size_t *)&bytes, NULL);
}

However, after the authentication succeeds, I call the ROM functions to report the HAB status and events, and I consistently get a WARNING status, even though the image is validated correctly.

Example output:

Hab rvt report status = 0x69, config = 0xcc, status = 0x99
Report event #0 -> 0xf0
[HAB EVENT #0] (44 bytes):
DB 00 2C 43 69 0A C0 00 CA 00 24 00 02 C5 1B 00 00 00 0A 28 20 00 10 ...
...
No more HAB events (status=0x33)

When parsing the first HAB event according to the HAB4 documentation, it indicates:

  • 0x69 – Warning

  • 0x0A – Unsupported engine

  • 0xC0 – Event logged in hab_rvt.run_csf()

  • The following sequence 0C C5 1B 00 corresponds to the verification index of image key, HAB_PCL_CMS protocol, DCP engine, and default configuration.

So, from what I understand, the ROM reports a warning because it tries to use the DCP engine during CSF execution, but it is not properly available or initialized in this context.
I have attempted to manually enable and initialize the DCP in my bootloader using the SDK API (DCP_Init() with default config and enabling the DCP clock), but the warning still persists.

The image is verified successfully and executes correctly, but I would like to understand how to avoid or suppress this Unsupported Engine (DCP) warning when authenticating an image from the custom bootloader using HAB ROM APIs.

Any insights into how the ROM initializes the DCP during the primary boot process (or how to replicate that behavior from the second stage bootloader) would be very helpful.

Thanks again

0 项奖励
回复

288 次查看
diego_charles
NXP TechSupport
NXP TechSupport

Hi @BiHDeveloper 

You are welcome! 

I am very sorry for my delayed response! 

I already replied to you with a test in this thread : https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/HAB-authentication-succeeds-with-WARNING-Unsuppo... 

please help me to check it, and let me know if you have any questions to do so, or any comments, I will wait for your reply. 

Best regards, 

Diego

0 项奖励
回复
%3CLINGO-SUB%20id%3D%22lingo-sub-2182993%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%E5%A6%82%E4%BD%95%E5%9C%A8%20i.MX%20RT1050%20%E4%B8%8A%E5%AE%9E%E7%8E%B0%E4%B8%A4%E4%B8%AA%E6%98%A0%E5%83%8F%EF%BC%88%E5%90%AF%E5%8A%A8%E5%8A%A0%E8%BD%BD%E7%A8%8B%E5%BA%8F%20%2B%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%EF%BC%89%E7%9A%84%E5%8F%8C%E9%87%8D%20HAB%20%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2182993%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E6%82%A8%E5%A5%BD%EF%BC%8C%3C%2FP%3E%3CP%3E%E6%88%91%E6%AD%A3%E5%9C%A8%E4%B8%BA%20%3CSTRONG%3Ei.MX%20RT1050%20M%3C%2FSTRONG%3E%20CU%20%E5%BC%80%E5%8F%91%E5%AE%89%E5%85%A8%E5%90%AF%E5%8A%A8%E5%AE%9E%E7%8E%B0%EF%BC%8C%E6%88%91%E6%83%B3%E5%AE%9E%E7%8E%B0%3CSTRONG%3E%E5%8F%8C%E6%98%A0%E5%83%8F%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81%3C%2FSTRONG%3E%20%E2%80%94%E2%80%94%E4%B8%80%E4%B8%AA%E7%94%A8%E4%BA%8E%3CSTRONG%3E%E7%AC%AC%E4%BA%8C%E9%98%B6%E6%AE%B5%E5%BC%95%E5%AF%BC%E5%8A%A0%E8%BD%BD%E7%A8%8B%E5%BA%8F%3C%2FSTRONG%3E%EF%BC%8C%E5%8F%A6%E4%B8%80%E4%B8%AA%E7%94%A8%E4%BA%8E%3CSTRONG%3E%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E6%98%A0%E5%83%8F%3C%2FSTRONG%3E%EF%BC%8C%E4%B8%A4%E8%80%85%E9%83%BD%E4%BD%8D%E4%BA%8E%E5%A4%96%E9%83%A8%E9%97%AA%E5%AD%98%E4%B8%AD%E3%80%82%3C%2FP%3E%3CP%3E%E6%88%91%E7%9B%AE%E5%89%8D%E7%9A%84%E8%AE%BE%E7%BD%AE%E6%83%B3%E6%B3%95%E5%A6%82%E4%B8%8B%EF%BC%9A%3C%2FP%3E%3CUL%3E%3CLI%3E%3CP%3E%E6%88%91%E8%AE%A1%E5%88%92%E4%BD%BF%E7%94%A8%20%3CSTRONG%3EMCU%20%E5%AE%89%E5%85%A8%E9%85%8D%E7%BD%AE%E5%B7%A5%E5%85%B7%3C%2FSTRONG%3E%E6%9D%A5%E7%94%9F%E6%88%90%20%3CSTRONG%3ESRK%E3%80%81IMG%20%E5%92%8C%20CS%3C%2FSTRONG%3E%20F%20%E5%AF%86%E9%92%A5%2F%E8%AF%81%E4%B9%A6%E3%80%82%3C%2FP%3E%3C%2FLI%3E%3CLI%3E%3CP%3E%E8%BF%99%E4%BA%9B%E5%AF%86%E9%92%A5%E5%B0%86%E7%94%A8%E4%BA%8E%E9%80%9A%E8%BF%87%20HAB%20%E5%AF%B9%3CSTRONG%3E%E7%AC%AC%E4%BA%8C%E9%98%B6%E6%AE%B5%E5%BC%95%E5%AF%BC%E5%8A%A0%E8%BD%BD%E7%A8%8B%E5%BA%8F%3C%2FSTRONG%3E%E8%BF%9B%E8%A1%8C%E7%AD%BE%E5%90%8D%E5%92%8C%E9%AA%8C%E8%AF%81%E3%80%82%3C%2FP%3E%3C%2FLI%3E%3CLI%3E%3CP%3E%3CSTRONG%3E%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E6%98%A0%E5%83%8F%3C%2FSTRONG%3E%E4%BF%9D%E5%AD%98%E5%9C%A8%E5%90%AF%E5%8A%A8%E5%8A%A0%E8%BD%BD%E7%A8%8B%E5%BA%8F%E5%90%8E%E7%9A%84%E9%97%AA%E5%AD%98%E4%B8%AD%EF%BC%8C%E6%88%91%E5%B8%8C%E6%9C%9B%E8%83%BD%3CSTRONG%3E%E7%8B%AC%E7%AB%8B%E6%9B%B4%E6%96%B0%E5%AE%83%3C%2FSTRONG%3E%EF%BC%88%E5%A6%82%E9%80%9A%E8%BF%87%20USB%20%E6%88%96%20OTA%EF%BC%89%E3%80%82%3C%2FP%3E%3C%2FLI%3E%3C%2FUL%3E%3CP%3E%E7%9B%AE%E5%89%8D%EF%BC%8C%E6%88%91%E7%9A%84%E6%83%B3%E6%B3%95%E6%98%AF%E5%9C%A8%E7%AC%AC%E4%BA%8C%E9%98%B6%E6%AE%B5%E5%BC%95%E5%AF%BC%E5%8A%A0%E8%BD%BD%E7%A8%8B%E5%BA%8F%E4%B8%AD%E5%AE%9E%E6%96%BD%E4%B8%80%E7%A7%8D%3CSTRONG%3E%E8%87%AA%E5%AE%9A%E4%B9%89%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81%E6%9C%BA%E5%88%B6%3C%2FSTRONG%3E%E3%80%82%E5%90%AF%E5%8A%A8%E7%A8%8B%E5%BA%8F%E4%BC%9A%3C%2FP%3E%3COL%3E%3CLI%3E%3CP%3E%E9%98%85%E8%AF%BB%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E5%9B%BE%E5%83%8F%E9%A1%B5%E8%84%9A%EF%BC%88%E5%8C%85%E5%90%AB%E5%85%AC%E9%92%A5%E3%80%81%E5%AE%89%E5%85%A8%E6%95%A3%E5%88%97%E7%AE%97%E6%B3%95-256%20%E5%93%88%E5%B8%8C%E5%92%8C%E7%AD%BE%E5%90%8D%EF%BC%89-%E5%9C%A8%E5%9B%BE%E5%83%8F%E4%B8%8A%E6%89%8B%E5%8A%A8%E5%AE%9E%E7%8E%B0%2F%E6%B7%BB%E5%8A%A0%E3%80%82%3C%2FP%3E%3C%2FLI%3E%3CLI%3E%3CP%3E%E5%9C%A8%E8%B7%B3%E8%BD%AC%E5%88%B0%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E5%9B%BE%E5%83%8F%E4%B9%8B%E5%89%8D%EF%BC%8C%E8%AF%B7%E9%AA%8C%E8%AF%81%E5%85%B6%E7%9C%9F%E5%AE%9E%E6%80%A7%E3%80%82%3C%2FP%3E%3C%2FLI%3E%3C%2FOL%3E%3CP%3E%E4%B8%8D%E8%BF%87%EF%BC%8C%E6%88%91%E6%83%B3%E7%9F%A5%E9%81%93%3C%2FP%3E%3CUL%3E%3CLI%3E%3CP%3E%E6%98%AF%E5%90%A6%E5%8F%AF%E4%BB%A5%E4%BD%BF%E7%94%A8%20%3CSTRONG%3ENXP%20%E7%94%9F%E6%88%90%E7%9A%84%E8%AF%81%E4%B9%A6%EF%BC%88%E6%9D%A5%E8%87%AA%E5%AE%89%E5%85%A8%E9%85%8D%E7%BD%AE%E5%B7%A5%E5%85%B7%EF%BC%89%3C%2FSTRONG%3E%E6%88%96%20%3CSTRONG%3EHAB%20%E6%9C%BA%E5%88%B6%E6%9C%AC%E8%BA%AB%3C%2FSTRONG%3E%E6%9D%A5%E5%AF%B9%E5%BC%95%E5%AF%BC%E5%8A%A0%E8%BD%BD%E7%A8%8B%E5%BA%8F%E5%92%8C%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E6%98%A0%E5%83%8F%E8%BF%9B%E8%A1%8C%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81%EF%BC%9F%3C%2FP%3E%3C%2FLI%3E%3CLI%3E%3CP%3E%E5%A6%82%E6%9E%9C%E6%98%AF%EF%BC%8C%E5%BB%BA%E8%AE%AE%E9%87%87%E7%94%A8%E4%BB%80%E4%B9%88%E6%96%B9%E6%B3%95%E5%9C%A8%20i.MX%20RT1050%20%E4%B8%8A%3CSTRONG%3E%E4%B8%BA%E4%B8%A4%E4%B8%AA%E6%98%A0%E5%83%8F%3C%2FSTRONG%3E%EF%BC%88%E5%BC%95%E5%AF%BC%E5%8A%A0%E8%BD%BD%E7%A8%8B%E5%BA%8F%20%2B%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%EF%BC%89%E5%AE%89%E5%85%A8%E5%AE%9E%E6%96%BD%20HAB%20%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81%EF%BC%9F%3C%2FP%3E%3C%2FLI%3E%3CLI%3E%3CP%3E%E6%98%AF%E5%90%A6%E5%BA%94%E4%BD%BF%E7%94%A8%E7%9B%B8%E5%90%8C%E7%9A%84%20SRK%2FCSF%20%E5%AF%86%E9%92%A5%E5%AF%B9%E4%B8%A4%E4%B8%AA%E5%9B%BE%E5%83%8F%E8%BF%9B%E8%A1%8C%E7%AD%BE%E5%90%8D%EF%BC%8C%E6%88%96%E8%80%85%E6%81%A9%E6%99%BA%E6%B5%A6%E6%98%AF%E5%90%A6%E6%8F%90%E4%BE%9B%E4%BA%86%E6%94%AF%E6%8C%81%E5%A4%9A%E5%9B%BE%E5%83%8F%E9%AA%8C%E8%AF%81%E7%9A%84%E6%96%B9%E6%B3%95%EF%BC%9F%3C%2FP%3E%3C%2FLI%3E%3C%2FUL%3E%3CP%3E%E4%BB%BB%E4%BD%95%E6%9C%89%E5%85%B3%E6%AD%A4%E7%B1%BB%E5%8F%8C%E9%87%8D%E5%AE%89%E5%85%A8%E5%90%AF%E5%8A%A8%E9%93%BE%E7%9A%84%E5%AE%98%E6%96%B9%E6%8C%87%E5%8D%97%E3%80%81%E7%A4%BA%E4%BE%8B%E6%88%96%E5%BC%95%E7%94%A8%E6%96%87%E6%A1%A3%E5%B0%86%E4%B8%8D%E8%83%9C%E6%84%9F%E6%BF%80%E3%80%82%3CBR%20%2F%3E%E7%9B%AE%E5%89%8D%EF%BC%8C%E6%88%91%E5%8F%AA%E6%9C%89%3CSTRONG%3EAN12681.pdf%3C%2FSTRONG%3E%E3%80%81%E5%9B%A0%E6%AD%A4%EF%BC%8C%E5%A6%82%E6%9E%9C%3CSTRONG%3E%E8%83%BD%E5%B0%B1%E5%A6%82%E4%BD%95%3C%2FSTRONG%3E%E4%BD%BF%E7%94%A8%E6%81%A9%E6%99%BA%E6%B5%A6%E6%8E%A8%E8%8D%90%E7%9A%84%E6%96%B9%E6%B3%95%E6%AD%A3%E7%A1%AE%E6%89%A7%E8%A1%8C%E6%AD%A4%E8%AE%BE%E7%BD%AE%E6%8F%90%E4%BE%9B%E5%BB%BA%E8%AE%AE%EF%BC%8C%E6%88%91%E5%B0%86%E4%B8%8D%E8%83%9C%E6%84%9F%E6%BF%80%E3%80%82%3C%2FP%3E%3CP%3E%E8%B0%A2%E8%B0%A2%EF%BC%81%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2202233%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20How%20to%20achieve%20dual%20HAB%20authentication%20for%20two%20images%20(bootloader%20%2B%20app)%20on%20i.MX%20RT1050%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2202233%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F210497%22%20target%3D%22_blank%22%3E%40BiHDeveloper%3C%2FA%3E%3C%2FP%3E%0A%3CP%3E%E4%B8%8D%E5%AE%A2%E6%B0%94%EF%BC%81%20%3C%2FP%3E%0A%3CP%3E%E9%9D%9E%E5%B8%B8%E6%8A%B1%E6%AD%89%EF%BC%8C%E6%88%91%E5%BB%B6%E8%BF%9F%E4%BA%86%E5%9B%9E%E5%A4%8D%EF%BC%81%20%3C%2FP%3E%0A%3CP%3E%E6%88%91%E5%B7%B2%E7%BB%8F%E5%9C%A8%E6%AD%A4%E4%B8%BB%E9%A2%98%E4%B8%AD%E5%9B%9E%E5%A4%8D%E4%BA%86%E6%82%A8%E7%9A%84%E6%B5%8B%E8%AF%95%EF%BC%9A%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fi-MX-RT-Crossover-MCUs%2FHAB-authentication-succeeds-with-WARNING-Unsupported-Engine-DCP%2Ftd-p%2F2201723%22%20target%3D%22_blank%22%3Ehttps%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fi-MX-RT-Crossover-MCUs%2FHAB-authentication-succeeds-with-WARNING-Unsupported-Engine-DCP%2Ftd-p%2F2201723%3C%2FA%3E%3C%2FP%3E%0A%3CP%3E%E8%AF%B7%E5%B8%AE%E6%88%91%E6%A3%80%E6%9F%A5%E4%B8%80%E4%B8%8B%EF%BC%8C%E5%A6%82%E6%9E%9C%E6%82%A8%E6%9C%89%E4%BB%BB%E4%BD%95%E9%97%AE%E9%A2%98%E6%88%96%E6%84%8F%E8%A7%81%EF%BC%8C%E8%AF%B7%E5%91%8A%E8%AF%89%E6%88%91%EF%BC%8C%E6%88%91%E5%B0%86%E7%AD%89%E5%BE%85%E6%82%A8%E7%9A%84%E7%AD%94%E5%A4%8D%E3%80%82%20%3C%2FP%3E%0A%3CP%3E%E8%87%B4%E4%BB%A5%E6%9C%80%E5%B4%87%E9%AB%98%E7%9A%84%E6%95%AC%E6%84%8F%20%3C%2FP%3E%0A%3CP%3E%E8%BF%AA%E4%BA%9A%E6%88%88%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2200162%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20How%20to%20achieve%20dual%20HAB%20authentication%20for%20two%20images%20(bootloader%20%2B%20app)%20on%20i.MX%20RT1050%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2200162%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E5%97%A8%EF%BC%8C%E8%BF%AD%E6%88%88%E3%80%81%3C%2FP%3E%3CP%3E%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%9B%9E%E5%A4%8D%E5%92%8C%E6%9C%89%E7%94%A8%E7%9A%84%E5%8F%82%E8%80%83%E3%80%82%3C%2FP%3E%3CP%3E%E6%88%91%E4%BD%BF%E7%94%A8%E7%9B%B8%E5%90%8C%E7%9A%84%E5%AF%86%E9%92%A5%E9%9B%86%E6%9D%A5%E7%AD%BE%E7%BD%B2%E5%BC%95%E5%AF%BC%E5%8A%A0%E8%BD%BD%E7%A8%8B%E5%BA%8F%E5%92%8C%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E6%98%A0%E5%83%8F%EF%BC%8C%E5%B9%B6%E5%9C%A8%3CSTRONG%3E%E7%AC%AC%E4%BA%8C%E9%98%B6%E6%AE%B5%E5%BC%95%E5%AF%BC%E5%8A%A0%E8%BD%BD%3C%2FSTRONG%3E%E7%A8%8B%E5%BA%8F%E4%B8%AD%E8%B0%83%E7%94%A8%20ROM%20HAB%20API%20%E6%9D%A5%E9%AA%8C%E8%AF%81%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E6%98%A0%E5%83%8F%E3%80%82%3CBR%20%2F%3E%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81%E8%BF%87%E7%A8%8B%E6%AD%A3%E5%B8%B8%E8%BF%90%E8%A1%8C%E2%80%94%E2%80%94%E8%AF%A5%E5%87%BD%E6%95%B0%E8%BF%94%E5%9B%9E%E6%9C%89%E6%95%88%E7%9A%84%20RESET%20%E5%A4%84%E7%90%86%E7%A8%8B%E5%BA%8F%E5%9C%B0%E5%9D%80%EF%BC%8C%E8%BF%99%E6%84%8F%E5%91%B3%E7%9D%80%E5%9B%BE%E5%83%8F%E5%B7%B2%E6%88%90%E5%8A%9F%E9%AA%8C%E8%AF%81%E3%80%82%3C%2FP%3E%3CP%3E%E8%BF%99%E6%98%AF%E6%88%91%E6%AD%A3%E5%9C%A8%E4%BD%BF%E7%94%A8%E7%9A%84%E7%9B%B8%E5%85%B3%E8%B0%83%E7%94%A8%EF%BC%9A%3CBR%20%2F%3E%3CEM%3E%20load_addr%20%3D%20(uint32_t)%20hab_authenticate_image_no_dcd%EF%BC%881%EF%BC%8Civt_offset%EF%BC%8Cimage_start%EF%BC%8C%E5%AD%97%E8%8A%82%EF%BC%89%EF%BC%9B%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FEM%3E%20%3CEM%3E%3CBR%20%2F%3E%E4%BB%A5%E5%8F%8A%E9%82%A3%E4%B8%AA%E5%8C%85%E8%A3%85%E5%99%A8%E7%9A%84%E5%AE%9E%E7%8E%B0%EF%BC%9Ahab_image_entr%20y_f%20hab_authenticate_image_no_dcd%20(uint8_t%20cid%E3%80%81uint32_t%20ivt_offset%E3%80%81uint32_t%20ivt_offset%E3%80%81uint32_t%20ivt_offset%E3%80%81uint32_t%20ivt_offset%E3%80%81uint32_t%20ivt_offset%E3%80%81uint32t%20%E5%BC%80%E5%A7%8B%EF%BC%8Csize_t%3CBR%20%2F%3E%20%E5%AD%97%E8%8A%82%EF%BC%89%7B%E8%BF%94%E5%9B%9E%3CBR%20%2F%3E%20g_HabrvtTree-%26gt%3B%20authenticate_image_no_dcd%20(cid%2C%20ivt_offset%2C%20(void%20**)%20%26amp%3B%20%E5%BC%80%E5%A7%8B%EF%BC%8C(size_%20t%20*)%20%26amp%3B%20%E5%AD%97%E8%8A%82%EF%BC%8C%E7%A9%BA%E5%80%BC)%3B%7D%3CBR%20%2F%3E%3C%2FEM%3E%3C%2FP%3E%3CP%3E%E4%BD%86%E6%98%AF%EF%BC%8C%E5%9C%A8%E9%AA%8C%E8%AF%81%E6%88%90%E5%8A%9F%E5%90%8E%EF%BC%8C%E6%88%91%E8%B0%83%E7%94%A8%20ROM%20%E5%87%BD%E6%95%B0%E6%9D%A5%E6%8A%A5%E5%91%8A%20HAB%20%E7%8A%B6%E6%80%81%E5%92%8C%E4%BA%8B%E4%BB%B6%EF%BC%8C%E5%8D%B4%E5%A7%8B%E7%BB%88%E5%BE%97%E5%88%B0%E4%B8%80%E4%B8%AA%3CSTRONG%3EWARNING%EF%BC%88%E8%AD%A6%E5%91%8A%3C%2FSTRONG%3E%EF%BC%89%E7%8A%B6%E6%80%81%EF%BC%8C%E5%8D%B3%E4%BD%BF%E5%9B%BE%E5%83%8F%E5%B7%B2%E6%AD%A3%E7%A1%AE%E9%AA%8C%E8%AF%81%E3%80%82%3C%2FP%3E%3CP%3E%E8%BE%93%E5%87%BA%E7%A4%BA%E4%BE%8B%3C%2FP%3E%3CP%3EHab%20rvt%20%E6%8A%A5%E5%91%8A%E7%8A%B6%E6%80%81%20%3D%200x69%EF%BC%8C%E9%85%8D%E7%BD%AE%20%3D%200xcc%EF%BC%8C%E7%8A%B6%E6%80%81%20%3D%200x99%20%3CBR%20%2F%3E%20%E6%8A%A5%E5%91%8A%E4%BA%8B%E4%BB%B6%20%230-%26gt%3B%200xf0%20%3CBR%20%2F%3E%20%5BHAB%20EVENT%20%230%5D%EF%BC%8844%20%E5%AD%97%E8%8A%82%EF%BC%89%EF%BC%9A%3CBR%20%2F%3EDB%2000%202C%2043%2069%200A%20C0%2000%20CA%2000%2000%20CA%2000%2024%2000%2002%20C5%201B%2000%2000%2000%200A%2028%2020%2000%2010...%3CBR%20%2F%3E...%3CBR%20%2F%3E%E6%B2%A1%E6%9C%89%E6%9B%B4%E5%A4%9A%E7%9A%84%20HAB%20%E4%BA%8B%E4%BB%B6%EF%BC%88%E7%8A%B6%E6%80%81%20%3D%200x33%EF%BC%89%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%3CP%3E%E5%9C%A8%E6%A0%B9%E6%8D%AE%3CSTRONG%3EHAB4%20%E6%96%87%E6%A1%A3%3C%2FSTRONG%3E%E8%A7%A3%E6%9E%90%E7%AC%AC%E4%B8%80%E4%B8%AA%20HAB%20%E4%BA%8B%E4%BB%B6%E6%97%B6%EF%BC%8C%E5%AE%83%E8%A1%A8%E7%A4%BA%3C%2FP%3E%3CUL%3E%3CLI%3E%3CP%3E0x69%20-%3CSTRONG%3E%E8%AD%A6%E5%91%8A%3C%2FSTRONG%3E%3C%2FP%3E%3C%2FLI%3E%3CLI%3E%3CP%3E0x0A%20-%3CSTRONG%3E%E4%B8%8D%E6%94%AF%E6%8C%81%E7%9A%84%E5%BC%95%E6%93%8E%3C%2FSTRONG%3E%3C%2FP%3E%3C%2FLI%3E%3CLI%3E%3CP%3E0xC0%20-%3CSTRONG%3Ehab_rvt.run_csf()%20%E4%B8%AD%E8%AE%B0%E5%BD%95%E7%9A%84%E4%BA%8B%E4%BB%B6%3C%2FSTRONG%3E%3C%2FP%3E%3C%2FLI%3E%3CLI%3E%3CP%3E%E4%BB%A5%E4%B8%8B%E5%BA%8F%E5%88%97%200C%20C5%201B%2000%20%E5%AF%B9%E5%BA%94%E5%9B%BE%E5%83%8F%E5%AF%86%E9%92%A5%E3%80%81HAB_PCL_CMS%20%E5%8D%8F%E8%AE%AE%E3%80%81%3CSTRONG%3EDCP%20%E5%BC%95%E6%93%8E%3C%2FSTRONG%3E%E5%92%8C%E9%BB%98%E8%AE%A4%E9%85%8D%E7%BD%AE%E7%9A%84%E9%AA%8C%E8%AF%81%E7%B4%A2%E5%BC%95%E3%80%82%3C%2FP%3E%3C%2FLI%3E%3C%2FUL%3E%3CP%3E%E5%9B%A0%E6%AD%A4%EF%BC%8C%E6%8D%AE%E6%88%91%E6%89%80%E7%9F%A5%EF%BC%8CROM%20%E6%8A%A5%E5%91%8A%E8%AD%A6%E5%91%8A%E7%9A%84%E5%8E%9F%E5%9B%A0%E6%98%AF%EF%BC%8C%E5%AE%83%E8%AF%95%E5%9B%BE%E5%9C%A8%20CSF%20%E6%89%A7%E8%A1%8C%E6%9C%9F%E9%97%B4%E4%BD%BF%E7%94%A8%3CSTRONG%3EDCP%20%E5%BC%95%E6%93%8E%3C%2FSTRONG%3E%EF%BC%8C%E4%BD%86%E5%9C%A8%E8%BF%99%E7%A7%8D%E6%83%85%E5%86%B5%E4%B8%8B%EF%BC%8CDCP%20%E5%BC%95%E6%93%8E%E6%97%A0%E6%B3%95%E6%AD%A3%E5%B8%B8%E4%BD%BF%E7%94%A8%E6%88%96%E5%88%9D%E5%A7%8B%E5%8C%96%E3%80%82%3CBR%20%2F%3E%E6%88%91%E5%B0%9D%E8%AF%95%E4%BD%BF%E7%94%A8%20SDK%20API%EF%BC%88%E4%BD%BF%E7%94%A8%E9%BB%98%E8%AE%A4%E9%85%8D%E7%BD%AE%E7%9A%84%20DCP_Init()%EF%BC%8C%E5%B9%B6%E5%90%AF%E7%94%A8%20DCP%20%E6%97%B6%E9%92%9F%EF%BC%89%E5%9C%A8%E5%BC%95%E5%AF%BC%E5%8A%A0%E8%BD%BD%E7%A8%8B%E5%BA%8F%E4%B8%AD%E6%89%8B%E5%8A%A8%E5%90%AF%E7%94%A8%E5%92%8C%E5%88%9D%E5%A7%8B%E5%8C%96%20DCP%EF%BC%8C%E4%BD%86%E8%AD%A6%E5%91%8A%E4%BB%8D%E7%84%B6%E5%AD%98%E5%9C%A8%E3%80%82%3C%2FP%3E%3CP%3E%E9%95%9C%E5%83%8F%E5%B7%B2%E6%88%90%E5%8A%9F%E9%AA%8C%E8%AF%81%E5%B9%B6%E6%AD%A3%E7%A1%AE%E6%89%A7%E8%A1%8C%EF%BC%8C%E4%BD%86%E6%88%91%E6%83%B3%E4%BA%86%E8%A7%A3%E5%9C%A8%E4%BD%BF%E7%94%A8%20HAB%20ROM%20API%20%E4%BB%8E%E8%87%AA%E5%AE%9A%E4%B9%89%E5%BC%95%E5%AF%BC%E5%8A%A0%E8%BD%BD%E5%99%A8%E9%AA%8C%E8%AF%81%E9%95%9C%E5%83%8F%E6%97%B6%EF%BC%8C%E5%A6%82%E4%BD%95%E9%81%BF%E5%85%8D%E6%88%96%E6%8A%91%E5%88%B6%E4%B8%8D%3CSTRONG%3E%E6%94%AF%E6%8C%81%E5%BC%95%E6%93%8E%EF%BC%88DCP%EF%BC%89%3C%2FSTRONG%3E%E8%AD%A6%E5%91%8A%E3%80%82%3C%2FP%3E%3CP%3E%E4%BB%BB%E4%BD%95%E6%9C%89%E5%85%B3ROM%E5%9C%A8%E4%B8%BB%E5%90%AF%E5%8A%A8%E8%BF%87%E7%A8%8B%E4%B8%AD%E5%A6%82%E4%BD%95%E5%88%9D%E5%A7%8B%E5%8C%96DCP%EF%BC%88%E6%88%96%E5%A6%82%E4%BD%95%E4%BB%8E%E7%AC%AC%E4%BA%8C%E9%98%B6%E6%AE%B5%E5%BC%95%E5%AF%BC%E5%8A%A0%E8%BD%BD%E7%A8%8B%E5%BA%8F%E4%B8%AD%E5%A4%8D%E5%88%B6%E8%AF%A5%E8%A1%8C%E4%B8%BA%EF%BC%89%E7%9A%84%E8%A7%81%E8%A7%A3%E9%83%BD%E5%B0%86%E9%9D%9E%E5%B8%B8%E6%9C%89%E5%B8%AE%E5%8A%A9%E3%80%82%3C%2FP%3E%3CP%3E%E5%86%8D%E6%AC%A1%E6%84%9F%E8%B0%A2%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2183392%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20How%20to%20achieve%20dual%20HAB%20authentication%20for%20two%20images%20(bootloader%20%2B%20app)%20on%20i.MX%20RT1050%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2183392%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F210497%22%20target%3D%22_blank%22%3E%40BiHDeveloper%3C%2FA%3E%3C%2FP%3E%0A%3CP%3E%E6%82%A8%E7%9A%84%E8%87%AA%E5%AE%9A%E4%B9%89%E5%BC%95%E5%AF%BC%E5%8A%A0%E8%BD%BD%E7%A8%8B%E5%BA%8F%E5%8F%AF%E4%BB%A5%E4%BD%BF%E7%94%A8%E9%9B%86%E6%88%90%E5%88%B0%E5%BC%95%E5%AF%BC%20ROM%20%E4%B8%AD%E7%9A%84%20HAB%20API%20%E6%9D%A5%E9%AA%8C%E8%AF%81%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E6%98%A0%E5%83%8F%EF%BC%8C%E6%98%A0%E5%83%8F%E5%8F%AF%E4%BB%A5%E4%BD%BF%E7%94%A8%E4%B8%8E%E5%BC%95%E5%AF%BC%E5%8A%A0%E8%BD%BD%E7%A8%8B%E5%BA%8F%E7%9B%B8%E5%90%8C%E7%9A%84%E5%AF%86%E9%92%A5%E5%92%8C%E8%AF%81%E4%B9%A6%E8%BF%9B%E8%A1%8C%E7%AD%BE%E5%90%8D%E3%80%82%20%3C%2FP%3E%0A%3CP%3E%E6%88%91%E8%BF%98%E6%83%B3%E5%90%91%E4%BD%A0%E6%8E%A8%E8%8D%90%20%3CSPAN%3ECST%20%E7%89%88%E6%9C%AC%204.0.1%EF%BC%8C%E4%BD%A0%E5%8F%AF%E4%BB%A5%E4%BB%8E%20nxp.com%20%E8%8E%B7%E5%BE%97%E3%80%82%E8%BF%99%E6%98%AF%E6%9C%80%E6%96%B0%E7%89%88%E6%9C%AC%E3%80%82%E6%82%A8%E5%8F%AF%E4%BB%A5%E4%BB%8E%20CST%20%E4%B8%AD%E6%9F%A5%E7%9C%8B%20RM00298%20%3CBR%20%2F%3E%20%E9%AB%98%E5%BA%A6%E4%BF%9D%E8%AF%81%E5%90%AF%E5%8A%A8%E7%89%88%E6%9C%AC%204%20API%20%E5%8F%82%E8%80%83%E6%89%8B%E5%86%8C%E3%80%82%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3E%E7%9B%AE%E5%89%8D%E6%88%91%E8%BF%98%E6%B2%A1%E6%9C%89%E7%89%88%E6%9C%AC%E4%BB%BB%E4%BD%95%E7%AE%80%E5%8D%95%E7%9A%84%E6%BC%94%E7%A4%BA%E5%8F%AF%E4%BE%9B%E4%BD%A0%E5%8F%82%E8%80%83%E3%80%82%E4%B8%8D%E8%BF%87%EF%BC%8C%E4%BD%A0%E5%8F%AF%E4%BB%A5%E7%9C%8B%E7%9C%8B%E6%88%91%E4%BB%AC%E7%9A%84%20SBL%E3%80%82%E6%9B%B4%E5%87%86%E7%A1%AE%E5%9C%B0%E8%AF%B4%EF%BC%8C%E6%98%AF%E5%AF%B9%20api%20%E5%AE%9E%E7%8E%B0%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Fnxp-mcuxpresso%2Fsbl%2Fblob%2Fmaster%2Fcomponent%2Fsecure%2Fsemifunc%2Fhab_rvt.c%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fgithub.com%2Fnxp-mcuxpresso%2Fsbl%2Fblob%2Fmaster%2Fcomponent%2Fsecure%2Fsemifunc%2Fhab_rvt.c%3C%2FA%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%E5%B8%8C%E6%9C%9B%E5%AF%B9%E6%82%A8%E6%9C%89%E6%89%80%E5%B8%AE%E5%8A%A9%EF%BC%81%3C%2FP%3E%0A%3CP%3E%E8%BF%AA%E4%BA%9A%E6%88%88%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E