2017-07-12 109 views
2

我們正在使用Pkcs11Interop庫密碼,我們定製&實現Pkcs11Interop代碼樣本爲我們的項目在哪裏Github文件Pkcs11Interop。在生產中,不是每天,但我們必須在CPU使用率達到最大時重新啓動服務器,當我們獲得連續(4或5次)CKR_ENCRYPTED_DATA_INVALID例外。這是什麼原因?我們如何解決這個問題?任何想法將不勝感激。如果有人想要我可以分享我們的代碼示例。感謝您的幫助。Pkcs11Interop CKR_ENCRYPTED_DATA_INVALID異常導致CPU使用率很高

2017-07-11 10:45:07,580錯誤HSM | 11.07.2017 10:45:07 | HSM解密 出錯Net.Pkcs11Interop.Common.Pkcs11Exception:方法 C_Decrypt在 Net.Pkcs11Interop.HighLevelAPI41.Session.Decrypt返回CKR_ENCRYPTED_DATA_INVALID(機制機構, 對象句柄keyHandle,字節]的EncryptedData)在 Pkcs11HsmHost.DecryptInSession(會話會話,字符串值,Int32 keyIndex,Int32 retryCount)在安全\ Pkcs11HsmHost.cs中:第164行

回答

0

您很可能沒有在miltithreaded環境中正確使用您的PKCS#11庫。有關更多信息,請參見this answer

+0

嗨Jariq, 我們準備了一個示例項目,並在github中發佈代碼實例。但是我們發現一些奇怪的東西,Pkcs11庫中沒有AppType。 「 」如果應用程序將同時從多個線程訪問PKCS#11庫,則應指定「AppType.MultiThreaded」作爲「appType」參數的值.PKCS#11庫將使用本地操作系統線程模型進行鎖定。 「 –

+0

@MuratGündeş'AppType'枚舉僅在當前主分支中可用,該分支尚未作爲新的主要版本4.0發佈。在舊版本中,這個設置使用'bool'類型,所以你需要將它設置爲'true'。 – jariq

+0

另一個是GetSlotList方法。您的示例如下所示, 列表 slots = pkcs11.GetSlotList(SlotsType.WithTokenPresent); 但是我們沒有發現任何關於AppType的SlotsType。當我們檢查GetSlotList方法時,它會使用一個名爲bool tokenPresent的參數。 –

相關問題