对于paramSet的操作函数封装知识总结总体概述代码解读1.g_validTags[]2.IsValidTag3.HksCheckParamSetTag4.CheckBeforeAddParams5.关于paramSet的更新和检查函数5.1BuildParamSet5.2FreshParamSet5.3HksFreshParamSet5.4HksCheckParamSet5.5HksInitParamSet5.6HksAddParams5.7HksBuildParamSet5.7HksFreeParamSet5.8HksGetParam5.9HksGetParamSet5.10HksChe
对于不同类型的参数core封装检查函数知识总结总结概述代码解读1.Pbkdf2算法相关2.封装函数对GenKey参数的检查3.对于importKey参数检查函数4.对于SignVerify参数的检查5.agreeKey的size检查函数6.对加密参数和数据封装检查函数7.本地加密参数的检查8.对于DeriveKey参数的检查函数9.MAC相关检查知识总结这里出现了一种新的加密函数PBKDF2它的基本原理是通过一个伪随机函数(例如HMAC函数),把明文和一个SALT值作为输入参数,然后重复进行运算,并最终产生密钥。如果重复的次数足够大,破解的成本就会变得很高。那么信息也就更加安全总结概述封装了对
fileInfo结构体的填充以及文件内容的提取、存储与删除1.小小疑问2.总体概述3.代码解读3.1GetKeyBlobFromFile3.2SaveKeyBlob3.3DeleteKeyBlob3.4GetKeyBlob3.5GetKeyBlobSize3.6fileInfo的初始化和释放3.7GetStorePath3.8GetFileInfo1.小小疑问1.这里有一个小疑问——就是文件存储时需要的两个name——一个是processName另一个是pathName,pathName表示目标存储的位置,那么为什么需要processName呢?processName是功能是什么呢?2.总体概
密钥存储文件的更新,删除与验证知识总结总体概述代码解析1.给出头部和keyInfo的bytes结构和获取其长度2.CopyRootKeyMaterialFile3.RollBackNewVersionFiles4.RemoveOldVersionFiles5.UpgradeRootKeyMaterialFile6.GetOldVersionKeyStoreBuf7.CheckKeyStoreHeaderValid8.UpgradeSingleKeyInfo9.UpgradeKeyStoreInfo10.UpgradeKeyStoreFiles11.HksUpgradeStorageData知识
各种加密算法参数和模式的校对和检查总体概述代码详解各种算法的签名检查函数RSA和AES算法的数据size检查RSAAES对各种信息的检查其他的功能函数总体概述封装各种参数的检查函数,包括RSAAES的各种参数的校对与检查各种模式包括GCMCBC等额外参数的检查代码详解各种算法的签名检查函数注意这里的检查绝大部分是对长度进行规范检查ECC签名检查验证的规则在代码中已经详细的写出根据cmdId进行上限或下限的检验Ed25519椭圆加密算法的签名检查验证的思路跟ECC相似对于RSA进行padding和签名长度的检查这里GenKeyPadding值的验证使用了函数HksCheckValue()进行输入
安全模块的核心功能实现1.知识总结2.总体概述3.代码解读3.1hash算法生成摘要3.2MAC消息验证3.3实现ExpMod运算3.4密钥的生成函数3.5私钥和公钥的操作函数3.6加解密函数3.7进行消息验证的函数1.知识总结1.函数的一般流程:首先对传入的参数进行有效性检查,每调用一个函数对其结果进行一个判断并根据结果返回不同的值或者接着往下进行后续步骤,直到完整的功能实现。比如hash算法生成摘要,首先调用common中的HksCheckBlob2AndParamSet进行参数和参数集合的检查,之后再从参数集合中获取对应数据进行后续的函数调用,符合安全规范2.函数名中带有local的一般
鸿蒙OS——.gn和.rc知识总结(基于security_huks1.GN1.1GN的目的和设计理念1.2语法1.3命名表示1.4构建流程1.5CONFIGS1.6import1.7模板1.8GN在harmony中的实践使用1.9尝试读一读2.RC文件鸽了好久由于每个项目都多多少少有这样一个文件:bulid.gnxxx.rc所以这里简单学习并总结一下这两个文件的若干知识1.GN首先我们来看看.gn文件:刚开始我和大家一样也是看的一头雾水,但是等大家通读完这篇文件就知道如何看GN文件啦!1.1GN的目的和设计理念首先GN是一个为Ninja生成构建文件的构建系统,目的是为了工程师更高效的makef
文件存储各功能的封装、FileNameList的构造以及文件销毁函数的封装1.知识分享2.总体概述3.代码解读3.1RecordKeyOperation3.2HksStoreKeyBlob3.3HksStoreDeleteKeyBlob3.4HksStoreIsKeyBlobExist3.5HksStoreGetKeyBlobSize3.6GetFileCount3.7GetFileNameList3.8GetFilePath3.9filename链表的相关操作3.10HksGetKeyAliasByProcessName3.11HksStoreDestory1.知识分享1.C库函数:read
本文研究了openHarmony的security_huks模块的结构,尝试做一个较清楚的整体架构梳理,如有错误敬请指正!该模块分为三个大文件夹framework,interface,service,整体上可以分为四个独立的子模块:lite版的Client-Service模型,crypto_lite封装的CipherModule,标准版的IPC_Client-Service模型,以及可在本地调用的API接口。同时本文还新增了关于OpenSSL&Mbedtls与常见的密钥集合的总结。文章目录1.lite版的Client-Service模型2.crypto_lite3.OpenSSLVSMbedt
OpenSSL框架下的密钥生成和格式转换知识分享总体概述代码解读1.EvpKeyToX509Format2.RsaToX509PublicKey3.GetEccNid4.EccToX509PublicKey5.Curve25519ToX509PublicKey6.TranslateToX509PublicKey7.X509PublicKeyToRsa8.EcKeyToPublicKey9.TranslateFromX509PublicKey10.两个格式转换函数知识分享这里简单总结一下代码中出现的openSSL的功能函数i2d_PUBKEY:d2i_PUBKEY:使用SubjectPublic