C# Pkcs11Interop CKR\u加密的\u数据\u无效异常导致CPU使用率高

C# Pkcs11Interop CKR\u加密的\u数据\u无效异常导致CPU使用率高,c#,pkcs#11,hsm,pkcs11interop,C#,Pkcs#11,Hsm,Pkcs11interop,我们正在使用Pkcs11Interop库进行加密,我们为项目定制并实现Pkcs11Interop代码示例,其中Pkcs11Interop文档位于。在生产中,并非每天都如此,但在CPU使用达到最大值后,当我们连续(4或5次)收到一个CKR\u加密的\u数据\u无效异常时,我们必须重新启动服务器。这是什么原因?我们如何解决这个问题?如有任何意见,将不胜感激。如果有人需要,我可以分享我们的代码示例。谢谢你的帮助 2017-07-11 10:45:07580错误HSM | 11.07.2017 10:4

我们正在使用
Pkcs11Interop
库进行加密,我们为项目定制并实现
Pkcs11Interop
代码示例,其中
Pkcs11Interop
文档位于。在生产中,并非每天都如此,但在CPU使用达到最大值后,当我们连续(4或5次)收到一个
CKR\u加密的\u数据\u无效
异常时,我们必须重新启动服务器。这是什么原因?我们如何解决这个问题?如有任何意见,将不胜感激。如果有人需要,我可以分享我们的代码示例。谢谢你的帮助

2017-07-11 10:45:07580错误HSM | 11.07.2017 10:45:07 | HSM解密 发生错误Net.Pkcs11Interop.Common.Pkcs11Exception:方法 C_Decrypt返回的CKR_加密数据在处无效 Net.Pkcs11Interop.HighLevelAPI41.Session.Decrypt(机制, ObjectHandle键句柄,字节[]encryptedData)位于 Security\Pkcs11HsmHost.cs中的Pkcs11HsmHost.DecryptInSession(会话会话、字符串值、Int32 keyIndex、Int32 retryCount):第164行


您很可能没有在Milithread环境中正确使用PKCS#11库。有关更多信息,请参阅。

Hi Jariq,我们准备了一个示例项目,并在github中发布了您的代码示例。但我们发现了一些奇怪的东西,Pkcs11库中没有AppType。“如果应用程序将同时从多个线程访问PKCS#11库,则应将“AppType.MultiThreaded”指定为“AppType”参数的值。PKCS#11库将使用本机操作系统线程模型进行锁定。”@MuratGündeş
AppType
enum仅在当前主分支中可用,该分支尚未作为新的主版本4.0发布。在旧版本中,此设置使用
bool
类型,因此您需要将其设置为
true
。另一个是GetSlotList方法。您的示例如下所示,List slots=pkcs11.GetSlotList(SlotsType.WithTokenPresent);但是我们没有找到像AppType这样的SlotsType。当我们检查GetSlotList方法时,它会接受一个名为bool tokenPresent的参数。@MuratGündeş您需要在中处理示例和文档,而不是