blob: a12183f3fbfef1687f33b28e5f7afc704643677c [file] [log] [blame]
Jeff Sharkeyc493cf92017-10-23 10:39:50 -06001cc_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",
Shawn Willdenfa5702f2017-12-03 15:14:58 -070024 "KeyStore.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060025 "auth_token_table.cpp",
26 "blob.cpp",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -050027 "confirmation_manager.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060028 "grant_store.cpp",
Max Bires33aac2d2018-02-23 10:53:10 -080029 "key_config.proto",
30 "key_proto_handler.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060031 "key_store_service.cpp",
32 "keyblob_utils.cpp",
33 "keymaster_enforcement.cpp",
Janis Danisevskisff3d7f42018-10-08 07:15:09 -070034 "keymaster_worker.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060035 "keystore_attestation_id.cpp",
36 "keystore_main.cpp",
37 "keystore_utils.cpp",
38 "legacy_keymaster_device_wrapper.cpp",
39 "operation.cpp",
Max Bires33aac2d2018-02-23 10:53:10 -080040 "operation_config.proto",
41 "operation_proto_handler.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060042 "permissions.cpp",
43 "user_state.cpp",
44 ],
45 shared_libs: [
David Zeuthenc6eb7cd2017-11-27 11:33:55 -050046 "android.hardware.confirmationui@1.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060047 "android.hardware.keymaster@3.0",
Shawn Willden0329a822017-12-04 13:55:14 -070048 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060049 "android.system.wifi.keystore@1.0",
Shawn Willdenc67a8aa2017-12-03 17:51:29 -070050 "libbase",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060051 "libbinder",
52 "libcrypto",
Brian Claire Young3133c452018-08-31 13:56:49 -070053 "libcutils",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060054 "libhardware",
55 "libhidlbase",
56 "libhidltransport",
57 "libhwbinder",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -070058 "libkeymaster4support",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060059 "libkeymaster_messages",
60 "libkeymaster_portable",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -080061 "libkeystore_aidl",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060062 "libkeystore_binder",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -080063 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060064 "liblog",
Max Bires33aac2d2018-02-23 10:53:10 -080065 "libprotobuf-cpp-lite",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060066 "libselinux",
Max Bires33aac2d2018-02-23 10:53:10 -080067 "libservices",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060068 "libsoftkeymasterdevice",
69 "libutils",
70 "libwifikeystorehal",
71 ],
72 init_rc: ["keystore.rc"],
73 aidl: {
74 include_dirs: ["frameworks/base/core/java/"],
75 },
76
77 product_variables: {
78 pdk: {
79 enabled: false,
80 },
81 },
Rubin Xu0d0e1132017-12-08 15:50:50 +000082
83 required: ["keystore_cli_v2"],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060084}
85
86cc_binary {
87 name: "keystore_cli",
88 defaults: ["keystore_defaults"],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060089
90 srcs: ["keystore_cli.cpp"],
91 shared_libs: [
Brian Young9371e952018-02-23 18:03:14 +000092 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060093 "libbinder",
94 "libcrypto",
95 "libcutils",
96 "libhidlbase",
97 "libhwbinder",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -080098 "libkeystore_aidl", // for IKeyStoreService.asInterface()
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060099 "libkeystore_binder",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800100 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600101 "liblog",
102 "libutils",
103 ],
104}
105
106cc_binary {
107 name: "keystore_cli_v2",
108 defaults: ["keystore_defaults"],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600109
110 cflags: [
111 "-DKEYMASTER_NAME_TAGS",
112 "-Wno-unused-parameter",
113 ],
114 srcs: ["keystore_cli_v2.cpp"],
115 shared_libs: [
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500116 "android.hardware.confirmationui@1.0",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500117 "libbinder",
Brian Young9a947d52018-02-23 18:03:14 +0000118 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600119 "libchrome",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500120 "libutils",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600121 "libhidlbase",
122 "libhwbinder",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700123 "libkeymaster4support",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500124 "libkeystore_aidl",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600125 "libkeystore_binder",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500126 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600127 ],
128
129 local_include_dirs: ["include"],
130}
131
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800132cc_library_shared {
133 name: "libkeystore_parcelables",
134 defaults: ["keystore_defaults"],
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800135 export_include_dirs: ["include"],
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800136 srcs: [
137 "KeyAttestationApplicationId.cpp",
138 "KeyAttestationPackageInfo.cpp",
139 "KeymasterArguments.cpp",
Rob Barnesbb6cabd2018-10-04 17:10:37 -0600140 "keystore_aidl_hidl_marshalling_utils.cpp",
141 "KeystoreResponse.cpp",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800142 "OperationResult.cpp",
143 "Signature.cpp",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800144 ],
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800145 shared_libs: [
Shawn Willden0329a822017-12-04 13:55:14 -0700146 "android.hardware.keymaster@4.0",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800147 "libbinder",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800148 "libhardware",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800149 "libhidlbase",
150 "libhwbinder",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700151 "libkeymaster4support",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800152 "liblog",
153 "libprotobuf-cpp-lite",
154 "libutils",
155 ],
156 export_shared_lib_headers: [
Shawn Willden0329a822017-12-04 13:55:14 -0700157 "android.hardware.keymaster@4.0",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800158 "libbinder",
159 "libhidlbase",
160 "libhwbinder",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700161 "libkeymaster4support",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800162 ],
163}
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600164// Library for keystore clients
165cc_library_shared {
166 name: "libkeystore_binder",
167 defaults: ["keystore_defaults"],
168
169 srcs: [
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600170 "keyblob_utils.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600171 "keystore_client.proto",
172 "keystore_client_impl.cpp",
173 "keystore_get.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600174 ],
175 shared_libs: [
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700176 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600177 "libbinder",
178 "libhidlbase",
179 "libhwbinder",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700180 "libkeymaster4support",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800181 "libkeystore_aidl",
182 "libkeystore_parcelables",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700183 "liblog",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600184 "libprotobuf-cpp-lite",
185 "libutils",
186 ],
187
188 proto: {
189 type: "lite",
190 export_proto_headers: true,
191 },
Dmitry Dementyeva447b3c2017-10-27 23:09:53 -0700192 aidl: {
193 export_aidl_headers: true,
194 include_dirs: ["frameworks/base/core/java/"],
195 },
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600196 export_include_dirs: ["include"],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600197 export_shared_lib_headers: [
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700198 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600199 "libbinder",
200 "libhidlbase",
201 "libhwbinder",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800202 "libkeystore_aidl",
203 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600204 ],
205}
206
207// Library for keystore clients using the WiFi HIDL interface
208cc_library_shared {
209 name: "libkeystore-wifi-hidl",
210 defaults: ["keystore_defaults"],
211
212 srcs: ["keystore_get_wifi_hidl.cpp"],
213 shared_libs: [
214 "android.system.wifi.keystore@1.0",
215 "libbase",
216 "libhidlbase",
217 "libhidltransport",
218 "liblog",
219 "libutils",
220 ],
221
222 export_include_dirs: ["include"],
223
224 vendor: true,
225}
226
227// Library for unit tests
228cc_library_static {
229 name: "libkeystore_test",
230 defaults: ["keystore_defaults"],
231
Janis Danisevskis8f737ad2017-11-21 12:30:15 -0800232 srcs: [
Eran Messeri03fc4c82018-08-16 18:53:15 +0100233 ":IKeyAttestationApplicationIdProvider.aidl",
Janis Danisevskis8f737ad2017-11-21 12:30:15 -0800234 "auth_token_table.cpp",
Eran Messeri2ba77c32018-12-04 12:22:16 +0000235 "blob.cpp",
Eran Messeri03fc4c82018-08-16 18:53:15 +0100236 "keystore_attestation_id.cpp",
237 "KeyAttestationApplicationId.cpp",
238 "KeyAttestationPackageInfo.cpp",
239 "Signature.cpp",
Janis Danisevskis8f737ad2017-11-21 12:30:15 -0800240 ],
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700241 cflags: [ "-O0", ],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600242 static_libs: ["libgtest_main"],
243 shared_libs: [
Shawn Willden0329a822017-12-04 13:55:14 -0700244 "android.hardware.keymaster@4.0",
Eran Messeri03fc4c82018-08-16 18:53:15 +0100245 "libbinder",
246 "libcrypto",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600247 "libhidlbase",
248 "libhwbinder",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700249 "libkeymaster4support",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600250 "libutils",
Eran Messeri03fc4c82018-08-16 18:53:15 +0100251 "libkeystore_aidl",
252 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600253 ],
254 export_shared_lib_headers: [
Shawn Willden0329a822017-12-04 13:55:14 -0700255 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600256 "libhidlbase",
257 "libhwbinder",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700258 "libkeymaster4support",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600259 ],
260
Eran Messeri03fc4c82018-08-16 18:53:15 +0100261 aidl: {
262 include_dirs: ["frameworks/base/core/java/"],
263 },
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600264 export_include_dirs: ["include"],
265}
266
Logan Chien3bd6a512018-02-14 13:57:11 +0800267filegroup {
268 name: "keystore_aidl",
269 srcs: [
270 "binder/android/security/IConfirmationPromptCallback.aidl",
Rob Barnesbb6cabd2018-10-04 17:10:37 -0600271 "binder/android/security/keystore/IKeystoreCertificateChainCallback.aidl",
272 "binder/android/security/keystore/IKeystoreExportKeyCallback.aidl",
273 "binder/android/security/keystore/IKeystoreKeyCharacteristicsCallback.aidl",
274 "binder/android/security/keystore/IKeystoreOperationResultCallback.aidl",
275 "binder/android/security/keystore/IKeystoreResponseCallback.aidl",
276 "binder/android/security/keystore/IKeystoreService.aidl",
Logan Chien3bd6a512018-02-14 13:57:11 +0800277 ],
Dan Willemsen418db442018-09-14 21:28:12 -0700278 path: "binder",
Logan Chien3bd6a512018-02-14 13:57:11 +0800279}
280
281cc_library_shared {
282 name: "libkeystore_aidl",
283 srcs: [":keystore_aidl"],
284 aidl: {
285 export_aidl_headers: true,
286 include_dirs: [
287 "system/security/keystore/binder",
288 ],
289 },
290 shared_libs: [
291 "libbinder",
292 "libcutils",
293 "libhardware",
294 "libhidlbase",
295 "libhidltransport",
296 "libhwbinder",
297 "libkeystore_parcelables",
298 "liblog",
299 "libselinux",
300 "libutils",
301 ],
302 export_shared_lib_headers: [
303 "libbinder",
304 "libkeystore_parcelables",
305 ],
306}