Amith Yamasani | 52c489c | 2012-03-28 11:42:42 -0700 | [diff] [blame] | 1 | /* |
| 2 | * Copyright (C) 2012 The Android Open Source Project |
| 3 | * |
| 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
| 5 | * you may not use this file except in compliance with the License. |
| 6 | * You may obtain a copy of the License at |
| 7 | * |
| 8 | * http://www.apache.org/licenses/LICENSE-2.0 |
| 9 | * |
| 10 | * Unless required by applicable law or agreed to in writing, software |
| 11 | * distributed under the License is distributed on an "AS IS" BASIS, |
| 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 13 | * See the License for the specific language governing permissions and |
| 14 | * limitations under the License. |
| 15 | */ |
| 16 | |
| 17 | package com.android.internal.widget; |
| 18 | |
Dmitry Dementyev | b8b030b | 2017-12-19 11:02:54 -0800 | [diff] [blame] | 19 | import android.app.PendingIntent; |
Adrian Roos | b5e4722 | 2015-08-14 15:53:06 -0700 | [diff] [blame] | 20 | import android.app.trust.IStrongAuthTracker; |
Dmitry Dementyev | 1aa9613 | 2017-12-11 11:33:12 -0800 | [diff] [blame] | 21 | import android.os.Bundle; |
Robert Berry | 81ee34b | 2018-01-23 11:59:59 +0000 | [diff] [blame] | 22 | import android.security.keystore.recovery.WrappedApplicationKey; |
Dmitry Dementyev | 0916e7c | 2018-01-23 13:02:08 -0800 | [diff] [blame] | 23 | import android.security.keystore.recovery.KeyChainSnapshot; |
| 24 | import android.security.keystore.recovery.KeyChainProtectionParams; |
Bo Zhu | 7c1972f | 2018-02-22 21:43:52 -0800 | [diff] [blame] | 25 | import android.security.keystore.recovery.RecoveryCertPath; |
Jorim Jaggi | e8fde5d | 2016-06-30 23:41:37 -0700 | [diff] [blame] | 26 | import com.android.internal.widget.ICheckCredentialProgressCallback; |
Andres Morales | 2397427 | 2015-05-14 22:42:26 -0700 | [diff] [blame] | 27 | import com.android.internal.widget.VerifyCredentialResponse; |
| 28 | |
Dmitry Dementyev | b8b030b | 2017-12-19 11:02:54 -0800 | [diff] [blame] | 29 | import java.util.Map; |
| 30 | |
Amith Yamasani | 52c489c | 2012-03-28 11:42:42 -0700 | [diff] [blame] | 31 | /** {@hide} */ |
| 32 | interface ILockSettings { |
| 33 | void setBoolean(in String key, in boolean value, in int userId); |
| 34 | void setLong(in String key, in long value, in int userId); |
| 35 | void setString(in String key, in String value, in int userId); |
| 36 | boolean getBoolean(in String key, in boolean defaultValue, in int userId); |
| 37 | long getLong(in String key, in long defaultValue, in int userId); |
| 38 | String getString(in String key, in String defaultValue, in int userId); |
Rich Cannings | f64ec63 | 2019-02-21 12:40:36 -0800 | [diff] [blame] | 39 | void setLockCredential(in byte[] credential, int type, in byte[] savedCredential, int requestedQuality, int userId); |
Ricky Wai | 4613fe4 | 2016-05-24 11:11:42 +0100 | [diff] [blame] | 40 | void resetKeyStore(int userId); |
Rich Cannings | f64ec63 | 2019-02-21 12:40:36 -0800 | [diff] [blame] | 41 | VerifyCredentialResponse checkCredential(in byte[] credential, int type, int userId, |
Jorim Jaggi | e8fde5d | 2016-06-30 23:41:37 -0700 | [diff] [blame] | 42 | in ICheckCredentialProgressCallback progressCallback); |
Rich Cannings | f64ec63 | 2019-02-21 12:40:36 -0800 | [diff] [blame] | 43 | VerifyCredentialResponse verifyCredential(in byte[] credential, int type, long challenge, int userId); |
| 44 | VerifyCredentialResponse verifyTiedProfileChallenge(in byte[] credential, int type, long challenge, int userId); |
Paul Lawrence | 945490c | 2014-03-27 16:37:28 +0000 | [diff] [blame] | 45 | boolean checkVoldPassword(int userId); |
Amith Yamasani | 52c489c | 2012-03-28 11:42:42 -0700 | [diff] [blame] | 46 | boolean havePattern(int userId); |
| 47 | boolean havePassword(int userId); |
Rich Cannings | f64ec63 | 2019-02-21 12:40:36 -0800 | [diff] [blame] | 48 | byte[] getHashFactor(in byte[] currentCredential, int userId); |
| 49 | void setSeparateProfileChallengeEnabled(int userId, boolean enabled, in byte[] managedUserPassword); |
Ricky Wai | dc283a8 | 2016-03-24 19:55:08 +0000 | [diff] [blame] | 50 | boolean getSeparateProfileChallengeEnabled(int userId); |
Adrian Roos | b5e4722 | 2015-08-14 15:53:06 -0700 | [diff] [blame] | 51 | void registerStrongAuthTracker(in IStrongAuthTracker tracker); |
| 52 | void unregisterStrongAuthTracker(in IStrongAuthTracker tracker); |
| 53 | void requireStrongAuth(int strongAuthReason, int userId); |
Jim Miller | 4f93c58 | 2016-01-27 19:05:43 -0800 | [diff] [blame] | 54 | void systemReady(); |
Adrian Roos | 4ab7e59 | 2016-04-13 15:38:13 -0700 | [diff] [blame] | 55 | void userPresent(int userId); |
Victor Chang | a0940d3 | 2016-05-16 19:36:08 +0100 | [diff] [blame] | 56 | int getStrongAuthForUser(int userId); |
Rubin Xu | f095f83 | 2017-01-31 15:23:34 +0000 | [diff] [blame] | 57 | |
Robert Berry | 74928a1 | 2018-01-18 17:49:07 +0000 | [diff] [blame] | 58 | // Keystore RecoveryController methods. |
Dmitry Dementyev | 1aa9613 | 2017-12-11 11:33:12 -0800 | [diff] [blame] | 59 | // {@code ServiceSpecificException} may be thrown to signal an error, which caller can |
Dmitry Dementyev | ed89ea0 | 2018-01-11 13:53:52 -0800 | [diff] [blame] | 60 | // convert to {@code RecoveryManagerException}. |
Bo Zhu | 7f414d9 | 2018-02-28 09:28:19 -0800 | [diff] [blame] | 61 | void initRecoveryServiceWithSigFile(in String rootCertificateAlias, |
| 62 | in byte[] recoveryServiceCertFile, in byte[] recoveryServiceSigFile); |
Dmitry Dementyev | b4fb987 | 2018-01-26 11:49:34 -0800 | [diff] [blame] | 63 | KeyChainSnapshot getKeyChainSnapshot(); |
Robert Berry | a3b9947 | 2018-02-23 15:59:02 +0000 | [diff] [blame] | 64 | String generateKey(String alias); |
Bo Zhu | c704834 | 2019-01-03 14:04:58 -0800 | [diff] [blame] | 65 | String generateKeyWithMetadata(String alias, in byte[] metadata); |
Bo Zhu | 2c8e538 | 2018-02-26 15:54:25 -0800 | [diff] [blame] | 66 | String importKey(String alias, in byte[] keyBytes); |
Bo Zhu | c704834 | 2019-01-03 14:04:58 -0800 | [diff] [blame] | 67 | String importKeyWithMetadata(String alias, in byte[] keyBytes, in byte[] metadata); |
Dmitry Dementyev | 29b9de5 | 2018-01-31 16:09:32 -0800 | [diff] [blame] | 68 | String getKey(String alias); |
Robert Berry | 5daccec | 2018-01-06 19:16:25 +0000 | [diff] [blame] | 69 | void removeKey(String alias); |
Dmitry Dementyev | 1429831 | 2018-01-04 15:19:19 -0800 | [diff] [blame] | 70 | void setSnapshotCreatedPendingIntent(in PendingIntent intent); |
Dmitry Dementyev | 7d8c78a | 2018-01-12 19:14:07 -0800 | [diff] [blame] | 71 | void setServerParams(in byte[] serverParams); |
Robert Berry | bbe02ae | 2018-02-20 19:47:43 +0000 | [diff] [blame] | 72 | void setRecoveryStatus(in String alias, int status); |
Robert Berry | 56f06b4 | 2018-02-23 13:31:32 +0000 | [diff] [blame] | 73 | Map getRecoveryStatus(); |
Dmitry Dementyev | 1429831 | 2018-01-04 15:19:19 -0800 | [diff] [blame] | 74 | void setRecoverySecretTypes(in int[] secretTypes); |
| 75 | int[] getRecoverySecretTypes(); |
Bo Zhu | b31ab67 | 2018-03-20 22:44:18 -0700 | [diff] [blame] | 76 | byte[] startRecoverySessionWithCertPath(in String sessionId, in String rootCertificateAlias, |
Bo Zhu | 7c1972f | 2018-02-22 21:43:52 -0800 | [diff] [blame] | 77 | in RecoveryCertPath verifierCertPath, in byte[] vaultParams, in byte[] vaultChallenge, |
| 78 | in List<KeyChainProtectionParams> secrets); |
Robert Berry | 4a5c87d | 2018-03-19 18:00:46 +0000 | [diff] [blame] | 79 | Map/*<String, String>*/ recoverKeyChainSnapshot( |
| 80 | in String sessionId, |
| 81 | in byte[] recoveryKeyBlob, |
| 82 | in List<WrappedApplicationKey> applicationKeys); |
Robert Berry | 2bcdad9 | 2018-01-18 12:53:29 +0000 | [diff] [blame] | 83 | void closeSession(in String sessionId); |
Amith Yamasani | 52c489c | 2012-03-28 11:42:42 -0700 | [diff] [blame] | 84 | } |