keyInfo信息的提取与封装添加总体概述代码讲解1.CopyToNewBlob2.ConvertEd25519ToNewFormat3.ConvertToNewFormat4.GetNewFormatKey5.AddKeyInfoParams6.AddParams7.GetParamSet8.HksUpgradeKeyInfo总体概述主要是对于keyInfo中的数据进行处理和提取,对于其中的密钥进行解密,公钥私钥的提取和类型的转换,参数集合的更新与添加代码讲解1.CopyToNewBlob函数功能:进行密钥的拷贝将密钥进行一次数据和大小的复制函数实现:同样时通过memcpy_s将key中的信
各种密钥的生成、解密、加密总体概述代码解读HksCoreGenerateKeyGetSignVerifyMessageSignVerifyCipherHksCoreExportPublicKeyHksCoreAgreeKeyHksCoreDeriveKeyHksCoreMacHksCoreCalcMacHeader总体概述封装了安全模块常用的各种模块服务包括验证、加解密等服务还有各类密钥的加解密和生成的过程core函数重要函数Cipher——常见的数据加解密都在这里进行代码解读HksCoreGenerateKey函数功能:根据不同的tag生成不同类型用途不同的密钥并进行加密封装//根据tag的
各种加密算法参数和模式的校对和检查知识总结总体概述代码详解hks_base_check.hhks_base_check.c知识总结关于各种加密算法的大致描述可以从我的另一篇博客入手鸿蒙涉及的各种加密算法概述总体概述下面介绍的函数主要封装了对于单个参数结构体的有效性的检查以及从参数集合中根据tag取值取得输入参数并进行唯一性和有效性检查的功能函数代码详解hks_base_check.h通过枚举变量定义了密钥的类型封装了参数和期望参数的结构体用于参数的check//参数的格式:两个参数一个布尔型标识该参数是否需要检查,一个是参数本身的值structParams{boolneedCheck;uint
关于security_huks安全模块的知识总结1.代码相关1.1do{}while(0)1.1.1规范宏定义,实现局部作用域1.2.2避免使用goto对程序流进行统一的控制1.1.3避免空宏引起的warning1.1.4定义一个单独的函数块来实现复杂的操作1.2为什么需要lite版本?2.安全相关2.1salt的定义2.2为什么需要salt2.3根据hks_type.h总结的各种算法和模式的类型2.4为什么使用Padding2.5Padding的类型2.5.1OAEP2.5.2PSS2.5.3PKCS1_V1_52.5.4PKCS52.5.5PKCS7关于鸿蒙安全模块的代码和内容相关的知识分
密钥的封装加密再加密总体概述代码解读HksFreeKeyNodeGetEncryptKeyGetDeriveKeyEncryptAndDecryptKeyBlobInitKeyBlobInfoBuildClearKeyBlobHksGenerateKeyNodeHksGetRawKeyHksBuildKeyBlob总体概述代码围绕着密钥的安全性进行封装和加密,分为不同情况下对keyBlob的封装加密和解密;还有对于ParamSet中key的获取本地存储与加解密代码解读HksFreeKeyNode函数功能:释放所传参数所占空间和数据函数实现:首先调用CleanKey清除keyParam->blo
密钥生成和适配转换的各类函数知识分享X509总体概述代码解读1.密钥的生成相关函数1.1PkCtxToX5091.2InitRsaPkCtx1.3RsaToX509PublicKey1.4EccToX509PublicKey1.5Curve25519ToX509PublicKey1.6TranslateToX509PublicKey2.对于各类型密钥载体的检查函数2.1CheckRsaCtx2.2CheckEccXySize3.从X509标准Key转换为各个类型算法公钥的函数3.1X509PublicKeyToRsa3.2X509PublicKeyToEcc3.3TranslateFromX5
OpenHarmony的安全模块诞生的目的是主要是为了实现用户数据在设备互联场景下在各个设备之间的安全流转,保证设备之间相互正确可信,即设备和设备之间建立信任关系,并能够在验证信任关系后,搭建安全的连接通道,实现用户数据的安全传输。本文将继续进行分析介绍OpenHarmony的安全模块以及服务于数据安全的HUKS组件。1.HUKS组件回顾为高效化IoT设备间信任关系的建立,鸿蒙系统提出了基于密钥管理和存储服务(HUKS,HuaweiUniversalKeystoreService)的系列安全机制。HUKS作为安全模块提供的软算法库,用于密钥管理和存储服务其向应用提供密钥库能力,能为应用程序提供
鸿蒙security_huks的文件框架层次分析1.security_huks的框架图2.浅谈框架图下的文件内容与联系在OneCoin小组的共同努力下,终于终于第一轮security_huks解读告一段落,所有的.c文件和.cpp文件基本实现了代码注释和分析,可以在他们的博客中看到所有关于security_huks文件代码的注释(可能与大家的拿到的代码有点出入,因为gitee上的代码库也是一直在更新的),所以这里简单的整理下security_huks的整个文件框架,包括每个文件的功能架构——这里忽略了.h头文件以及test测试文件——后期会根据test文件再进行一次逻辑层次的分析本篇文章首先简
hks_keyblob_lite版本解读知识总结总体概述代码解读GetSaltGetDeriveMaterialBuildKeyBlobUsageSpecEncryptAndDecryptKeyBlobEd25519BlobToKeyMaterialEd25519KeyMaterialToBlobGetRawKeyMaterialHksGenerateKeyNodeFillBaseInfoFillStoreKeyInfoAdjustKeyHksBuildKeyBlob知识总结为什么需要lite版本?Lite使用运行于移动端,有些设备资源非常有限,因此在内存和解析方面必须尽可能减少开销,所以需要
各种加密算法和参数的适配模块总体概述代码解读1.根据tag填充相应数据的函数1.1HksFillKeySpec1.2HksFillUsageSpec1.3HksFillKeyDerivationParam1.4HksFillAeadParam1.5HksFillIvParam2.HksBuildCipherUsageSpec3.HksGetEncryptAeTag4.关于curve25519的函数4.1SetCurve25519KeyMaterial4.2CheckCurve25519KeySize4.3CheckFormatCurve25519Key4.4FormatCurve25519Ke