Ошибка вида:
1 2 3 4 5 6 |
Exception in thread "main" java.security.KeyStoreException: Cannot store non-PrivateKeys at sun.security.provider.JavaKeyStore.engineSetKeyEntry(JavaKeyStore.java:258) at sun.security.provider.JavaKeyStore$JKS.engineSetKeyEntry(JavaKeyStore.java:56) at sun.security.provider.KeyStoreDelegator.engineSetKeyEntry(KeyStoreDelegator.java:117) at sun.security.provider.JavaKeyStore$DualFormatJKS.engineSetKeyEntry(JavaKeyStore.java:70) at java.security.KeyStore.setKeyEntry(KeyStore.java:1140) |
Обычно возникает при попытке использовать KeyStore типа JKS и попытке сохранить туда симметричный ключ. Хранилище JKS НЕ может хранить симметричные ключи. Используйте JCEKS:
1 |
KeyStore keyStore = KeyStore.getInstance("JCEKS"); |
При использовании утилиты keytool для использования хранилища типа JCEKS используйте параметра командной строки:
1 |
keytool <some_other_parameters> -storetype JCEKS |