From 20fa0e7c2ef8b9ce08a67cd0a734ad1dc9c74849 Mon Sep 17 00:00:00 2001 From: Max Bires Date: Wed, 13 Feb 2019 15:08:13 -0800 Subject: [PATCH] Adding framework check for 3DES key size Previously the framework would accept any key size that was a multiple of 8 for the KeyGenerator. Bug: 117509689 Bug: 122274787 Test: atest cts/tests/tests/keystore/src/android/keystore/cts/KeyGeneratorTest.java Change-Id: I60b52f6062a41ae52486bae0ae36616f4b532b37 --- .../security/keystore/AndroidKeyStoreKeyGeneratorSpi.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/keystore/java/android/security/keystore/AndroidKeyStoreKeyGeneratorSpi.java b/keystore/java/android/security/keystore/AndroidKeyStoreKeyGeneratorSpi.java index aa2917484a05a..3dc884eb38ad4 100644 --- a/keystore/java/android/security/keystore/AndroidKeyStoreKeyGeneratorSpi.java +++ b/keystore/java/android/security/keystore/AndroidKeyStoreKeyGeneratorSpi.java @@ -17,7 +17,6 @@ package android.security.keystore; import android.security.Credentials; -import android.security.GateKeeper; import android.security.KeyStore; import android.security.keymaster.KeyCharacteristics; import android.security.keymaster.KeymasterArguments; @@ -204,7 +203,12 @@ public abstract class AndroidKeyStoreKeyGeneratorSpi extends KeyGeneratorSpi { } } } - + if (mKeymasterAlgorithm == KeymasterDefs.KM_ALGORITHM_3DES) { + if (mKeySizeBits != 168) { + throw new InvalidAlgorithmParameterException( + "3DES key size must be 168 bits."); + } + } if (mKeymasterAlgorithm == KeymasterDefs.KM_ALGORITHM_HMAC) { if (mKeySizeBits < 64) { throw new InvalidAlgorithmParameterException(