From 9f5205c53d781e3b345f683b33a6de3bf855d78e Mon Sep 17 00:00:00 2001 From: Shaquille Johnson Date: Tue, 4 Jul 2023 18:57:09 +0100 Subject: biometric: Add support for KeyAgreement to AndroidX's CryptoObject. Android 13 / T / API 33 introduced a new class in Crypto Object in the Android Framework. This allows auth-per-op for ECDH keys. Bug: 282058146 Test: atest FrameworksCoreTests API-Coverage-Bug: 282058146 Change-Id: I17877fed90ae0b3894b28967c28786a091557dd2 --- keystore/java/android/security/keystore2/AndroidKeyStoreProvider.java | 3 +++ 1 file changed, 3 insertions(+) (limited to 'keystore/java') diff --git a/keystore/java/android/security/keystore2/AndroidKeyStoreProvider.java b/keystore/java/android/security/keystore2/AndroidKeyStoreProvider.java index c55a781ce2a4..11278e84ceaa 100644 --- a/keystore/java/android/security/keystore2/AndroidKeyStoreProvider.java +++ b/keystore/java/android/security/keystore2/AndroidKeyStoreProvider.java @@ -43,6 +43,7 @@ import java.security.interfaces.ECPublicKey; import java.security.interfaces.RSAPublicKey; import javax.crypto.Cipher; +import javax.crypto.KeyAgreement; import javax.crypto.Mac; import javax.crypto.SecretKey; @@ -181,6 +182,8 @@ public class AndroidKeyStoreProvider extends Provider { spi = ((Mac) cryptoPrimitive).getCurrentSpi(); } else if (cryptoPrimitive instanceof Cipher) { spi = ((Cipher) cryptoPrimitive).getCurrentSpi(); + } else if (cryptoPrimitive instanceof KeyAgreement) { + spi = ((KeyAgreement) cryptoPrimitive).getCurrentSpi(); } else { throw new IllegalArgumentException("Unsupported crypto primitive: " + cryptoPrimitive + ". Supported: Signature, Mac, Cipher"); -- cgit v1.2.3-59-g8ed1b