security_huks/frameworks/huks_standard/common/hks_check_paramset代码解读(一)

知识总结

  1. 参数的种类大致分为三类:fixed(padding genkey mode purpose digest) mutable material
  2. genKey:{RSA AES ECC X25519 ED25519}

总体概述

1. 该部分大多是各种检查函数的再封装,独立的完成一种模式或者一种类型参数的检查的功能函数
2.通过全局变量的设置,通过不同的全局变量可以在paramSet中获取不同类型的参数,减少参数的传递,提高效率

代码解读

1.全局变量的初始化

包括:
g_genKenAlg
g_importKeyAlg
g_cipherAlg
g_signAlg
g_agreeAlg
g_agreeAlgLocal
g_deriveAlg
g_deriveAlgLocal
g_digest
g_macDigest
g_aesKeySizeLocal
g_cipherAlgLocal

2.重要函数CheckAndGetAlgorithm

根据所给的HKS_TAG_ALGORITHM从paramSet中得到相应的算法参数,调用函数进行参数一致性检验,最后将检查后的参数赋给*alg
在这里插入图片描述

3.获取并检查摘要的函数

步骤与获取算法参数一致
根据标志从paramSet中获取对应的参数,然后调用HksCheckValue进行参数期望检查,最后将检查无误的数据块用对应指针所指
在这里插入图片描述

4.封装对整个genKey参数的检查函数

CheckGenKeyMacDeriveParams

流程:获取输入函数—>检查参数的五个主要部分是否符合预期—>返回检查genKey可选参数的结果
在这里插入图片描述

5. CoreCheckGenKeyParams

函数功能:根据全局存储的g_genkeyAlg获取参数并进行多方面检查

流程:调用CheckAndGetAlgorithm获取参数所在地址---->根据tag_purpose获取目的参数---->当目的参数中包含MAC或DERIVE则调用CheckGenKeyMacDeriveParams对该部分参数进行检查---->调用CheckGenKeyParamsByAlg做一般性的参数检查
在这里插入图片描述

6.检查keysize的函数

CheckImportKeySize
在这里插入图片描述

7.CheckCipherParamsByAlg

加密参数的检查函数(封装)
一共检查了三个部分的参数:fixed五个部分padding digest purpose mode genkey的检查---->可选参数的检验---->加密材料相关参数的检查
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

国家一级假勤奋研究牲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值