Skip to content Skip to sidebar Skip to footer

Encode() With Private Key In "androidkeystore" Return Null

With Android 4.3, this code return null. KeyStore keyStore = KeyStore.getInstance('AndroidKeyStore'); keyStore.load(null); keyStore.setKeyEntry(alias, privateKey, null, certificate

Solution 1:

The Android KeyChain API prevents you from being able to get an encoded private key.

See the method at line 158 of OpenSSLRSAPrivateKey.java

@Overridepublicfinal BigInteger getPrivateExponent() {
    if (key.isEngineBased()) {
        thrownewUnsupportedOperationException("private exponent cannot be extracted");
    }

But the benefit of using the KeyChain API is that it provides system-wide credential storage. Any app should be able to retrieve the key pair and certificate by its alias. Refer to the KeyStore docs.

Post a Comment for "Encode() With Private Key In "androidkeystore" Return Null"