我最近在设备上看到了这个错误。
java.security.InvalidKeyException: Only SecretKey is supported
at com.android.org.conscrypt.OpenSSLCipher.checkAndSetEncodedKey(OpenSSLCipher.java:436)
at com.android.org.conscrypt.OpenSSLCipher.engineInit(OpenSSLCipher.java:273)
at javax.crypto.Cipher.tryTransformWithProvider(Cipher.java:2664)
at javax.crypto.Cipher.tryCombinations(Cipher.java:2575)
at javax.crypto.Cipher$SpiAndProviderUpdater.updateAndGetSpiAndProvider(Cipher.java:2480)
at javax.crypto.Cipher.chooseProvider(Cipher.java:567)
at javax.crypto.Cipher.init(Cipher.java:975)
at javax.crypto.Cipher.init(Cipher.java:910)
if (!(key instanceof SecretKey)) {
throw new InvalidKeyException("Only SecretKey is supported");
}
我总是像这样从存储中获取我的SecretKey:
SecretKey key = (SecretKey) keyStore.getKey(KEY_NAME, null);
有什么想法吗?
key
是null
,那么就会发生这种情况。null instanceof T
总是返回false
。 - President James K. Polk