NoSuchAlgorithmException при чтении файла p12 на основе ключа эллиптической кривой из необработанных ресурсов Android в JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 NoSuchAlgorithmException при чтении файла p12 на основе ключа эллиптической кривой из необработанных ресурсов Android в

Сообщение Anonymous »

Я пытаюсь прочитать файл PKCS#12 на основе ключа эллиптической кривой с помощью поставщика BouncyCastle. Но выдается следующее исключение:

Код: Выделить всё

java.lang.RuntimeException: java.io.IOException: exception decrypting data - java.security.NoSuchAlgorithmException: 1.2.840.113549.1.5.12 SecretKeyFactory not available
Файл PKCS#12 был создан с помощью следующих команд, использующих OpenSSL 3.2.0, 23 ноября 2023 г.:

Код: Выделить всё

openssl ecparam -name prime256v1 -genkey -noout -out ec-private.key
openssl req -new -key ec-private.key -out ec-certificate.csr
openssl x509 -req -in ec-certificate.csr -signkey ec-private.key -days 365 -out ec-certificate.crt
openssl pkcs12 -export -out ec-certificate.p12 -inkey ec-private.key -in ec-certificate.crt -name "My ECC Certificate"
Мой соответствующий код приведен ниже.

Код: Выделить всё

try {
InputStream caInput = getResources().openRawResource(R.raw.ec_certificate);
Security.addProvider(new BouncyCastleProvider());

// Initialize KeyStore
KeyStore keyStore = KeyStore.getInstance("PKCS12", "BC");

//KeyStore keyStore = KeyStore.getInstance("PKCS12");
keyStore.load(caInput, password_.toCharArray());
Enumeration < String > aliases = keyStore.aliases();
while (aliases.hasMoreElements()) {
String alias = aliases.nextElement();
cert = (X509Certificate) keyStore.getCertificate(alias);
}
} catch (FileNotFoundException e) {
throw new RuntimeException(e);
} catch (CertificateException e) {
throw new RuntimeException(e);
} catch (KeyStoreException e) {
throw new RuntimeException(e);
} catch (IOException e) {
throw new RuntimeException(e);
} catch (NoSuchAlgorithmException e) {
throw new RuntimeException(e);
} catch (NoSuchProviderException e) {
throw new RuntimeException(e);
}
Как решить проблему с помощью поставщика BouncyCastle?
Я использую группу: «org.bouncycastle», имя: «bcprov-jdk18on», версия: «1.76»< /code> зависимость jumpycastle.
В моей версии Java я использую группу: 'org.bouncycastle', имя: 'bcprov-jdk18on', версия: '1.79', зависимость jumpycastle и исключение времени выполнения не выдаются. Он выдает только при использовании в моем приложении для Android и чтении из необработанного файла ресурсов.

Подробнее здесь: https://stackoverflow.com/questions/792 ... le-from-ra
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»