使用apksigner结合Azure Key Vault RSA-HSM证书签名APK时遭遇InvalidKeyException错误求助
apksigner结合Azure Key Vault RSA-HSM证书签名APK时遭遇InvalidKeyException错误求助
之前我在解决apksigner忽略Java参数以集成Azure Key Vault JCA的问题后,现在又碰到了新麻烦——用RSA-HSM证书通过apksigner签名APK时失败了。我在同一个密钥保管库中加载了RSA证书,原本签名APK是成功的,但现在却报了错,错误信息如下:
Exception in thread "main" java.security.InvalidKeyException: Signer #1 failed at com.android.apksig.internal.apk.v3.V3SchemeSigner.generateApkSignatureSchemeV3Block(V3SchemeSigner.java:250) at com.android.apksig.internal.apk.v3.V3SchemeSigner.generateApkSignatureSchemeV3BlockAndDigests(V3SchemeSigner.java:234) at com.android.apksig.DefaultApkSignerEngine.outputZipSectionsInternal(DefaultApkSignerEngine.java:1105) at com.android.apksig.DefaultApkSignerEngine.outputZipSections2(DefaultApkSignerEngine.java:1025) at com.android.apksig.ApkSigner.sign(ApkSigner.java:629) at com.android.apksig.ApkSigner.sign(ApkSigner.java:237) at com.android.apksigner.ApkSignerTool.sign(ApkSignerTool.java:425) at com.android.apksigner.ApkSignerTool.main(ApkSignerTool.java:94) Caused by: java.security.InvalidKeyException: Failed to sign using SHA512withRSA at com.android.apksig.internal.apk.ApkSigningBlockUtils.generateSignaturesOverData(ApkSigningBlockUtils.java:1159) at com.android.apksig.internal.apk.v3.V3SchemeSigner.generateSignerBlock(V3SchemeSigner.java:310) at com.android.apksig.internal.apk.v3.V3SchemeSigner.generateApkSignatureSchemeV3Block(V3SchemeSigner.java:248) ... 7 more Caused by: java.security.InvalidKeyException: No installed provider supports this key: com.azure.security.keyvault.jca.implementation.KeyVaultPrivateKey at java.base/java.security.Signature$Delegate.chooseProvider(Signature.java:1302) at java.base/java.security.Signature$Delegate.engineInitSign(Signature.java:1359) at java.base/java.security.Signature.initSign(Signature.java:635) at com.android.apksig.JcaSignerEngine.sign(JcaSignerEngine.java:53) at com.android.apksig.internal.apk.ApkSigningBlockUtils.generateSignaturesOverData(ApkSigningBlockUtils.java:1157)
我真心希望有人遇到过类似的问题。说实话,关于用apksigner结合Azure Key Vault签名APK的资料少得可怜,我现在也很好奇大家都是用什么方法,用硬件加密的代码签名密钥来给Android APK签名的?
我们目前用的是apksigner搭配azure-security-keyvault-jca-2.10.0.jar来对接Azure,而且没法用jarsigner——因为它的签名效果达不到Android v3签名方案的要求。
恳请各位大佬不吝赐教,任何帮助我都感激不尽!
备注:内容来源于stack exchange,提问作者wooliestdad
相关产品推荐
相关产品推荐

