#java #keystore #private-key
#java #хранилище ключей #закрытый ключ
Вопрос:
Я добавляю пару ключей (закрытый ключ и сертификат) в хранилище ключей Windows на Java. Мне нужно сделать закрытый ключ недоступным для экспорта. Java-код, который делает это, делает закрытый ключ экспортируемым. Как я могу это изменить?
Я не нашел никаких свойств или атрибутов, в которых это можно было бы изменить. Метод Keystore.store получает LoadStoreParameter, но, похоже, речь идет о настройке пароля для закрытого ключа.
PrivateKey privateKey=...;
Certificate certificate=...;
KeyStore keyStore = KeyStore.getInstance("Windows-MY");
keyStore.load(null);
keyStore.setKeyEntry("alias",privateKey,"".toCharArray(),new java.security.cert.Certificate[]{certificate});
Ответ №1:
Доступ к криптографическим службам Windows управляется поставщиком SunMSCAPI. Он обеспечивает мост между java JCE API и службами Windows. Смотрите документацию
Поставщик SunMSCAPI позволяет приложениям использовать стандартные API-интерфейсы JCA / JCE для доступа к собственным криптографическим библиотекам, хранилищам сертификатов и контейнерам ключей на платформе Microsoft Windows. Сам поставщик SunMSCAPI не содержит криптографических функций, это просто канал между средой Java и собственными криптографическими службами в Windows.
Хранилище WINDOWS-MY
ключей в SunMSCAPI использует стандартный Java KeyStore API, и он не определяет какой-либо тип «извлекаемого» свойства, поэтому, боюсь, вы не сможете его установить.