NXP i.MX6 & i.MX7 系列安全启动:HAB实现指南

需积分: 10 1 下载量 75 浏览量 更新于2024-07-17 收藏 2.52MB PDF 举报
"CST_UG.pdf - NXP的Code Signing Tool用户指南,版本3.2.0,关于在imx6和imx7系列芯片上使用HAB(Hardware Abstraction Layer for Boot)实现安全启动的详细步骤" 这篇文档是NXP公司针对其微处理器系列,特别是imx6和imx7,提供的Code-Signing Tool用户指南,用于实现基于HAB的安全启动流程。HAB是一种硬件抽象层,旨在确保设备在启动时加载经过验证的固件,以提高系统的安全性。 **关于本书** - **受众**:主要是面向软件开发者、系统集成商以及对安全启动过程感兴趣的人员。 - **范围**:专注于介绍如何使用CST(Code-Signing Tool)来生成必要的密钥和证书,以支持imx6和imx7系列芯片的HAB安全启动。 - **组织结构**:涵盖了工具的介绍、安装、密钥和证书生成等关键步骤,以及相关的参考资料。 - **修订历史**:文档的版本号为3.2.0,更新日期为2019年4月,记录了该指南的更新历程。 **1. 引言** - **代码签名组件**:分为安全组件和CST两部分。 - **安全组件**:包括安全组件API,用于确保固件的安全加载。 - **CST**:代码签名工具,是实现HAB安全启动的核心工具,用于生成和管理密钥及证书。 **2. 安装** - **CST包内容和安装**:提供了在Linux和Windows系统上的系统需求和安装指南。 - **Linux系统要求**:列出运行CST所需的Linux环境配置。 - **Windows系统要求**:同样,指明了Windows环境下的硬件和软件要求。 - **解压文件**:解释了如何解压缩下载的CST包。 **3. 密钥和证书生成** - **生成HAB4密钥和证书**:详细介绍了HAB4密钥和证书的创建过程,包括: - **HAB4 PKI树**:描述了HAB4的公钥基础设施层次结构。 - **运行hab4_pki_tree脚本示例**:提供了创建HAB4 PKI树的实战指导。 - **生成HAB4 SRK表格和Efuse Hash**:阐述如何生成安全根密钥(SRK)表格和 Efuse散列值,用于存储在硬件中。 - **编程SRK Hash值到Efuses**:解释如何将SRK散列值烧录到Efuses中,以实现硬件保护。 - **向HAB4 PKI树添加密钥**:介绍了如何将新的密钥集成到已建立的HAB4 PKI树中。 - **生成A-HAB密钥和证书**:类似于HAB4,这部分讲解了A-HAB的密钥和证书生成,包括其PKI树结构和实际操作步骤。 这些内容为开发者提供了一个全面的指导,帮助他们在imx6和imx7系列平台上实现基于HAB的可靠安全启动,确保固件的完整性和安全性。通过使用CST,可以有效地管理和保护设备的启动流程,防止未经授权的代码执行。

以hive的角度检查语法: with cur_dim_comb as (SELECT DISTINCT t.dim_comb ,t.var_sub_class ,t.acc_value FROM gerp.cux_cst_data_alloc_his t WHERE t.top_var_type = '10' AND t.job_ver_id in (SELECT ver.job_ver_id AS p_job_ver_id FROM gerp.cux_cst_dist_jobs_all job INNER JOIN gerp.cux_cst_dist_jobs_vers_all ver ON job.job_id = ver.job_id )) select tp.bd_code --事业部编码 ,tp.bd_name --事业部名称 ,hp.ou_code --OU名称 ,hp.ou_name --OU编码 ,op.main_class_desc --差异大类 ,op.acc_value --科目代码 ,op.acc_desc --科目名称 ,op.dim_comb --区分维度 ,op.begin_amount --期初余额 ,op.accrual_amount --本期发生 ,op.balance_diff_alloc_amount --期末差异结存 ,op.var_sub_class ,op.main_class_value ,op.org_id ,op.period_name ,op.job_ver_id from (select up.* ,q1.* from (SELECT DISTINCT maincl.* ,t.* FROM t inner join (SELECT fv.flex_value ,fv.description FROM fv inner join fs on fv.flex_value_set_id = fs.flex_value_set_id AND fs.flex_value_set_name = 'CUX_CST_VARIANCE_TYPE' AND fv.enabled_flag = 'Y' AND fv.hierarchy_level = '2' AND fv.flex_value LIKE '10%' ) maincl on t.var_main_class = maincl.flex_value inner join cur_dim_comb on cur_dim_comb.var_sub_class = t.var_sub_class and cur_dim_comb.acc_value = t.acc_value WHERE 1 = 1 AND t.top_var_type = '10' AND t.job_ver_id in (SELECT ver.job_ver_id AS p_job_ver_id FROM gerp.cux_cst_dist_jobs_all job INNER JOIN gerp.cux_cst_dist_jobs_vers_all ver ON job.job_id = ver.job_id) ORDER BY maincl.description ,t.acc_value ,cur_dim_comb.dim_comb ) up inner join (SELECT t1.* ,SUM(t1.begin_amount) begin_amount ,SUM(t1.accrual_amount) accrual_amount ,SUM(t1.balance_diff_alloc_amount) balance_diff_alloc_amount FROM gerp.cux_cst_data_alloc_his t1 LEFT JOIN gerp.cux_cst_data_alloc_his t ON t1.top_var_type = '10' AND t1.var_sub_class = t.var_sub_class --p_var_sub_class AND t1.org_id = t.org_id --p_org_id AND t1.period_name = t.period_name --p_period_name AND t1.job_ver_id = t.job_ver_id --p_job_ver_id AND t1.acc_value = t.acc_value --p_acc_value WHERE t1.dim_comb in (select distinct dim_comb from cur_dim_comb) group by t1.org_id,t1.period_name,t1.job_ver_id,t1.var_sub_class,t1.acc_value ) q1 on q1.org_id = up.org_id --p_org_id AND q1.period_name = up.period_name --p_period_name AND q1.job_ver_id = up.job_ver_id --p_job_ver_id AND q1.var_sub_class = up.var_sub_class --p_var_sub_class AND q1.acc_value = up.acc_value --p_acc_value ) op

2023-05-26 上传
2023-05-27 上传

优化sql:SELECT we.organization_id ,we.wip_entity_id ,case when wl.line_id is null then we.wip_entity_name else '' end wip_entity_name ,we.primary_item_id ,mtt.transaction_type_name ,mmt.transaction_date ,bd.department_code ,mmt.inventory_item_id ,mmt.subinventory_code ,mta.reference_account ,br.resource_code ,lu2.meaning as line_type_name ,mta.base_transaction_value ,mta.cost_element_id ,flv.meaning as cost_element ,wdj.class_code job_type_code ,ml.meaning job_type_name FROM (select * from gerp.mtl_material_transactions where substr(transaction_date,1,7) >= '2023-06' and transaction_source_type_id = 5) mmt inner join gerp.wip_entities we on mmt.organization_id = we.organization_id inner join gerp.mtl_transaction_accounts mta on mta.transaction_source_id = we.wip_entity_id and mta.transaction_id = mmt.transaction_id and mta.transaction_source_type_id = 5 inner join gerp.mtl_transaction_types mtt on mtt.transaction_type_id = mmt.transaction_type_id inner join mfg_lookups lu2 on lu2.lookup_code = mta.accounting_line_type and lu2.lookup_type = 'CST_ACCOUNTING_LINE_TYPE' inner join gerp.mtl_system_items_b msi on msi.inventory_item_id = mmt.inventory_item_id and msi.organization_id = mta.organization_id left join gerp.bom_departments bd on bd.department_id = mmt.department_id left join gerp.bom_resources br on br.resource_id = mta.resource_id left join gerp.wip_lines wl on wl.line_id = mmt.repetitive_line_id left join gerp.wip_discrete_jobs wdj on wdj.wip_entity_id = mta.transaction_source_id left join gerp.fnd_lookup_values_vl flv on cast(mta.cost_element_id as string) = flv.lookup_code and flv.lookup_type = 'CST_COST_CODE_TYPE' left join mfg_lookups ml on ml.lookup_code = wdj.job_type and ml.lookup_type = 'WIP_DISCRETE_JOB' 。其中mmt,we,mta,msi,wdj数据量很大

2023-06-10 上传
2023-05-27 上传