Ich habe den SunPKCS11-Provider folgendermaßen initialisiert:
%Vor%Und dann verwende ich diesen Provider, um einen KeyStore zu initialisieren, um einen Schlüssel für Verschlüsselungsoperationen zu verwenden.
%Vor%Wenn ich mit den Verschlüsselungsoperationen fertig bin, Wie beende ich die Sitzung mit dem PKCS11-Token?
Ich habe versucht, den Provider zu entfernen, aber es hat nicht funktioniert.
%Vor%Wenn ich das nächste Mal versuche, mit dem Token zu kommunizieren, wird diese Ausnahme vom Token CKR_CRYPTOKI_ALREADY_INITIALIZED
ausgelöstAKTUALISIEREN :
Ich habe es versucht
%Vor%aber es hat auch nicht funktioniert.
Ich habe einen Anwendungsfall, bei dem ich sowohl den Wrapper von PKCS # 11 als auch den Provider verwenden muss. Um den Wrapper verwenden zu können, muss ich den Provider abschließen, sonst gibt das Token CKR_CRYPTOKI_ALREADY_INITIALIZED
error aus, wenn der Wrapper versucht, mit dem Token zu kommunizieren.
UPDATE MIT CODE:
Ich verwende Suns PKCS # 11 Provider und IAIKs PKCS # 11 Wrapper.
%Vor% Da der Provider der Sun keine Sitzungen abmeldet und schließt, kann IAIK nicht auf das Token zugreifen. Und die Keystore
api von Java hat keine Methode, sich abzumelden.
Endlich konnte ich eine Lösung finden. Der Anbieter der Sonne verwendet den Wrapper darunter. Der Trick besteht also darin, den PKCS # 11-Wrapper der Sun zu verwenden, um die aktuelle Instanz zu erhalten und zu finalisieren. Offensichtlich ist dieses Finalisieren des Sitzungsmerkmals im Provider nicht verfügbar. Aber es gibt einen Workaround, und es sieht so aus:
%Vor%