OpenSSL 1.1.1 国密SM2 SM3 SM4 SM9 ZUC EEA3 EIA3 SM2 +SM3签名 源码 Demo 下载 OpenSSL iOS端库下载

本文介绍了如何获取支持国密算法的OpenSSL 1.1.1库,包括SM2、SM3、SM4等,并提供了GitHub资源链接。针对iOS平台,分享了通过特定脚本打包的库文件,适用于多种架构。同时,文章提及SM2签名和验证的API使用,以及SM9算法在OpenSSL中暂未支持的情况,推荐使用GMSSL库作为替代。
摘要由CSDN通过智能技术生成

OpenSSL 1.1.1 国密SM2 SM3 SM4 SM9 ZUC EEA3 EIA3 SM2 +SM3签名 源码 Demo 下载 OpenSSL iOS端库下载

最近因为需要研究国密,所以寻找加密库,demo就很重要了,这里记录下。

直接进入正文,附上OpenSSL GitHub官网的下载地址,最新的已经支持国密了。
https://github.com/openssl/openssl

进入GitHub 下载OpenSSL demo,你会发现移动端 安卓,iOS的库呢?What F ?

网上找了很多,最新的基本没有。基本需要自己编译OpenSSL,这个过程很痛苦,你可以试试!

最后我用了一个大神的脚本,胜利解决打包成libcrypto.a libssl.a 文件,支持armv7,arm64,armv7s,i386,x86_64,附上大神GitHub链接
https://github.com/x2on/OpenSSL-for-iPhone

这里还有个插曲,以前用过支付宝里的OpenSSL,来进行RSA签名,验证签名,加解密。最近下了SDK发现最新的阿里支付SDK没找到SM2文件。于是又断了一条路。(其实OpenSSL提供一些编译指令,可以摒弃一些无用的算法,比如no sm2.这样减少libssl,libcrypto包大小)

库有了,查看SM2,SM3,SM4 加密OpenSSL的代码,发现很好很强大
/*
SM2 signature generation. Assumes input is an SM3 digest
*/
int SM2_sign(int type, const unsigned char *dgst, int dgstlen,
unsigned char *sig, unsigned int *siglen, EC_KEY *eckey);

/*
*SM2 signature verification. Assumes input is an SM3 digest
*/
int SM2_verify(int type, const unsigned char *dgst, int dgstlen,
const unsigned char *sig, int siglen, EC_KEY *eckey);

int SM2_encrypt(const EC_KEY *key,
const EVP_MD *digest,
const uint8_t *msg,
size_t msg_len,
uint8_t *ciphertext_buf, size_t *ciphertext_len);

int SM2_decrypt(const EC_KEY *key,
const EVP_MD *digest,
const uint8_t *ciphertext,
size_t ciphertext_len, uint8_t *ptext_buf, size_t *ptext_len);

每个参数没有备注,就问你怕不怕。API的话,你可以去
https://www.feistyduck.com/library/openssl-cookbook/
没账号的话,需要注册登录。注册腾讯邮箱可以,新浪邮箱半天都没收到确认链接。然后可以下载,或者在线查看相关英文Api。然后呢发现没有SM2 Api的(可能我方法有误,你可以找找,目前还在摸着石头过河中)。

看到这里你可能纳闷,OpenSSL的SM9国密算法呢,不好意思还没有。所以采用GMSSL的SM9来代替。但是这个库编译armv7,arm64,armv7s,i386,x86_64架构也有一序列问题。
这里是官网http://gmssl.org。一直维护更新在。
然后issue的话你可以看GMSSL的git官网问题,目前遇到卡住问题就在issue里的。
https://github.com/guanzhi/GmSSL这是GMSSL的github链接

评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Asia_ZhangQQ

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

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

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

打赏作者

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

抵扣说明:

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

余额充值