【问题标题】:Exception "CKR_FUNCTION_NOT_SUPPORTED", PKCS11Interop with OpenSC异常“CKR_FUNCTION_NOT_SUPPORTED”,PKCS11Interop 与 OpenSC
【发布时间】:2017-06-27 04:36:07
【问题描述】:

我正在尝试将 PKCS11Interop 库与最新版本 (0.16) 的 OpenSC (opensc-pkcs11.dll) 一起使用。我尝试过来自 Yubico 4、NitroKey Pro/Start、Fetian ePass2003 三个供应商的 USB 令牌,但无法使用 PKCS11Interop 库中的大部分功能。对于库提供的大多数函数,我收到 Net.Pkcs11Interop.Common.Pkcs11Exception: 'Method C_SignRecoverInit returned CKR_FUNCTION_NOT_SUPPORTED'。抛出此异常的函数有 C_GetOperationState、C_SetOperationState、C_GenerateKey、C_GenerateKeyPair、加密/解密函数、签名/验证函数等。

奇怪的是,GetSlotInfo、GetMechanisms、Login、Session 等函数运行良好。

我花了很多时间试图在这里找到解决方案。如果有人可以提供帮助,将不胜感激。

【问题讨论】:

    标签: pkcs#11 opensc pkcs11interop


    【解决方案1】:

    Net.Pkcs11Interop.Common.Pkcs11Exception 始终表示由设备供应商提供的底层非托管 PKCS#11 库返回的错误。

    您收到的错误 - CKR_FUNCTION_NOT_SUPPORTED - 表示非托管 PKCS#11 库不支持/实现 PKCS#11 规范中定义的特定功能。

    OpenSC source code 确认您的发现,它不支持C_SignRecoverInit 以及其他一些功能。

    顺便说一句,这是正常且非常常见的行为。您几乎找不到支持所有 PKCS#11 功能的 PKCS#11 库。如果 OpenSC 提供的 PKCS#11 库没有提供您真正需要的某些功能,那么我建议您查看商业供应商提供的其他解决方案。

    【讨论】:

      【解决方案2】:

      C_SignRecoverInit 函数在 OpenSC 的大多数驱动程序中都没有实现。其他功能应该没问题,如果没有,请阅读OpenSC wiki中的做什么以及如何报告错误。

      【讨论】:

        猜你喜欢
        • 2012-01-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多