Экземпляр 2 не может загрузить ключ, хранящийся в экземпляре 1, с помощью SunPKCS11 в устройстве HSM.
У меня есть два экземпляра приложения. В моем приложении для хранения ключей использовался аппаратный модуль безопасности (HSM). я использовалSunPKCS11
для хранения и загрузки ключей. Каждое приложение может создать ключ и сохранить его в устройстве HSM. У меня проблема, когда я сохраняю ключ с экземпляром 1 и загружаю этот ключ с экземпляром 2 по его псевдониму. Экземпляр 2 не может найти новый ключ. Мне нужно перезапустить экземпляр 2, чтобы прочитать этот ключ. Я использовал приведенный ниже код для созданияprovider
.
final String configName = "pkcs11.cfg";
sun.security.pkcs11.SunPKCS11 p = new sun.security.pkcs11.SunPKCS11(configName);
Security.addProvider(p);
Я использовал logout
метод и создать новый provider
снова, но это не сработало.
((SunPKCS11) p).logout();
Security.removeProvider(p.getName());
В KeyStore
возвращает предыдущие ключи и не может загрузить новый ключ.
KeyStore keyStore = KeyStore.Builder.newInstance("PKCS11", p,
new KeyStore.PasswordProtection("password".toCharArray())).getKeyStore();
keyStore.load(null, "password".toCharArray());