swig的学习以及国密的python封装

本文介绍了如何利用swig将国密算法(如SM3)封装为Python类,以便于在Python中以类似hashlib.md5的方式使用。通过swig的typemaps处理输入输出参数,实现从Python到C++的无缝调用。此外,还分享了一个名为pygmcrypto的模块,包含了SM3和SM4算法,并提供了安装和使用指南。
摘要由CSDN通过智能技术生成

swig的学习以及国密的python封装

起因

最近在研究国密算法,而我们主要是使用python来进行开发,所以就需要构建一个国密的python模块。

国密算法网上已经有很好的实现,笔者使用的是一个参考Xyssl实现的那个版本。因为这些版本都是c的,所以很容易将其扩展到python里面,但是为了跟python自身的crypto的行为一致,需要将国密生成相应的class。譬如,python的hashlib的md5,使用方式如下:

md = hashlib.md5("123")
md.update("456")
print md.hexdigest()
mdCopy = md.copy()
print mdCopy.digest()

所以,对于类似的国密sm3算法,我们扩展到python里面,也应该提供如上的使用方式。

注册一个class到python,也不是一件很困难的事情,但是笔者觉得可以采用更简单的方式,自然就考虑使用swig。

swig

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值