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