diff options
| author | Chad Brubaker <cbrubaker@google.com> | 2015-06-01 12:57:06 -0700 |
|---|---|---|
| committer | Chad Brubaker <cbrubaker@google.com> | 2015-06-01 15:16:06 -0700 |
| commit | 966486e134c901ea61195b352fdd81476b3639b4 (patch) | |
| tree | 5562d3bab21e3f33e4563ef85f4cc8f901e29d92 /keystore/java/android | |
| parent | e1c68765cf53473e710438f90e42e0cb26dffe1b (diff) | |
| download | frameworks_base-966486e134c901ea61195b352fdd81476b3639b4.zip frameworks_base-966486e134c901ea61195b352fdd81476b3639b4.tar.gz frameworks_base-966486e134c901ea61195b352fdd81476b3639b4.tar.bz2 | |
Track changes to the keystore binder API
Output parameters are gone from begin, instead they will returned in the
OperationResult and begin, update, and finish may return output
parameters.
Change-Id: I072afeb6c65f6c512b40603824c25686ac44e7c8
Diffstat (limited to 'keystore/java/android')
3 files changed, 6 insertions, 8 deletions
diff --git a/keystore/java/android/security/KeyStore.java b/keystore/java/android/security/KeyStore.java index 72eda23..37ed723 100644 --- a/keystore/java/android/security/KeyStore.java +++ b/keystore/java/android/security/KeyStore.java @@ -496,9 +496,9 @@ public class KeyStore { } public OperationResult begin(String alias, int purpose, boolean pruneable, - KeymasterArguments args, byte[] entropy, KeymasterArguments outArgs) { + KeymasterArguments args, byte[] entropy) { try { - return mBinder.begin(getToken(), alias, purpose, pruneable, args, entropy, outArgs); + return mBinder.begin(getToken(), alias, purpose, pruneable, args, entropy); } catch (RemoteException e) { Log.w(TAG, "Cannot connect to keystore", e); return null; diff --git a/keystore/java/android/security/keystore/AndroidKeyStoreCipherSpiBase.java b/keystore/java/android/security/keystore/AndroidKeyStoreCipherSpiBase.java index be935a9..3ad3c9d 100644 --- a/keystore/java/android/security/keystore/AndroidKeyStoreCipherSpiBase.java +++ b/keystore/java/android/security/keystore/AndroidKeyStoreCipherSpiBase.java @@ -216,8 +216,7 @@ abstract class AndroidKeyStoreCipherSpiBase extends CipherSpi implements KeyStor mEncrypting ? KeymasterDefs.KM_PURPOSE_ENCRYPT : KeymasterDefs.KM_PURPOSE_DECRYPT, true, // permit aborting this operation if keystore runs out of resources keymasterInputArgs, - additionalEntropy, - keymasterOutputArgs); + additionalEntropy); if (opResult == null) { throw new KeyStoreConnectException(); } @@ -247,7 +246,7 @@ abstract class AndroidKeyStoreCipherSpiBase extends CipherSpi implements KeyStor throw new ProviderException("Keystore returned invalid operation handle"); } - loadAlgorithmSpecificParametersFromBeginResult(keymasterOutputArgs); + loadAlgorithmSpecificParametersFromBeginResult(opResult.outParams); mMainDataStreamer = new KeyStoreCryptoOperationChunkedStreamer( new KeyStoreCryptoOperationChunkedStreamer.MainDataStream( mKeyStore, opResult.token)); diff --git a/keystore/java/android/security/keystore/AndroidKeyStoreHmacSpi.java b/keystore/java/android/security/keystore/AndroidKeyStoreHmacSpi.java index 6422374..f31c06d 100644 --- a/keystore/java/android/security/keystore/AndroidKeyStoreHmacSpi.java +++ b/keystore/java/android/security/keystore/AndroidKeyStoreHmacSpi.java @@ -163,14 +163,13 @@ public abstract class AndroidKeyStoreHmacSpi extends MacSpi implements KeyStoreC keymasterArgs.addInt(KeymasterDefs.KM_TAG_DIGEST, mKeymasterDigest); keymasterArgs.addInt(KeymasterDefs.KM_TAG_MAC_LENGTH, mMacSizeBits); - KeymasterArguments keymasterOutputArgs = new KeymasterArguments(); OperationResult opResult = mKeyStore.begin( mKey.getAlias(), KeymasterDefs.KM_PURPOSE_SIGN, true, keymasterArgs, - null, // no additional entropy needed for HMAC because it's deterministic - keymasterOutputArgs); + null); // no additional entropy needed for HMAC because it's deterministic + if (opResult == null) { throw new KeyStoreConnectException(); } |
