在上一节,简单梳理了加密栈的基本要求。其中最关键最核心的还是用户如何使用HSM这个黑盒子,这就必须要对Crypto Service Manager要有很清晰的认识。
那么首先我们还是围绕概述里提到的job类型进行分析。
1. Crypto_JobType
上图,
在AUTOSAR的架构里,所有的密码操作都是围绕job进行,因此拿捏job势在必行。
假设现在有一个报文A需要进行CMAC校验(SecOC场景),那么这个校验动作就为一个job,其结构体类型就为Crypto_JobType。那在配置代码里,就一定有一个job配置对象,叫做
Crypto_JobType Csm_Job_Cmac_verify_A
Crypto_JobType和Crypto_JobPrimitiveInputOutputType是一种组合关系,后者的生命周期是与前者一致;其他空心箭头则是一种聚合关系,可以共享。由于存在JobPrimitiveInputOutputType类型,里面包含输入的buffer、输出的buffer需要分配,因此在软件设计中,job统一作为一个全局变量如下: