相关问题
HarmonyOS SM2,SM4国密加解密使用demo
257浏览 • 1回复 待解决
加解密操作,国密SM2以及SM4怎么使用?
2499浏览 • 1回复 待解决
使用自定义公私钥执行SM2算法加解密操作
1109浏览 • 1回复 待解决
HarmonyOS 国密加解密算法和以及国密通讯渠道加密组件相关案例
512浏览 • 1回复 待解决
加解密算法库框架不支持SM2算法的ECDH密钥协商
223浏览 • 1回复 待解决
HarmonyOS Sm2和DES加解密问题
442浏览 • 1回复 待解决
国密算法SM2签名api,没有可辨别标识IDA参数有什么实现方案
1631浏览 • 1回复 待解决
能否提供SM2(国密)请求,HarmonyOS实现的demo样例
140浏览 • 1回复 待解决
网络请求能否实现国密SM2双向认证的https请求
1791浏览 • 1回复 待解决
HarmonyOS 国密算法API
402浏览 • 0回复 待解决
sm2加解密中出现裸密文如何处理以及导入公钥加密和导入私钥解密的方法
951浏览 • 1回复 待解决
SM2示例中的加解密方式如何使用Java端生成的公私钥
609浏览 • 1回复 待解决
HarmonyOS SM2加签验签SM3摘要算法使用
430浏览 • 1回复 待解决
加解密(SM2,SM4),提供些案例demo作为开发自学参考
257浏览 • 1回复 待解决
关于国密SM4加密,想了解一下HarmonyOS的国密SM4加密解密代码怎么写?
203浏览 • 1回复 待解决
密钥库生成sm2密钥,密钥对不能同时支持签名和加解密
222浏览 • 1回复 待解决
加解密算法库框架使用
881浏览 • 1回复 待解决
sm2 私钥单独方法封装后 数据无法解密
770浏览 • 1回复 待解决
SM4采用OFB模式进行加解密
913浏览 • 1回复 待解决
如何使用SM4的CBC模式加解密
921浏览 • 1回复 待解决
HUKS的SM2签名验签的算法规格及开发步骤
1023浏览 • 1回复 待解决
基于加解密算法框架的规格问题
696浏览 • 1回复 待解决
huks sm2签名验签失败
194浏览 • 1回复 待解决
HarmonyOS SM2密钥对转换失败
578浏览 • 1回复 待解决
HarmonyOS 如何进行DES加解密
528浏览 • 1回复 待解决
加密过程
1. 生成ECC密钥(公钥)。
当前SM2密钥生成的参数只支持封装并ASN.1序列化后的数据(公钥91字节,私钥51字节),而很多开发者使用的密钥数据是未封装序列化过的原始裸数据(公钥64字节,私钥32字节)。当前ECC密钥的生成是支持未封装序列化过的原始裸数据作为参数的,可以先使用原始密钥数据生成ECC密钥作为中间对象,然后将ECC密钥的数据作为参数来生成SM2密钥。
2. 生成SM2密钥对象。
完成ECC的密钥对象创建后,下一步就是将ECC的密钥数据传入convertKey中来生成SM2密钥对象。
3. 使用裸密钥执行SM2加密。
得到SM2密钥后,就可以使用cryptoFramework创建的cipher,执行SM2算法加密。
4. 业务层封装调用,执行加密。
其中pubKey是未封装序列化过的原始裸数据公钥。最终返回的是标准SM2密文数据,符合ASN.1编码标准(base64编码)。
解密过程
1. 将SM2裸密文数据转为标准的ASN.1序列化格式。
部分开发者的云端使用的密文格式为未封装序列化的裸数据,所以需要先根据SM2国标说明,编写代码,将裸密文数据转化为ASN.1序列化格式。
2. 生成ECC密钥(私钥)。
与加密过程的生成ECC公钥类似,先使用原始私钥数据生成ECC加密的私钥;其中genSM2CommonSpec与加密时的方法相同。
3. 生成SM2密钥对象。
与加密过程相同,使用genSM2Key方法,将ECC的私钥数据传入convertKey中来生成SM2密钥对象。
4. 使用裸密钥执行SM2解密。
得到SM2密钥后,就可以使用cryptoFramework创建的cipher,执行SM2算法解密。
5. 业务层封装调用,执行解密。
如下所示,如果需要解密裸密文,执行decryptSM2Array;如果待解密的是base64编码的符合ASN.1序列化的密文,则执行decryptSM2方法。其中priKey是未封装序列化过的原始裸数据私钥。最终返回解密后的字符串。
参考链接
SM2算法简介
使用SM2非对称密钥加解密