„pepk.jar“ schlägt mit „javax.crypto.BadPaddingException“ fehl und verhindert die Play App Signing-Registrierung für dieJava

Java-Forum
Anonymous
 „pepk.jar“ schlägt mit „javax.crypto.BadPaddingException“ fehl und verhindert die Play App Signing-Registrierung für die

Post by Anonymous »

Titel: pepk.jar schlägt mit javax.crypto.BadPaddingException fehl und verhindert die Play App Signing-Registrierung für eine vorhandene App
Problembeschreibung:
Wir versuchen, eine vorhandene Android-App (com.clsreview.clsreview) bei Google Play App Signing zu registrieren. Wir verfügen über unseren ursprünglichen, gültigen privaten Schlüssel und sein Passwort und können App-Bundles (.aab) erfolgreich mit Gradle signieren. Allerdings gelingt es dem offiziellen pepk.jar-Tool von Google immer wieder nicht, unseren privaten Schlüssel zu verschlüsseln, und es wird eine javax.crypto.BadPaddingException zurückgegeben. Dies blockiert vollständig unsere Fähigkeit, sich für App Signing anzumelden und somit unsere Anwendung im Play Store zu aktualisieren.
Kontext:
  • App-Paket: com.clsreview.clsreview (vorhandene, veröffentlichte App)
  • Schlüsseltyp: 2048-Bit-RSA-Schlüssel in einem JKS/PKCS12-Keystore.
  • Schlüssel Status: Nicht verloren, das Passwort ist bekannt und wird mit Keytool, OpenSSL und dem Android Gradle-Plugin überprüft.
Detaillierte Schritte und Fehlerbehebung:
  • Versuch mit Original JKS Keystore:
    • Ergebnis: pepk.jar v1.0 ist mit „Passwortüberprüfung fehlgeschlagen“ fehlgeschlagen (irreführend).
  • Sauberer PKCS12-Keystore über OpenSSL erstellt:
    • Wir haben private_key.pem und Certificate.pem mit OpenSSL erfolgreich aus unserem ursprünglichen Keystore extrahiert und die Schlüsselgültigkeit und das Passwort bestätigt.
    • Wir haben dann mit OpenSSL aus diesen PEM-Dateien einen makellosen new_keystore.p12 erstellt.
  • Versucht mit Clean new_keystore.p12 und der neuesten pepk.jar:
    • Wir haben die neueste pepk.jar von der App Signing-Seite der Google Play Console heruntergeladen.
    • Der genaue Befehl, den wir ausgeführt haben, war:

Code: Select all

         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
  • Konsistenter Fehler: Dieser Befehl schlägt immer noch mit der BadPaddingException fehl.
  • Dies ist die vollständige erhaltene Fehlerverfolgung:

Code: Select all

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-Umgebungstests:
    • Wir haben den Befehl sowohl mit OpenJDK 17 (unserer primären Umgebung) als auch mit OpenJDK 11 (einer gängigen LTS-Version) getestet. Die exakt gleiche BadPaddingException bleibt in beiden JDKs bestehen.
  • Versuchte manuelle Python-Implementierung:
    • Wir haben versucht, Python-Skripte zu schreiben, um die Funktionalität von pepk.jar zu replizieren, aber diese scheiterten aufgrund der kryptografischen Komplexität.
Fragen an die Community:
  • Hat jemand diese spezielle javax.crypto.BadPaddingException erfolgreich überwunden, wenn pepk.jar mit einem nachweislich gültigen Schlüssel verwendet wurde? Wenn ja, was war die Lösung?
  • Gibt es bekannte spezifische Inkompatibilitäten zwischen pepk.jar (sogar den neuesten Versionen) und PKCS12-Dateien, die von bestimmten OpenSSL-Versionen oder bestimmten Schlüsselformaten (z. B. 2048-Bit-RSA-Schlüsseln älterer Herkunft) generiert wurden?
  • Gibt es eine zuverlässige, dokumentierte Lösung, wenn wir über die Rohdateien private_key.pem und Encryption_public_key.pem verfügen? Methode oder ein vorhandenes Tool (außer pepk.jar), das die verschlüsselte .pepk-Datei, die für die Play App Signing-Registrierung erforderlich ist, korrekt generieren kann?
  • Gibt es alternative Methoden zum Registrieren einer vorhandenen App bei Play App Signing, wenn das offizielle pepk.jar-Tool nachweislich aufgrund eines Fehlers ausfällt?
Wir sind vollständig daran gehindert, unsere App zu aktualisieren und suchen in der Community nach Erkenntnissen oder Problemumgehungen bieten könnte.
Vielen Dank für Ihre Zeit und Ihr Fachwissen.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post