#java-security
Вопрос:
У меня есть следующий код, который работает с моим файлом pem:
byte[] byteKey = Base64.getDecoder().decode(keyBuilder.toString().getBytes()); X509EncodedKeySpec x509publicKey = new X509EncodedKeySpec(byteKey); KeyFactory kf = KeyFactory.getInstance("RSA"); publicKey = kf.generatePublic(x509publicKey);
Он связан с хранилищем ключей, в котором перечислены личные данные, подобные этому:
Signature algorithm name: SHA256withRSA Subject Public Key Algorithm: 2048-bit RSA key
Я создал новое хранилище ключей, в котором указан другой приватный доступ, подобный этому:
Signature algorithm name: RSASSA-PSS Subject Public Key Algorithm: 2048-bit RSA key
После создания файла PEM из него и повторного запуска приведенного выше кода он выдает мне следующую ошибку:
java.безопасность.спецификация.Исключение InvalidKeySpecException: java.безопасность.Исключение InvalidKeyException: Исключение IOException: идентификатор объекта() — данные не являются идентификатором объекта (тег = -96)
Я также попытался изменить алгоритм здесь:
KeyFactory kf = KeyFactory.getInstance("RSASSA-PSS");
Но в нем по-прежнему говорится о той же ошибке. В чем может быть проблема?