From 8758b2ceaf05f8d0e9a4d4d1e961dc85b6130029 Mon Sep 17 00:00:00 2001 From: Janis Danisevskis Date: Thu, 18 Mar 2021 22:08:09 -0700 Subject: Keystore 2.0: Fix infinit recursion. Fix endless recursion when Cipher is initialized with AndroidKeyStorePrivateKey. Fixes: 183167349 Test: atest android.keystore.cts.AndroidKeyStoreTest#testKeyStore_Encrypting_RSA_NONE_NOPADDING Change-Id: I5b4166fb1a4e298072f7156ba61a64966e86dc53 --- .../android/security/keystore2/AndroidKeyStoreCipherSpiBase.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'keystore') diff --git a/keystore/java/android/security/keystore2/AndroidKeyStoreCipherSpiBase.java b/keystore/java/android/security/keystore2/AndroidKeyStoreCipherSpiBase.java index d9d5300e43f9..9d8a5effc2d7 100644 --- a/keystore/java/android/security/keystore2/AndroidKeyStoreCipherSpiBase.java +++ b/keystore/java/android/security/keystore2/AndroidKeyStoreCipherSpiBase.java @@ -124,7 +124,7 @@ abstract class AndroidKeyStoreCipherSpiBase extends CipherSpi implements KeyStor resetAll(); // Public key operations get diverted to the default provider. - if (opmode == Cipher.ENCRYPT_MODE + if (!(key instanceof AndroidKeyStorePrivateKey) && (key instanceof PrivateKey || key instanceof PublicKey)) { try { mCipher = Cipher.getInstance(getTransform()); @@ -186,7 +186,7 @@ abstract class AndroidKeyStoreCipherSpiBase extends CipherSpi implements KeyStor resetAll(); // Public key operations get diverted to the default provider. - if (opmode == Cipher.ENCRYPT_MODE + if (!(key instanceof AndroidKeyStorePrivateKey) && (key instanceof PrivateKey || key instanceof PublicKey)) { try { mCipher = Cipher.getInstance(getTransform()); @@ -216,7 +216,7 @@ abstract class AndroidKeyStoreCipherSpiBase extends CipherSpi implements KeyStor resetAll(); // Public key operations get diverted to the default provider. - if (opmode == Cipher.ENCRYPT_MODE + if (!(key instanceof AndroidKeyStorePrivateKey) && (key instanceof PrivateKey || key instanceof PublicKey)) { try { mCipher = Cipher.getInstance(getTransform()); -- cgit v1.2.3