IKeystoreService.aidl revision 45ff13ea28005b5af0caa80dbdeb09d49bd73faf
17a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker/** 27a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker * Copyright (c) 2015, The Android Open Source Project 37a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker * 47a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker * Licensed under the Apache License, Version 2.0 (the "License"); 57a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker * you may not use this file except in compliance with the License. 67a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker * You may obtain a copy of the License at 77a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker * 87a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker * http://www.apache.org/licenses/LICENSE-2.0 97a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker * 107a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker * Unless required by applicable law or agreed to in writing, software 117a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker * distributed under the License is distributed on an "AS IS" BASIS, 127a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 137a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker * See the License for the specific language governing permissions and 147a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker * limitations under the License. 157a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker */ 167a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker 177a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubakerpackage android.security; 187a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker 1945ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubakerimport android.security.keymaster.ExportResult; 2045ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubakerimport android.security.keymaster.KeyCharacteristics; 2145ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubakerimport android.security.keymaster.KeymasterArguments; 2245ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubakerimport android.security.keymaster.OperationResult; 237a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubakerimport android.security.KeystoreArguments; 247a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker 257a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker/** 267a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker * This must be kept manually in sync with system/security/keystore until AIDL 277a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker * can generate both Java and C++ bindings. 287a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker * 297a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker * @hide 307a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker */ 317a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubakerinterface IKeystoreService { 327a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker int test(); 337a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker byte[] get(String name); 347a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker int insert(String name, in byte[] item, int uid, int flags); 357a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker int del(String name, int uid); 367a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker int exist(String name, int uid); 377a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker String[] saw(String namePrefix, int uid); 387a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker int reset(); 397a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker int password(String password); 407a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker int lock(); 417a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker int unlock(String password); 427a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker int zero(); 437a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker int generate(String name, int uid, int keyType, int keySize, int flags, 447a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker in KeystoreArguments args); 457a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker int import_key(String name, in byte[] data, int uid, int flags); 467a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker byte[] sign(String name, in byte[] data); 477a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker int verify(String name, in byte[] data, in byte[] signature); 487a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker byte[] get_pubkey(String name); 497a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker int del_key(String name, int uid); 507a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker int grant(String name, int granteeUid); 517a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker int ungrant(String name, int granteeUid); 527a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker long getmtime(String name); 537a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker int duplicate(String srcKey, int srcUid, String destKey, int destUid); 547a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker int is_hardware_backed(String string); 557a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker int clear_uid(long uid); 567a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker int reset_uid(int uid); 577a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker int sync_uid(int sourceUid, int targetUid); 587a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker int password_uid(String password, int uid); 5945ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker 6045ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker // Keymaster 0.4 methods 6145ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker int addRngEntropy(in byte[] data); 6245ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker int generateKey(String alias, in KeymasterArguments arguments, int uid, int flags, 6345ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker out KeyCharacteristics characteristics); 6445ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker int getKeyCharacteristics(String alias, in byte[] clientId, 6545ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker in byte[] appId, out KeyCharacteristics characteristics); 6645ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker int importKey(String alias, in KeymasterArguments arguments, int format, 6745ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker in byte[] keyData, int uid, int flags, out KeyCharacteristics characteristics); 6845ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker ExportResult exportKey(String alias, int format, in byte[] clientId, in byte[] appId); 6945ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker OperationResult begin(IBinder appToken, String alias, int purpose, boolean pruneable, 7045ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker in KeymasterArguments params, out KeymasterArguments operationParams); 7145ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker OperationResult update(IBinder token, in KeymasterArguments params, in byte[] input); 7245ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker OperationResult finish(IBinder token, in KeymasterArguments params, in byte[] signature); 7345ff13ea28005b5af0caa80dbdeb09d49bd73fafChad Brubaker int abort(IBinder handle); 747a2c973db7756a60f1cdd6cf67411115c1576081Chad Brubaker} 75