1 /*
2  * Copyright 2022 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 android.credentials;
18 
19 import java.util.List;
20 
21 import android.credentials.CredentialProviderInfo;
22 import android.credentials.ClearCredentialStateRequest;
23 import android.credentials.CreateCredentialRequest;
24 import android.credentials.GetCredentialRequest;
25 import android.credentials.RegisterCredentialDescriptionRequest;
26 import android.credentials.UnregisterCredentialDescriptionRequest;
27 import android.credentials.IClearCredentialStateCallback;
28 import android.credentials.ICreateCredentialCallback;
29 import android.credentials.IGetCredentialCallback;
30 import android.credentials.IPrepareGetCredentialCallback;
31 import android.credentials.ISetEnabledProvidersCallback;
32 import android.content.ComponentName;
33 import android.os.ICancellationSignal;
34 
35 /**
36  * System private interface for talking to the credential manager service.
37  *
38  * @hide
39  */
40 interface ICredentialManager {
41 
executeGetCredential(in GetCredentialRequest request, in IGetCredentialCallback callback, String callingPackage)42     @nullable ICancellationSignal executeGetCredential(in GetCredentialRequest request, in IGetCredentialCallback callback, String callingPackage);
43 
executePrepareGetCredential(in GetCredentialRequest request, in IPrepareGetCredentialCallback prepareGetCredentialCallback, in IGetCredentialCallback getCredentialCallback, String callingPackage)44     @nullable ICancellationSignal executePrepareGetCredential(in GetCredentialRequest request, in IPrepareGetCredentialCallback prepareGetCredentialCallback, in IGetCredentialCallback getCredentialCallback, String callingPackage);
45 
executeCreateCredential(in CreateCredentialRequest request, in ICreateCredentialCallback callback, String callingPackage)46     @nullable ICancellationSignal executeCreateCredential(in CreateCredentialRequest request, in ICreateCredentialCallback callback, String callingPackage);
47 
clearCredentialState(in ClearCredentialStateRequest request, in IClearCredentialStateCallback callback, String callingPackage)48     @nullable ICancellationSignal clearCredentialState(in ClearCredentialStateRequest request, in IClearCredentialStateCallback callback, String callingPackage);
49 
setEnabledProviders(in List<String> primaryProviders, in List<String> providers, in int userId, in ISetEnabledProvidersCallback callback)50     void setEnabledProviders(in List<String> primaryProviders, in List<String> providers, in int userId, in ISetEnabledProvidersCallback callback);
51 
registerCredentialDescription(in RegisterCredentialDescriptionRequest request, String callingPackage)52     void registerCredentialDescription(in RegisterCredentialDescriptionRequest request, String callingPackage);
53 
unregisterCredentialDescription(in UnregisterCredentialDescriptionRequest request, String callingPackage)54     void unregisterCredentialDescription(in UnregisterCredentialDescriptionRequest request, String callingPackage);
55 
isEnabledCredentialProviderService(in ComponentName componentName, String callingPackage)56     boolean isEnabledCredentialProviderService(in ComponentName componentName, String callingPackage);
57 
getCredentialProviderServices(in int userId, in int providerFilter)58     List<CredentialProviderInfo> getCredentialProviderServices(in int userId, in int providerFilter);
59 
getCredentialProviderServicesForTesting(in int providerFilter)60     List<CredentialProviderInfo> getCredentialProviderServicesForTesting(in int providerFilter);
61 
isServiceEnabled()62     boolean isServiceEnabled();
63 }
64 
65