可插入非对称低层加密的python库

cryptoke的Python项目详细描述


CryptoKey
==



各种后端在其他加密库(如https://cryptography.io/)周围实现包装器
,并使用统一的api使它们可用。实际的加密操作是由这些后端库执行的,

BR/>在任何非Python库(如OpenSSL)上都不存在硬依赖关系。

> CryptoKey是指需要执行加密
操作的其他库使用的。例如,可以是acme客户端、可信的timestamp服务或ssh客户端。


用户可以实现自己的后端,以使用自己喜爱的hsm或智能卡、
云hsm或自己的ecc实现(不要!),等等。


打开安全漏洞。


给出了填充方案(如pss)的实现。它们可用于低级管道,如从PSS签名中提取盐或使用特定盐创建PSS签名。


一个明确的目标是为不安全操作提供接口。
如果你想自杀,这里有一个工具!

示例
=


签署消息::
从异步导入运行
从cryptokey.hazmat.primitives导入序列化
从cryptokey.backend.cryptography导入backend
从cryptokey.backend.cryptography.rsa import rsa private key

使用普通加密加载私钥。io操作。
使用open('private.key','rb')作为fp:
加密密钥=序列化。加载pem_私钥(
fp.read(),
密码=无,
后端=后端,


默认情况下,使用PSS和SHA256。签名对象还包含所使用的参数。
sig=run(key.sign(b'hello,world!')

将签名写入文件。
将open('hello.sig','wb')作为fp:
fp.write(sig.value)


使用openssl验证签名:
echo-n'hello,world!'| openssl sha256-binary openssl pkeyutl \
-verify-inkey private.key-sigfile hello.sig-pkeyopt摘要:sha256 \
-pkeyopt rsa_padding模式:pss

=textbookrsaprivatekey(public_exponent=7,primes=(17,31))
打印(f'private exponent:{key.private_exponent}')
打印(f'signature for m=2:{run(key.sign_int(2)).int_value}')

安全性
——
此库应与使用的后端一样(in)安全。
如果有疑问,请使用“加密”后端,它建立在openssl之上。

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

推荐PyPI第三方库


热门话题
java Cassandra复制因子大于节点数   java J2EE JTA事务回滚不适用于OSE Glassfish 4.0(Build 89)   java spring安全预认证用户登录   org的java类文件。反应流。从RxJava编译示例时未找到Publisher?   java在使用dataFormat作为POJO通过Camel调用Web服务时无法设置SOAP标头   Javafx类的java静态实例   java如何防止一个部件在关闭时覆盖另一个部件的位置   sql server无法从我的java代码连接到数据库   java在JList(Swing)中显示带有的ArrayList   从Java中的CXF服务获取WSAddressing数据   使用资产文件夹进行java简单json解析(本地)   java LDAPException未绑定的无效凭据   JavaJSFspring部署到weblogic   JAVA中字符数组中的特定元素排列?   如果脚本位于不同的目录中,则ant不会使用exec标记运行Javashell脚本