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

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

3660

被折叠的 条评论
为什么被折叠?



