Exception “CKR_FUNCTION_NOT_SUPPORTED”, PKCS11Interop with OpenSC

让人想犯罪 __ 提交于 2019-12-24 07:10:20

问题


I am trying to use PKCS11Interop Library with latest version (0.16) of OpenSC (opensc-pkcs11.dll). I have tried USB tokens from three vendors which are Yubico 4, NitroKey Pro/Start, Fetian ePass2003 but unable to use most of the functions from PKCS11Interop Library. I receive Net.Pkcs11Interop.Common.Pkcs11Exception: 'Method C_SignRecoverInit returned CKR_FUNCTION_NOT_SUPPORTED' for most of functions provided by the library. The functions that throw this exception are C_GetOperationState, C_SetOperationState, C_GenerateKey, C_GenerateKeyPair, Encrypt/Decrypt functions, Sign/Verify functions etc.

The strange thing is functions like GetSlotInfo, GetMechanisms, Login, Session works fine.

I have spent a lot of time trying to find a solution here. Would appreciate if anyone can help on this.


回答1:


Net.Pkcs11Interop.Common.Pkcs11Exception always indicates error returned by the underlying unmanaged PKCS#11 library which is usually provided by the device vendor.

Error you are receiving - CKR_FUNCTION_NOT_SUPPORTED - indicates that unmanaged PKCS#11 library does not support/implement particular function defined in PKCS#11 specification.

OpenSC source code confirms your finding that it does not support C_SignRecoverInit and also a few other functions.

BTW this is normal and pretty common behavior. You will hardly find PKCS#11 library that supports all PKCS#11 functions. If PKCS#11 library provided by OpenSC does not provide some function you really need then I suggest you check other solutions provided by commercial vendors.




回答2:


C_SignRecoverInit functions are not implemented in most of the drivers in OpenSC. The other functions should be fine and if not, read what to do and how to report the bugs in the OpenSC wiki.



来源:https://stackoverflow.com/questions/44359815/exception-ckr-function-not-supported-pkcs11interop-with-opensc

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!