회사에서 예전에 출시되었던 앱을 리뉴얼하거나 다시 출시하는 경우가 있다.
그런데 과거에 직접 keystore로 서명하여 배포했던 앱은
Google Play App Signing을 사용하기 위해 기존 서명 키를 Google에 업로드해야 한다.
이 과정에서 Google은 보안을 위해 암호화된 키만 업로드할 수 있도록 하고 있으며,
이를 위해 pepk.jar이라는 전용 도구를 사용하게 된다.
※ 신규 앱은 해당 작업 필요 없습니다.

keystore 폴더 안에 다음과 같은 파일을 위치시켜줍니다:
🔧 실행 명령어
java -jar pepk.jar --keystore=keystore.jks --alias=key0 --output=encrypted_private_key.pem --rsa-aes-encryption --encryption-key-path=encryption_public_key.pem
Error: Unable to export or encrypt the private key
java.security.NoSuchAlgorithmException: Cannot find any provider supporting RSA/NONE/OAEPWithSHA1AndMGF1Padding
at java.base/javax.crypto.Cipher.getInstance(Cipher.java:573)
...
```
저는 23버전을 사용중이여서
pepk.jar는 내부적으로 RSA/NONE/OAEPWithSHA1AndMGF1Padding이라는 암호화 알고리즘을 사용하는데 Java 17 이후부터 이 알고리즘은 보안상 이유로 deprecated 처리되었서 오류가 나옵니다.
설치한 후, Java 11을 직접 지정해 아래와 같이 실행합니다
& "C:\Program Files\Zulu\zulu-11\bin\java.exe" -jar pepk.jar --keystore=keystore.jks --alias=key0 --output=encrypted_private_key.pem --rsa-aes-encryption --encryption-key-path=encryption_public_key.pem