PKCS11加密密钥类

tokencrypt的Python项目详细描述


此模块提供与加密兼容的代理类,以便使用 加密智能卡(如Yubi密钥或PKCS 11令牌) 处理实际的加密工作负载。

这些通常被认为是“安全”令牌和私有 密钥它们通常被配置为不可提取私钥 从代币的硬件。因此,您需要请求令牌 执行任何通常使用 私钥。

在本模块中,您将发现密码的新抽象 rsaprivatekey类,称为rsaprivatetoken而不是使用 后端提供的普通加密使用硬件令牌 直接的。

目前,这意味着pkcs 11api由 opensc-pkcs11[1]包。tokencrypt使用pykcs11库 要包装opensc pkcs 11库并需要一个环境变量 设置以便可以在Debian上找到库,该库将

exportPYKCS11LIB=/usr/lib/x86_64-linux-gnu/opensc-pkcs11.so

这个库的一个用例是使用一个yubikey来提供oauth 使用请求的python应用程序的标识服务-oauth2 图书馆。如果要访问第三方API 云服务系统。

在这种情况下,可以向图书馆提供rsaprivatetoken 通常的rsaprivatekey。

许多库示例显示提供了一个pem编码的字符串,但它们也 使用密码学的rsaprivatekey的一个子类,如下所示。

示例

importTokenCryptfromThierAPIimportAPIConection,PrivateCredentials# Not a working example.rsa_key=TokenCrypt.RSAPrivateToken(slot=0,key=0,pin='123456')withrsa_key:credentials=PrivateCredentials(args.consumer_key,rsa_key)api=APIConection(credentials)do_something_with(api)
[1]This is the package name in debian Stretch, Buster, Bullseye(so far), your distribution may vary.

当前状态

这是概念发布的初步证明,其设计足以 支持作为OAuth客户机工作的代码。因此,目前唯一的行动 在密钥上实现的是签名。

但是有很多todo,pull请求和bug报告都是受欢迎的。

待办事项

  • Implement RSAPublicToken .
  • Dynamically select the signing mechanism based to the provided padding and hash.
  • Implement decrypt.
  • Implement certificate extraction.

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

推荐PyPI第三方库


热门话题
java为什么JPA规范(包括2.0)或Hibernate扩展不允许您为@Version注释指定生成器,例如Oracle序列   Univocity解析器中特定DecimalFormat的java格式结果集   javanetbeansjavadoc   java Maven概要文件不在子模块中继承   java HTTP 500错误:如何修复我的`dispatcherservlet。xml文件?   java Lucene 2.4.1索引将使用Lucene 6.2.1重新编制索引   java如何使用ManagedServiceFactory服务   java在一行上读取多个字符输入   java轮流挑选端点,试图获得最大值   通过Java/Spring引导连接到Docker Elasticsearch实例   java返回最大元素   java clear recyclerview打开另一个活动的按钮   java何时在JPA中使用一对多或多对一   使用Jersey客户端的JavaHTTPS