1b9a07c18e678da35b4c2a618b315fa174a21e818Brian Carlstrom/* 2b9a07c18e678da35b4c2a618b315fa174a21e818Brian Carlstrom * Copyright (C) 2011 The Android Open Source Project 3b9a07c18e678da35b4c2a618b315fa174a21e818Brian Carlstrom * 4b9a07c18e678da35b4c2a618b315fa174a21e818Brian Carlstrom * Licensed under the Apache License, Version 2.0 (the "License"); 5b9a07c18e678da35b4c2a618b315fa174a21e818Brian Carlstrom * you may not use this file except in compliance with the License. 6b9a07c18e678da35b4c2a618b315fa174a21e818Brian Carlstrom * You may obtain a copy of the License at 7b9a07c18e678da35b4c2a618b315fa174a21e818Brian Carlstrom * 8b9a07c18e678da35b4c2a618b315fa174a21e818Brian Carlstrom * http://www.apache.org/licenses/LICENSE-2.0 9b9a07c18e678da35b4c2a618b315fa174a21e818Brian Carlstrom * 10b9a07c18e678da35b4c2a618b315fa174a21e818Brian Carlstrom * Unless required by applicable law or agreed to in writing, software 11b9a07c18e678da35b4c2a618b315fa174a21e818Brian Carlstrom * distributed under the License is distributed on an "AS IS" BASIS, 12b9a07c18e678da35b4c2a618b315fa174a21e818Brian Carlstrom * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13b9a07c18e678da35b4c2a618b315fa174a21e818Brian Carlstrom * See the License for the specific language governing permissions and 14b9a07c18e678da35b4c2a618b315fa174a21e818Brian Carlstrom * limitations under the License. 15b9a07c18e678da35b4c2a618b315fa174a21e818Brian Carlstrom */ 16b9a07c18e678da35b4c2a618b315fa174a21e818Brian Carlstrompackage android.security; 17b9a07c18e678da35b4c2a618b315fa174a21e818Brian Carlstrom 18f0ae135049048424bceccb0799b12377181b25f0Zoltan Szatmary-Banimport android.content.pm.ParceledListSlice; 19f0ae135049048424bceccb0799b12377181b25f0Zoltan Szatmary-Ban 20b9a07c18e678da35b4c2a618b315fa174a21e818Brian Carlstrom/** 21b9a07c18e678da35b4c2a618b315fa174a21e818Brian Carlstrom * Caller is required to ensure that {@link KeyStore#unlock 22b9a07c18e678da35b4c2a618b315fa174a21e818Brian Carlstrom * KeyStore.unlock} was successful. 23b9a07c18e678da35b4c2a618b315fa174a21e818Brian Carlstrom * 24b9a07c18e678da35b4c2a618b315fa174a21e818Brian Carlstrom * @hide 25b9a07c18e678da35b4c2a618b315fa174a21e818Brian Carlstrom */ 26b9a07c18e678da35b4c2a618b315fa174a21e818Brian Carlstrominterface IKeyChainService { 272627d53f65be672e9a27f735975de1bf3aebfec1Brian Carlstrom // APIs used by KeyChain 285423e68d5dbe048ec6f042cce52a33f94184e9fbKenny Root String requestPrivateKey(String alias); 29ab8b84ad3847788d83da557606aa27d4102e6b52Fred Quintana byte[] getCertificate(String alias); 302627d53f65be672e9a27f735975de1bf3aebfec1Brian Carlstrom 312627d53f65be672e9a27f735975de1bf3aebfec1Brian Carlstrom // APIs used by CertInstaller 322627d53f65be672e9a27f735975de1bf3aebfec1Brian Carlstrom void installCaCertificate(in byte[] caCertificate); 332627d53f65be672e9a27f735975de1bf3aebfec1Brian Carlstrom 3426408ccd8e852d947e58021792bfc3b315e5948dBernhard Bauer // APIs used by DevicePolicyManager 3526408ccd8e852d947e58021792bfc3b315e5948dBernhard Bauer boolean installKeyPair(in byte[] privateKey, in byte[] userCert, String alias); 3626408ccd8e852d947e58021792bfc3b315e5948dBernhard Bauer 372627d53f65be672e9a27f735975de1bf3aebfec1Brian Carlstrom // APIs used by Settings 386da00334478df64921b68fcbb45c9d1eef6f35bdBrian Carlstrom boolean deleteCaCertificate(String alias); 392627d53f65be672e9a27f735975de1bf3aebfec1Brian Carlstrom boolean reset(); 40f0ae135049048424bceccb0799b12377181b25f0Zoltan Szatmary-Ban ParceledListSlice getUserCaAliases(); 41f0ae135049048424bceccb0799b12377181b25f0Zoltan Szatmary-Ban ParceledListSlice getSystemCaAliases(); 42f0ae135049048424bceccb0799b12377181b25f0Zoltan Szatmary-Ban boolean containsCaAlias(String alias); 43f0ae135049048424bceccb0799b12377181b25f0Zoltan Szatmary-Ban byte[] getEncodedCaCertificate(String alias, boolean includeDeletedSystem); 44f0ae135049048424bceccb0799b12377181b25f0Zoltan Szatmary-Ban List<String> getCaCertificateChainAliases(String rootAlias, boolean includeDeletedSystem); 45ab8b84ad3847788d83da557606aa27d4102e6b52Fred Quintana 46ab8b84ad3847788d83da557606aa27d4102e6b52Fred Quintana // APIs used by KeyChainActivity 47ab8b84ad3847788d83da557606aa27d4102e6b52Fred Quintana void setGrant(int uid, String alias, boolean value); 48ab8b84ad3847788d83da557606aa27d4102e6b52Fred Quintana boolean hasGrant(int uid, String alias); 49b9a07c18e678da35b4c2a618b315fa174a21e818Brian Carlstrom} 50