Хранение зашифрованных PrivateKey в Java Keystores - PullRequest
0 голосов
/ 09 мая 2018

Java Keystores (например, JKS, PKCS) позволяют сохранять приватных ключей (интерфейс Ключ ) и цепочки сертификатов. Однако закрытый ключ RSA KeyPair, который зашифрован (например, EncryptedPrivateKeyInfo в bouncycastle или в javax ) не реализует Ключевой интерфейс.

Как правильно хранить зашифрованные закрытые ключи в хранилище ключей?

1 Ответ

0 голосов
/ 09 мая 2018

Если у вас уже есть EncryptedPrivateKeyInfo, вы сможете использовать его непосредственно при создании записи хранилища ключей.Java хранит PrivateKey в KeyStore в формате EncryptedPrivateKeyInfo.

Этот метод необходимо использовать в KeyStore.setKeyEntry(String alias, byte[] key, Certificate[] chain).Документация здесь .

Другой метод setKeyEntry принимает дополнительный аргумент, который является паролем, который Java создаст сам EncryptedPrivateKeyInfo с предоставленным паролем.

Примечание. Только если Key Protection Algorithm поддерживается Java, он будет импортировать закрытый ключ, иначе он будет жаловаться.Если это вызывает недовольство, вы можете посмотреть другой вариант: расшифровать зашифрованный закрытый ключ самостоятельно и использовать другой метод setKeyEntry().

...