与Linux内核加密API接口的库

ifalg的Python项目详细描述


python ifalg

ifalg是一个python 3库,用于与linux内核加密api接口。 这通常比使用openssl或pycrypto之类的库要慢, 但是如果你有linux支持的加密硬件,它可能会很有用。

功能

  • 目前只支持skcipherhash算法。
  • 算法元数据从/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)

作者

马诺洛拉米雷斯tmanologab@gmail.com

联系人

有关此软件的任何想法,请通过manologab@gmail.com与我联系。

如果您发现一个bug或有任何改进此工具的想法,请使用github的issues <https://github.com/manologab/python-ifalg/issues>

许可证

麻省理工学院许可证(MIT)

版权所有(c)2015 Manolo Ramirez T.

兹免费准许任何人取得副本 本软件和相关文档文件(“软件”)的 在软件中不受限制,包括但不限于 使用、复制、修改、合并、发布、分发、再授权和/或出售 软件的副本,并允许软件的用户 在满足以下条件的情况下,可以这样做:

上述版权公告及本许可公告须包括在 软件的拷贝或大部分。

本软件按“原样”提供,无任何形式的保证,明示或 默示的,包括但不限于适销性保证, 适合特定目的和不侵权。在任何情况下 作者或版权所有者应对任何索赔、损害或其他 责任,无论是在合同诉讼、侵权诉讼或其他诉讼中, 不属于或与本软件有关,或使用或与本软件的其他交易有关。 软件。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java窗口。位置和窗口。公开问题   java如何从存储在ArrayList<Node>中的动态生成的文本字段中获取文本?   java如何立即关闭InputStream?   如何重新启动Java程序以激活环境变量   java搜索字符串是否相差一个字符   java CFB模式输出与CTR输出相同;我做错什么了吗?   java如何在javaFX中将实例化对象添加到Stage   java如何在jtextarea上打印来自不同类的文本消息   java以编程方式确定IOException的原因?   限制Java NIO通道(文件或socket)中的可用内容   javajaxb与JDOM:是否可以使用JAXB更新xml文件   批处理文件到java测试   JavaFX:stage的作用是什么。可设置大小(false)是否会导致额外的页边距?   java有没有办法告诉IntelliJ按需堆叠参数?   java Seam会话范围的组件在下一个请求中消失   java Google Web Toolkit对开发复杂的java脚本有用吗?   安卓 studio java ArrayList正在检索最高值   java为什么递归地用随机数填充LinkedList时会出现StackOverflowException?