diff options
| author | Robert Berry <robertberry@google.com> | 2017-12-22 15:54:30 +0000 |
|---|---|---|
| committer | Robert Berry <robertberry@google.com> | 2017-12-22 15:54:30 +0000 |
| commit | cfc990a49ddc00f3ca972b463c6475d7d5ac7b41 (patch) | |
| tree | df7be9870fa81c6d022d01709cab2b417ac95b42 /core/java | |
| parent | edf829f41bd9147525e88eeef9828951fa44cc0d (diff) | |
Implement generateAndStoreKey
For now just returns raw key material. In the future we will need to
change this to use the KeyStore move api. (Once that has been
implemented.)
Test: adb shell am instrument -w -e package com.android.server.locksettings.recoverablekeystore com.android.frameworks.servicestests/android.support.test.runner.AndroidJUnitRunner
Change-Id: I8aee4da81f0f853503f570dae8d74e1d29f124cc
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/android/security/recoverablekeystore/RecoverableKeyStoreLoader.java | 17 | ||||
| -rw-r--r-- | core/java/com/android/internal/widget/ILockSettings.aidl | 1 |
2 files changed, 18 insertions, 0 deletions
diff --git a/core/java/android/security/recoverablekeystore/RecoverableKeyStoreLoader.java b/core/java/android/security/recoverablekeystore/RecoverableKeyStoreLoader.java index f88768b184fd..90570a043ce4 100644 --- a/core/java/android/security/recoverablekeystore/RecoverableKeyStoreLoader.java +++ b/core/java/android/security/recoverablekeystore/RecoverableKeyStoreLoader.java @@ -443,4 +443,21 @@ public class RecoverableKeyStoreLoader { throw RecoverableKeyStoreLoaderException.fromServiceSpecificException(e); } } + + /** + * Generates a key called {@code alias} and loads it into the recoverable key store. Returns the + * raw material of the key. + * + * @throws RecoverableKeyStoreLoaderException if an error occurred generating and storing the + * key. + */ + public byte[] generateAndStoreKey(String alias) throws RecoverableKeyStoreLoaderException { + try { + return mBinder.generateAndStoreKey(alias); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } catch (ServiceSpecificException e) { + throw RecoverableKeyStoreLoaderException.fromServiceSpecificException(e); + } + } } diff --git a/core/java/com/android/internal/widget/ILockSettings.aidl b/core/java/com/android/internal/widget/ILockSettings.aidl index 43536a522a47..a0aeb1f1cb53 100644 --- a/core/java/com/android/internal/widget/ILockSettings.aidl +++ b/core/java/com/android/internal/widget/ILockSettings.aidl @@ -66,6 +66,7 @@ interface ILockSettings { void initRecoveryService(in String rootCertificateAlias, in byte[] signedPublicKeyList, int userId); KeyStoreRecoveryData getRecoveryData(in byte[] account, int userId); + byte[] generateAndStoreKey(String alias); void setSnapshotCreatedPendingIntent(in PendingIntent intent, int userId); Map getRecoverySnapshotVersions(int userId); void setServerParameters(long serverParameters, int userId); |
