我想使用 USB 令牌(包含私钥和公钥)的数字签名来签署 PDF 文件。当我尝试使用 PKCS11.dll 实现此目的时,系统检测到错误并抛出“找不到模块”错误。
C:\Windows\System32\pkcs11.dll
Error loading PKCS#11 library: Cannot open library at C:\Windows\System32\pkcs11.dll: The specified module could not be found.
import os
import pkcs11
# Path to the PKCS#11 library (update this path accordingly)
pkcs11_lib_path = r'C:\Windows\System32\pkcs11.dll' # or SysWOW64 for 32-bit
print(pkcs11_lib_path)
# Initialize the PKCS#11 library
try:
lib = pkcs11.lib(pkcs11_lib_path)
except Exception as e:
print(f"Error loading PKCS#11 library: {e}")
exit(1)
我尝试了上面提到的代码块
答案就在错误信息中
The specified module could not be found
您必须提供硬件制造商提供的令牌 PKCS#11 模块的完整路径。
位于
system32
/ SysWOW64
的库不需要向它们提供路径。模块名称就足够了。
根据我的经验,没有代币制造商将其库简单地称为
pkcs11.dll
。
rtPKCS11.dll
、eTPKCS11.dll
等是更现实的名称。