可插入非对称低层加密的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之上。
==
各种后端在其他加密库(如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之上。