• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1cc_defaults {
2    name: "keystore_defaults",
3
4    cflags: [
5        "-Wall",
6        "-Werror",
7        "-Wextra",
8        "-Wunused",
9    ],
10
11    sanitize: {
12        misc_undefined: ["integer"],
13    },
14
15    clang: true,
16}
17
18cc_binary {
19    name: "keystore",
20    defaults: ["keystore_defaults"],
21
22    srcs: [
23        ":IKeyAttestationApplicationIdProvider.aidl",
24        "KeyStore.cpp",
25        "auth_token_table.cpp",
26        "blob.cpp",
27        "confirmation_manager.cpp",
28        "entropy.cpp",
29        "grant_store.cpp",
30        "key_config.proto",
31        "key_proto_handler.cpp",
32        "key_store_service.cpp",
33        "keyblob_utils.cpp",
34        "keymaster_enforcement.cpp",
35        "keystore_attestation_id.cpp",
36        "keystore_main.cpp",
37        "keystore_utils.cpp",
38        "legacy_keymaster_device_wrapper.cpp",
39        "operation.cpp",
40        "operation_config.proto",
41        "operation_proto_handler.cpp",
42        "permissions.cpp",
43        "user_state.cpp",
44    ],
45    shared_libs: [
46        "android.hardware.confirmationui@1.0",
47        "android.hardware.keymaster@3.0",
48        "android.hardware.keymaster@4.0",
49        "android.system.wifi.keystore@1.0",
50        "libbase",
51        "libbinder",
52        "libcrypto",
53        "libhardware",
54        "libhidlbase",
55        "libhidltransport",
56        "libhwbinder",
57        "libkeymaster4support",
58        "libkeymaster_messages",
59        "libkeymaster_portable",
60        "libkeystore_aidl",
61        "libkeystore_binder",
62        "libkeystore_parcelables",
63        "liblog",
64        "libprotobuf-cpp-lite",
65        "libselinux",
66        "libservices",
67        "libsoftkeymasterdevice",
68        "libutils",
69        "libwifikeystorehal",
70    ],
71    init_rc: ["keystore.rc"],
72    aidl: {
73        include_dirs: ["frameworks/base/core/java/"],
74    },
75
76    product_variables: {
77        pdk: {
78            enabled: false,
79        },
80    },
81
82    required: ["keystore_cli_v2"],
83}
84
85cc_binary {
86    name: "keystore_cli",
87    defaults: ["keystore_defaults"],
88    tags: ["debug"],
89
90    srcs: ["keystore_cli.cpp"],
91    shared_libs: [
92        "android.hardware.keymaster@4.0",
93        "libbinder",
94        "libcrypto",
95        "libcutils",
96        "libhidlbase",
97        "libhwbinder",
98        "libkeystore_aidl", // for IKeyStoreService.asInterface()
99        "libkeystore_binder",
100        "libkeystore_parcelables",
101        "liblog",
102        "libutils",
103    ],
104}
105
106cc_binary {
107    name: "keystore_cli_v2",
108    defaults: ["keystore_defaults"],
109    tags: ["debug"],
110
111    cflags: [
112        "-DKEYMASTER_NAME_TAGS",
113        "-Wno-unused-parameter",
114    ],
115    srcs: ["keystore_cli_v2.cpp"],
116    shared_libs: [
117        "android.hardware.confirmationui@1.0",
118        "libbinder",
119        "android.hardware.keymaster@4.0",
120        "libchrome",
121        "libutils",
122        "libhidlbase",
123        "libhwbinder",
124        "libkeymaster4support",
125        "libkeystore_aidl",
126        "libkeystore_binder",
127        "libkeystore_parcelables",
128    ],
129
130    local_include_dirs: ["include"],
131}
132
133cc_library_shared {
134    name: "libkeystore_parcelables",
135    defaults: ["keystore_defaults"],
136    export_include_dirs: ["include"],
137    srcs: [
138        "KeyAttestationApplicationId.cpp",
139        "KeyAttestationPackageInfo.cpp",
140        "KeymasterArguments.cpp",
141        "KeystoreArguments.cpp",
142        "OperationResult.cpp",
143        "Signature.cpp",
144        "keystore_aidl_hidl_marshalling_utils.cpp",
145    ],
146    shared_libs: [
147        "android.hardware.keymaster@4.0",
148        "libbinder",
149        "libhardware",
150        "libhidlbase",
151        "libhwbinder",
152        "libkeymaster4support",
153        "liblog",
154        "libprotobuf-cpp-lite",
155        "libutils",
156    ],
157    export_shared_lib_headers: [
158        "android.hardware.keymaster@4.0",
159        "libbinder",
160        "libhidlbase",
161        "libhwbinder",
162        "libkeymaster4support",
163    ],
164}
165// Library for keystore clients
166cc_library_shared {
167    name: "libkeystore_binder",
168    defaults: ["keystore_defaults"],
169
170    srcs: [
171        "keyblob_utils.cpp",
172        "keystore_client.proto",
173        "keystore_client_impl.cpp",
174        "keystore_get.cpp",
175    ],
176    shared_libs: [
177        "android.hardware.keymaster@4.0",
178        "libbinder",
179        "libhidlbase",
180        "libhwbinder",
181        "libkeymaster4support",
182        "libkeystore_aidl",
183        "libkeystore_parcelables",
184        "liblog",
185        "libprotobuf-cpp-lite",
186        "libutils",
187    ],
188
189    proto: {
190        type: "lite",
191        export_proto_headers: true,
192    },
193    aidl: {
194        export_aidl_headers: true,
195        include_dirs: ["frameworks/base/core/java/"],
196    },
197    export_include_dirs: ["include"],
198    export_shared_lib_headers: [
199        "android.hardware.keymaster@4.0",
200        "libbinder",
201        "libhidlbase",
202        "libhwbinder",
203        "libkeystore_aidl",
204        "libkeystore_parcelables",
205    ],
206}
207
208// Library for keystore clients using the WiFi HIDL interface
209cc_library_shared {
210    name: "libkeystore-wifi-hidl",
211    defaults: ["keystore_defaults"],
212
213    srcs: ["keystore_get_wifi_hidl.cpp"],
214    shared_libs: [
215        "android.system.wifi.keystore@1.0",
216        "libbase",
217        "libhidlbase",
218        "libhidltransport",
219        "liblog",
220        "libutils",
221    ],
222
223    export_include_dirs: ["include"],
224
225    vendor: true,
226}
227
228// Library for unit tests
229cc_library_static {
230    name: "libkeystore_test",
231    defaults: ["keystore_defaults"],
232
233    srcs: [
234        "auth_token_table.cpp",
235    ],
236    cflags: [ "-O0", ],
237    static_libs: ["libgtest_main"],
238    shared_libs: [
239        "android.hardware.keymaster@4.0",
240        "libhidlbase",
241        "libhwbinder",
242        "libkeymaster4support",
243        "libutils",
244    ],
245    export_shared_lib_headers: [
246        "android.hardware.keymaster@4.0",
247        "libhidlbase",
248        "libhwbinder",
249        "libkeymaster4support",
250    ],
251
252    export_include_dirs: ["include"],
253}
254
255filegroup {
256    name: "keystore_aidl",
257    srcs: [
258        "binder/android/security/IConfirmationPromptCallback.aidl",
259        "binder/android/security/IKeystoreService.aidl",
260    ],
261}
262
263cc_library_shared {
264    name: "libkeystore_aidl",
265    srcs: [":keystore_aidl"],
266    aidl: {
267        export_aidl_headers: true,
268        include_dirs: [
269            "system/security/keystore/binder",
270        ],
271    },
272    shared_libs: [
273        "libbinder",
274        "libcutils",
275        "libhardware",
276        "libhidlbase",
277        "libhidltransport",
278        "libhwbinder",
279        "libkeystore_parcelables",
280        "liblog",
281        "libselinux",
282        "libutils",
283    ],
284    export_shared_lib_headers: [
285        "libbinder",
286        "libkeystore_parcelables",
287    ],
288}
289
290subdirs = ["tests"]
291