试图了解创建一个能够使用任何供应商的HSM对对象进行签名的多平台Python包是否可行?
由于不同供应商的pkcs#11库必须实现单个接口,因此如果不使用特定于供应商的API,似乎是可能的。然而,OpenSC有一个支持的HSM列表和一个不支持的列表,所以我认为它比我想象的要复杂。
请让我知道这是否可能,或解释为什么不可能。谢谢。
发布于 2021-12-25 22:58:07
PKCS#11是一个API标准。它描述了一个API的软件,想要使用智能卡或其他密码‘设备’。它没有描述供应商应该如何在API下做任何事情。而且,它并不期望您(作为软件程序员)知道如何访问所有的硬件。
你的应用程序写的是" C_Login“,因为这是PKCS#11。P11声明了C_Login期望什么,以及在调用之后环境的状态应该是什么--它并不告诉供应商如何到达该状态,只告诉供应商期望什么是结束状态,而不是如何到达该状态的路径。
现在:.多平台Python包.绝对有可能,假设你可以访问每一个设备二进制协议,通信协议和编程方法,为所有提供密码卡接口的东西。
每个提供P11库的智能卡、HSM、软HSM等都知道您的应用程序需要什么,但是它如何使该对象或状态可用完全取决于实际的设备/伪设备。这就是为什么需要一个特定于供应商的库--因为供应商知道供应商的设备和协议。
或者您可以提供一个API标准,定义软件访问硬件的标准化方法,使二进制协议、通信协议和编程方法抽象.ie,您将重新创建PKCS#11,但其中一个是特定于Python的。
更快地使用与PKCS#11对话的Py,并连接到任何P11供应商提供的库,以便与该供应商的设备对话。
https://stackoverflow.com/questions/70427108
复制相似问题