1/* 2** 3** Copyright 2009, The Android Open Source Project 4** 5** Licensed under the Apache License, Version 2.0 (the "License"); 6** you may not use this file except in compliance with the License. 7** You may obtain a copy of the License at 8** 9** http://www.apache.org/licenses/LICENSE-2.0 10** 11** Unless required by applicable law or agreed to in writing, software 12** distributed under the License is distributed on an "AS IS" BASIS, 13** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14** See the License for the specific language governing permissions and 15** limitations under the License. 16*/ 17 18#ifndef __COMMON_H__ 19#define __COMMON_H__ 20 21#define SOCKET_PATH "keystore" 22#define KEYSTORE_DIR "/data/misc/keystore/" 23 24#define READ_TIMEOUT 3 25#define MAX_KEY_NAME_LENGTH 64 26#define MAX_NAMESPACE_LENGTH MAX_KEY_NAME_LENGTH 27#define MAX_KEY_VALUE_LENGTH 4096 28 29#define BUFFER_MAX MAX_KEY_VALUE_LENGTH 30 31typedef enum { 32 BOOTUP, 33 UNINITIALIZED, 34 LOCKED, 35 UNLOCKED, 36} KEYSTORE_STATE; 37 38typedef enum { 39 LOCK, 40 UNLOCK, 41 PASSWD, 42 GETSTATE, 43 LISTKEYS, 44 GET, 45 PUT, 46 REMOVE, 47 RESET, 48 MAX_OPCODE 49} KEYSTORE_OPCODE; 50 51typedef struct { 52 uint32_t len; 53 union { 54 uint32_t opcode; 55 uint32_t retcode; 56 }; 57 unsigned char data[BUFFER_MAX + 1]; 58} LPC_MARSHAL; 59 60#endif 61