Чтение PKCS8 в формате PEM: не удается найти поставщика ⇐ JAVA
-
Anonymous
Чтение PKCS8 в формате PEM: не удается найти поставщика
Попытка прочитать закрытый ключ PKCS8 в формате PEM с помощью следующего:
частный статический PrivateKey loadPrivateKey() выдает IOException, GeneralSecurityException, OperationCreationException, PKCSException { FileReader fileReader = новый FileReader(certsRoot + "/pep-client-key.pem"); PEMParser keyReader = новый PEMParser (fileReader); Конвертер JcaPEMKeyConverter = новый JcaPEMKeyConverter(); InputDecryptorProvider decryptionProv = новый JceOpenSSLPKCS8DecryptorProviderBuilder().build("mypassword".toCharArray()); Пара ключей объекта = keyReader.readObject(); PrivateKeyInfo keyInfo; если (keyPair экземпляр PKCS8EncryptedPrivateKeyInfo) { keyInfo = ((PKCS8EncryptedPrivateKeyInfo) keyPair).decryptPrivateKeyInfo(decryptionProv); // Исключение, выброшенное отсюда keyReader.close(); вернуть конвертер.getPrivateKey(keyInfo); } вернуть ноль; } выдает следующую ошибку:
org.bouncycastle.pkcs.PKCSException: невозможно прочитать зашифрованные данные: 1.2.840.113549.1.5.13 недоступно: невозможно найти поставщика, поддерживающего 1.2.840.113549.3.7 в org.bouncycastle.pkcs.PKCS8EncryptedPrivateKeyInfo.decryptPrivateKeyInfo (неизвестный источник) Я проверил с помощью OpenSSL, что файл можно обработать как PKCS8 PEM с указанием пароля.
Есть идеи? Я не против, если есть решение, не связанное с библиотеками BouncyCastle.
Попытка прочитать закрытый ключ PKCS8 в формате PEM с помощью следующего:
частный статический PrivateKey loadPrivateKey() выдает IOException, GeneralSecurityException, OperationCreationException, PKCSException { FileReader fileReader = новый FileReader(certsRoot + "/pep-client-key.pem"); PEMParser keyReader = новый PEMParser (fileReader); Конвертер JcaPEMKeyConverter = новый JcaPEMKeyConverter(); InputDecryptorProvider decryptionProv = новый JceOpenSSLPKCS8DecryptorProviderBuilder().build("mypassword".toCharArray()); Пара ключей объекта = keyReader.readObject(); PrivateKeyInfo keyInfo; если (keyPair экземпляр PKCS8EncryptedPrivateKeyInfo) { keyInfo = ((PKCS8EncryptedPrivateKeyInfo) keyPair).decryptPrivateKeyInfo(decryptionProv); // Исключение, выброшенное отсюда keyReader.close(); вернуть конвертер.getPrivateKey(keyInfo); } вернуть ноль; } выдает следующую ошибку:
org.bouncycastle.pkcs.PKCSException: невозможно прочитать зашифрованные данные: 1.2.840.113549.1.5.13 недоступно: невозможно найти поставщика, поддерживающего 1.2.840.113549.3.7 в org.bouncycastle.pkcs.PKCS8EncryptedPrivateKeyInfo.decryptPrivateKeyInfo (неизвестный источник) Я проверил с помощью OpenSSL, что файл можно обработать как PKCS8 PEM с указанием пароля.
Есть идеи? Я не против, если есть решение, не связанное с библиотеками BouncyCastle.
Мобильная версия