打印
[AURIX™]

英飞凌HSM内核开发-CryIf模块

[复制链接]
416|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tpgf|  楼主 | 2024-10-11 17:14 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
软件接口



这段文字是一份技术文档的一部分,描述了一个名为CRYIF的软件模块的功能描述。CRYIF是按照AUTOSAR标准设计的加密接口模块。下面是对这段文字的中文翻译:

功能描述
将作业调度到配置的加密驱动程序

调度密钥管理功能

转发回调通知

重定向输入和输出缓冲区到密钥元素

KeyElementCopyPartial API

异步密钥管理作业的处理

KeyElementCopyPartial
如果底层加密驱动程序不支持Crypto_KeyElementCopyPartial API,则CryIf将自行处理部分复制。即使cryIfKeyId和targetCryIfKeyId指向不同的加密驱动程序,CryIf的复制操作也会进行。
首先,程序通过Crypto_KeyElementGet API获取两个密钥元素的内容。
然后,通过将源密钥元素的请求部分复制到目标密钥元素的请求位置来进行部分复制。
最后,通过Crypto_KeyElementSet API将构建的密钥元素写入加密驱动程序。
如果目标偏移量大于目标密钥元素的长度,则在中间应用零填充。

初始化
在调用CRYIF模块的其他任何功能之前,必须由BSWM调用初始化函数CryIf_Init()。
对于RAM变量的手动空初始化,CRYIF提供了函数CryIf_InitMemory(),该函数可以在CryIf_Init()之前调用。

状态
CRYIF没有状态机。

主要功能
CRYIF不提供主函数。所有调用都是同步的。

错误处理
默认情况下,如果启用了开发错误报告(即预编译参数CRYIF_DEV_ERROR_REPORT==STD_ON),则使用服务Det_ReportError()向DET报告开发错误。
如果使用另一个模块进行开发错误报告,则集成商可以配置报告错误的函数原型,但它必须具有与服务Det_ReportError()相同的声明。

服务 ID        服务
0x00        CryIf_Init
0x01        CryIf_GetVersionInfo
0x02        CryIf_ProcessJob
0x03        CryIf_CancelJob
0x04        CryIf_KeyElementSet
0x05        CryIf_KeySetValid
0x06        CryIf_KeyElementGet
0x0F        CryIf_KeyElementCopy
0x10        CryIf_KeyCopy
0x07        CryIf_RandomSeed
0x08        CryIf_KeyGenerate
0x09        CryIf_KeyDerive
0x0A        CryIf_KeyExchangeCalcPubVal
0x0B        CryIf_KeyExchangeCalcSecret
0x0C        CryIf_CertificateParse
0x11        CryIf_CertificateVerify
0x12        CryIf_KeyElementCopyPartial
错误代码        描述
0x00        API服务在使用前未初始化模块
0x01        CRYIF模块初始化失败
0x02        API请求调用时使用了无效参数(空指针)
0x03        API请求调用时使用了无效参数(超出范围)
0x04        API请求调用时使用了无效参数(无效值)
0x11        模块已经初始化时调用了CryIf_Init()
集成
静态文件:

文件名        描述
CryIf.c        包含CRYIF源代码的文件。
CryIf.h        CRYIF的头文件。
CryIf_Cbk.h        CRYIF的回调头文件。
动态文件:

文件名        描述
CryIf_Cfg.c        配置源文件。
CryIf_Cfg.h        配置头文件。
Services provided by CRYIF
API函数原型        简单描述
void CryIf_InitMemory(void)        电源上电内存初始化。
void CryIf_Init(void)        初始化函数。
void CryIf_GetVersionInfo(Std_VersionInfoType *versioninfo)        返回版本信息。
Std_ReturnType CryIf_ProcessJob(uint32 channelId, Crypto_JobType *job)        处理接收到的作业。
Std_ReturnType CryIf_CancelJob(uint32 channelId, Crypto_JobType *job)        取消接收到的作业。
Std_ReturnType CryIf_KeyElementSet(uint32 cryIfKeyId, uint32 keyElementId, const uint8 *keyPtr, uint32 keyLength)        设置密钥元素。
Std_ReturnType CryIf_KeySetValid(uint32 cryIfKeyId)        将密钥设置为有效。
Std_ReturnType CryIf_KeyElementGet(uint32 cryIfKeyId, uint32 keyElementId, uint8 *resultPtr, uint32 *resultLengthPtr)        导出密钥元素。
Std_ReturnType CryIf_KeyElementCopy(uint32 cryIfKeyId, uint32 keyElementId, uint32 targetCryIfKeyId, uint32 targetKeyElementId)        复制密钥元素。
Std_ReturnType CryIf_KeyElementCopyPartial(uint32 cryIfKeyId, uint32 keyElementId, uint32 keyElementSourceOffset, uint32 keyElementTargetOffset, uint32 keyElementCopyLength, uint32 targetCryIfKeyId, uint32 targetKeyElementId)        部分复制密钥元素。
Std_ReturnType CryIf_KeyCopy(uint32 cryIfKeyId, uint32 targetCryIfKeyId)        复制密钥。
Std_ReturnType CryIf_RandomSeed(uint32 cryIfKeyId, const uint8 *seedPtr, uint32 seedLength)        初始化种子。
Std_ReturnType CryIf_KeyGenerate(uint32 cryIfKeyId)        生成密钥。
Std_ReturnType CryIf_KeyDerive(uint32 cryIfKeyId, uint32 targetCryIfKeyId)        派生密钥。
Std_ReturnType CryIf_KeyExchangeCalcPubVal(uint32 cryIfKeyId, uint8 *publicValuePtr, uint32 *publicValueLengthPtr)        计算公钥值。
Std_ReturnType CryIf_KeyExchangeCalcSecret(uint32 cryIfKeyId, const uint8 *partnerPublicValuePtr, uint32 partnerPublicValueLength)        计算秘密值。
Std_ReturnType CryIf_CertificateParse(uint32 cryIfKeyId)        解析存储的证书。
Std_ReturnType CryIf_CertificateVerify(uint32 cryIfKeyId, uint32 verifyCryIfKeyId, Crypto_VerifyResultType *verifyPtr)        验证证书。
Services used by CRYIF
Det_ReportError

Callback Functions
void CryIf_CallbackNotification ( Crypto_JobType *job, Std_ReturnType result )
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/qq_36750998/article/details/141849456

使用特权

评论回复
沙发
小小蚂蚁举千斤| | 2024-10-14 12:53 | 只看该作者
CRYIF不提供主函数,所有调用都是同步的是不是可以并发处理

使用特权

评论回复
板凳
Amazingxixixi| | 2024-10-30 15:43 | 只看该作者
不错的模块

使用特权

评论回复
地板
地瓜patch| | 2024-10-31 08:09 | 只看该作者
可以尝试一下

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2028

主题

15903

帖子

13

粉丝