2017-07-12 7 views
2

Nous utilisons Pkcs11Interop bibliothèque pour la cryptographie et nous personnaliser & mettre en œuvre Pkcs11Interop des exemples de code pour notre projet où Pkcs11Interop documents Github. En production, pas tous les jours mais nous devons redémarrer le serveur après l'utilisation du processeur atteindre le maximum lorsque nous obtenons une exception consécutive (4 ou 5 fois) CKR_ENCRYPTED_DATA_INVALID. Qu'est-ce qui cause ça? Comment pouvons-nous résoudre ce problème? Toute idée sera appréciée. Si quelqu'un veut, je peux partager notre exemple de code. Merci pour ton aide.Pkcs11Interop CKR_ENCRYPTED_DATA_INVALID exception cause l'utilisation élevée du processeur

2017-07-11 10: 45: 07,580 ERREUR HSM | 11.07.2017 10:45:07 | HSM Decrypt erreur est survenue Net.Pkcs11Interop.Common.Pkcs11Exception: Méthode C_Decrypt retourné CKR_ENCRYPTED_DATA_INVALID à Net.Pkcs11Interop.HighLevelAPI41.Session.Decrypt (mécanisme de mécanisme, ObjectHandle KeyHandle, byte [] encryptedData) à Pkcs11HsmHost.DecryptInSession (session Session , la valeur String, Int32 keyIndex, Int32 retrycount) dans la sécurité \ Pkcs11HsmHost.cs: ligne 164

Répondre

0

Vous êtes probablement pas utiliser votre bibliothèque PKCS # 11 correctement dans un environnement miltithreaded. Voir this answer pour plus d'informations.

+0

Bonjour Jariq, Nous avons préparé un exemple de projet et implémenté vos exemples de code où publier dans github. Mais nous avons trouvé quelque chose de bizarre, il n'y a pas de AppType dans la bibliothèque Pkcs11. "Si une application accède à la bibliothèque PKCS # 11 à partir de plusieurs threads simultanément, elle doit spécifier" AppType.MultiThreaded "comme valeur du paramètre" appType "La bibliothèque PKCS # 11 utilisera le modèle de thread du système d'exploitation natif pour le verrouillage. " –

+0

@ MuratGündeş 'AppType' enum est disponible uniquement dans la branche principale actuelle qui doit encore être publiée en tant que nouvelle version majeure 4.0. Dans les anciennes versions, ce paramètre utilise le type 'bool', vous devez donc le définir sur' true'. – jariq

+0

Et un autre est, méthode GetSlotList. Votre exemple est comme ci-dessous, Liste slots = pkcs11.GetSlotList (SlotsType.WithTokenPresent); Mais nous n'avons rien trouvé à propos de SlotsType comme AppType. Lorsque nous vérifions la méthode GetSlotList, elle prend un paramètre nommé bool tokenPresent. –