`pepk.jar` завершается сбоем из-за `javax.crypto.BadPaddingException`, предотвращающего регистрацию приложения Play App JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 `pepk.jar` завершается сбоем из-за `javax.crypto.BadPaddingException`, предотвращающего регистрацию приложения Play App

Сообщение Anonymous »

Заголовок: pepk.jar завершается сбоем из-за исключения javax.crypto.BadPaddingException, препятствующего регистрации существующего приложения в системе подписи приложений Google Play.
Постановка проблемы:
Мы пытаемся зарегистрировать существующее приложение Android (com.clsreview.clsreview) в системе подписи приложений Google Play. У нас есть оригинальный действительный закрытый ключ и пароль к нему, и мы можем успешно подписывать пакеты приложений (.aab) с помощью Gradle. Однако официальный инструмент Google pepk.jar постоянно не может зашифровать наш закрытый ключ, возвращая исключение javax.crypto.BadPaddingException. Это полностью блокирует нашу возможность зарегистрироваться в программе подписи приложений и, следовательно, обновить наше приложение в Play Store.
Контекст:
  • Пакет приложения: com.clsreview.clsreview (существующее опубликованное приложение)
  • Тип ключа: 2048-битный ключ RSA в хранилище ключей JKS/PKCS12.
  • Ключ Статус: не утерян, пароль известен и проверен при работе с keytool, openssl и плагином Android Gradle.
Подробные действия и устранение неполадок:
  • Попытка с оригинальным хранилищем ключей JKS:
    • Результат: pepk.jar v1.0 завершился с ошибкой «Не удалось проверить пароль». (вводит в заблуждение).
  • Создано чистое хранилище ключей PKCS12 через OpenSSL:
    • Мы успешно извлекли Private_key.pem и certificate.pem с помощью OpenSSL из нашего исходного хранилища ключей, подтвердив действительность ключа и пароля.
    • Затем мы создали чистый new_keystore.p12, используя OpenSSL, из этих PEM файлы.
  • Попытка использования чистого new_keystore.p12 и последней версии pepk.jar:
    • Мы загрузили последнюю версию pepk.jar со страницы подписи приложений консоли Google Play.
    • Точная команда, которую мы выполнили, была:

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

         java -jar pepk.jar \
--keystore=new_keystore.p12 \
--alias=key0 \
--output=pepk-output.txt \
--include-cert \
--rsa-aes-encryption \
--encryption-key-path=encryption_public_key.pem \
--keystore-pass=pass:YOUR_PASSWORD \
--key-pass=pass:YOUR_PASSWORD
  • Постоянный сбой: эта команда по-прежнему завершается с ошибкой BadPaddingException.
  • Это полная полученная трассировка ошибок:

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

Error: Unable to export or encrypt the private key
java.io.IOException: keystore password was incorrect
at java.base/sun.security.pkcs12.PKCS12KeyStore.engineLoad(PKCS12KeyStore.java:2092)
at java.base/sun.security.util.KeyStoreDelegator.engineLoad(KeyStoreDelegator.java:243)
at java.base/java.security.KeyStore.load(KeyStore.java:1479)
at
com.google.wireless.android.vending.developer.signing.tools.extern.export.KeystoreHelper.loadKeystore(KeystoreHelper.j
ava:53)
at
com.google.wireless.android.vending.developer.signing.tools.extern.export.KeystoreHelper.getKeystore(KeystoreHelper.ja
va:39)
at
com.google.wireless.android.vending.developer.signing.tools.extern.export.ExportEncryptedPrivateKeyTool.run(ExportEncr
yptedPrivateKeyTool.java:207)
at
com.google.wireless.android.vending.developer.signing.tools.extern.export.ExportEncryptedPrivateKeyTool.main(ExportEnc
ryptedPrivateKeyTool.java:165)
Caused by: java.security.UnrecoverableKeyException: failed to decrypt safe contents entry:
javax.crypto.BadPaddingException: Given final block not properly padded. Such issues can arise if a bad key is used
during decryption.
... 7 more
  • Тестирование среды Java:
    • Мы протестировали команду, используя как OpenJDK 17 (наша основная среда), так и OpenJDK 11 (обычная версия LTS). Одно и то же исключение BadPaddingException сохраняется в обоих JDK.
  • Попытка ручной реализации Python:
    • Мы попытались написать сценарии Python для репликации функциональности pepk.jar, но это не удалось из-за криптографической сложности.
Вопросы для сообщества:
  • Кто-нибудь успешно преодолел это конкретное исключение javax.crypto.BadPaddingException при использовании pepk.jar с явно действительным ключом? Если да, то какое решение?
  • Известны ли конкретные несовместимости между файлами pepk.jar (даже последними версиями) и PKCS12, созданными определенными версиями OpenSSL или определенными форматами ключей (например, 2048-битными ключами RSA более старых версий)?
  • Учитывая, что у нас есть необработанные файлы Private_key.pem и Encryption_public_key.pem, существует ли надежный документированный метод или существующий инструмент (кроме pepk.jar), который может правильно сгенерировать зашифрованный файл .pepk, необходимый для регистрации приложения Play App Signing?
  • Существуют ли какие-либо альтернативные методы для регистрации существующего приложения в Play App Signing, когда официальный инструмент pepk.jar явно не работает из-за ошибки?
Мы полностью заблокированы от обновления нашего приложения и ищем любую информацию или обходные пути, которые может предложить сообщество.
Спасибо за ваше время и опыт.

Подробнее здесь: https://stackoverflow.com/questions/798 ... ay-app-sig
Ответить

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

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

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

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

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