与Linux内核加密API接口的库
ifalg的Python项目详细描述
python ifalg
ifalg是一个python 3库,用于与linux内核加密api接口。 这通常比使用openssl或pycrypto之类的库要慢, 但是如果你有linux支持的加密硬件,它可能会很有用。
功能
- 目前只支持skcipher和hash算法。
- 算法元数据从/proc/crypto
安装
ifalg应该可以在任何带有现代内核的linux发行版上工作,为了使用这个工具,您需要在内核上启用以下选项:
- 配置加密用户api
- 配置加密用户API哈希
- 配置加密用户api密码
要安装,请使用pip:
pip install ifalg
样品
使用哈希算法:
>>> from ifalg import Hash >>> hash = Hash('sha1') >>> hash.hexdigest(b'hello world') '2aae6c35c94fcfb415dbe95f408b9ce91ee846ed'
使用键控哈希算法:
>>> from ifalg import Hash >>> hash = Hash('cmac(des3_ede)', key=bytes.fromhex('8aa83bf8cbda10620bc1bf19fbb6cd58bc313d4a371ca8b5')) >>> hash.hexdigest(bytes.fromhex('6bc1bee22e409f96')) '8e8f293136283797'
加密和解密:
>>> from ifalg import SKCipher >>> cipher = SKCipher('cbc(aes)', key=bytes.fromhex('790afba9cfbc095b682666a6999a38ed'), iv=bytes.fromhex('fb1f88c0f23d6aa6dde475c018d7f482')) >>> msg = bytes.fromhex('4e0c74c8d67862a9732604f62f4ad316') >>> cipherText = cipher.encrypt(msg) >>> cipherText b'\x7ftT$Z\xf4\xe6|\xd2)cA\xf2\x1d\xcb\xa9' >>> plainText = cipher.decrypt(cipherText) >>> plainText b'N\x0ct\xc8\xd6xb\xa9s&\x04\xf6/J\xd3\x16' >>> plainText == msg True
流式加密和解密:
>>> from ifalg import SKCipherStream >>> stream = SKCipherStream('cbc(aes)', key=bytes.fromhex('790afba9cfbc095b682666a6999a38ed'), iv=bytes.fromhex('fb1f88c0f23d6aa6dde475c018d7f482')) >>> stream.write(b'0123456789abcdef0123456789abcdef') 32 >>> cipherText = stream.read(32)
联系人
有关此软件的任何想法,请通过manologab@gmail.com与我联系。
如果您发现一个bug或有任何改进此工具的想法,请使用github的issues <https://github.com/manologab/python-ifalg/issues>。
许可证
麻省理工学院许可证(MIT)
版权所有(c)2015 Manolo Ramirez T.
兹免费准许任何人取得副本 本软件和相关文档文件(“软件”)的 在软件中不受限制,包括但不限于 使用、复制、修改、合并、发布、分发、再授权和/或出售 软件的副本,并允许软件的用户 在满足以下条件的情况下,可以这样做:
上述版权公告及本许可公告须包括在 软件的拷贝或大部分。
本软件按“原样”提供,无任何形式的保证,明示或 默示的,包括但不限于适销性保证, 适合特定目的和不侵权。在任何情况下 作者或版权所有者应对任何索赔、损害或其他 责任,无论是在合同诉讼、侵权诉讼或其他诉讼中, 不属于或与本软件有关,或使用或与本软件的其他交易有关。 软件。