blob: 9bd363ffa586ff93dcefc80cd97abd792e6c8f0b [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 },
Branden Archer84e72312019-01-04 10:33:16 -080081 debuggable: {
82 cflags: [
83 // Allow VTS tests running as root to have
84 // additional permissions.
85 "-DGRANT_ROOT_ALL_PERMISSIONS",
86 ],
87 },
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060088 },
Rubin Xu0d0e1132017-12-08 15:50:50 +000089
90 required: ["keystore_cli_v2"],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060091}
92
93cc_binary {
94 name: "keystore_cli",
95 defaults: ["keystore_defaults"],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060096
97 srcs: ["keystore_cli.cpp"],
98 shared_libs: [
Brian Young9371e952018-02-23 18:03:14 +000099 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600100 "libbinder",
101 "libcrypto",
102 "libcutils",
103 "libhidlbase",
104 "libhwbinder",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800105 "libkeystore_aidl", // for IKeyStoreService.asInterface()
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600106 "libkeystore_binder",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800107 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600108 "liblog",
109 "libutils",
110 ],
111}
112
113cc_binary {
114 name: "keystore_cli_v2",
115 defaults: ["keystore_defaults"],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600116
117 cflags: [
118 "-DKEYMASTER_NAME_TAGS",
119 "-Wno-unused-parameter",
120 ],
121 srcs: ["keystore_cli_v2.cpp"],
122 shared_libs: [
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500123 "android.hardware.confirmationui@1.0",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500124 "libbinder",
Brian Young9a947d52018-02-23 18:03:14 +0000125 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600126 "libchrome",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500127 "libutils",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600128 "libhidlbase",
129 "libhwbinder",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700130 "libkeymaster4support",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500131 "libkeystore_aidl",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600132 "libkeystore_binder",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500133 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600134 ],
135
136 local_include_dirs: ["include"],
137}
138
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800139cc_library_shared {
140 name: "libkeystore_parcelables",
141 defaults: ["keystore_defaults"],
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800142 export_include_dirs: ["include"],
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800143 srcs: [
144 "KeyAttestationApplicationId.cpp",
145 "KeyAttestationPackageInfo.cpp",
146 "KeymasterArguments.cpp",
Rob Barnesbb6cabd2018-10-04 17:10:37 -0600147 "keystore_aidl_hidl_marshalling_utils.cpp",
148 "KeystoreResponse.cpp",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800149 "OperationResult.cpp",
150 "Signature.cpp",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800151 ],
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800152 shared_libs: [
Shawn Willden0329a822017-12-04 13:55:14 -0700153 "android.hardware.keymaster@4.0",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800154 "libbinder",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800155 "libhardware",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800156 "libhidlbase",
157 "libhwbinder",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700158 "libkeymaster4support",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800159 "liblog",
160 "libprotobuf-cpp-lite",
161 "libutils",
162 ],
163 export_shared_lib_headers: [
Shawn Willden0329a822017-12-04 13:55:14 -0700164 "android.hardware.keymaster@4.0",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800165 "libbinder",
166 "libhidlbase",
167 "libhwbinder",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700168 "libkeymaster4support",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800169 ],
170}
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600171// Library for keystore clients
172cc_library_shared {
173 name: "libkeystore_binder",
174 defaults: ["keystore_defaults"],
175
176 srcs: [
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600177 "keyblob_utils.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600178 "keystore_client.proto",
179 "keystore_client_impl.cpp",
180 "keystore_get.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600181 ],
182 shared_libs: [
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700183 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600184 "libbinder",
185 "libhidlbase",
186 "libhwbinder",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700187 "libkeymaster4support",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800188 "libkeystore_aidl",
189 "libkeystore_parcelables",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700190 "liblog",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600191 "libprotobuf-cpp-lite",
192 "libutils",
193 ],
194
195 proto: {
196 type: "lite",
197 export_proto_headers: true,
198 },
Dmitry Dementyeva447b3c2017-10-27 23:09:53 -0700199 aidl: {
200 export_aidl_headers: true,
201 include_dirs: ["frameworks/base/core/java/"],
202 },
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600203 export_include_dirs: ["include"],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600204 export_shared_lib_headers: [
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700205 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600206 "libbinder",
207 "libhidlbase",
208 "libhwbinder",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800209 "libkeystore_aidl",
210 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600211 ],
212}
213
214// Library for keystore clients using the WiFi HIDL interface
215cc_library_shared {
216 name: "libkeystore-wifi-hidl",
217 defaults: ["keystore_defaults"],
218
219 srcs: ["keystore_get_wifi_hidl.cpp"],
220 shared_libs: [
221 "android.system.wifi.keystore@1.0",
222 "libbase",
223 "libhidlbase",
224 "libhidltransport",
225 "liblog",
226 "libutils",
227 ],
228
229 export_include_dirs: ["include"],
230
231 vendor: true,
232}
233
234// Library for unit tests
235cc_library_static {
236 name: "libkeystore_test",
237 defaults: ["keystore_defaults"],
238
Janis Danisevskis8f737ad2017-11-21 12:30:15 -0800239 srcs: [
Eran Messeri03fc4c82018-08-16 18:53:15 +0100240 ":IKeyAttestationApplicationIdProvider.aidl",
Janis Danisevskis8f737ad2017-11-21 12:30:15 -0800241 "auth_token_table.cpp",
Eran Messeri2ba77c32018-12-04 12:22:16 +0000242 "blob.cpp",
Eran Messeri03fc4c82018-08-16 18:53:15 +0100243 "keystore_attestation_id.cpp",
244 "KeyAttestationApplicationId.cpp",
245 "KeyAttestationPackageInfo.cpp",
246 "Signature.cpp",
Janis Danisevskis8f737ad2017-11-21 12:30:15 -0800247 ],
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700248 cflags: [ "-O0", ],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600249 static_libs: ["libgtest_main"],
250 shared_libs: [
Shawn Willden0329a822017-12-04 13:55:14 -0700251 "android.hardware.keymaster@4.0",
Eran Messeri03fc4c82018-08-16 18:53:15 +0100252 "libbinder",
253 "libcrypto",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600254 "libhidlbase",
255 "libhwbinder",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700256 "libkeymaster4support",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600257 "libutils",
Eran Messeri03fc4c82018-08-16 18:53:15 +0100258 "libkeystore_aidl",
259 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600260 ],
261 export_shared_lib_headers: [
Shawn Willden0329a822017-12-04 13:55:14 -0700262 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600263 "libhidlbase",
264 "libhwbinder",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700265 "libkeymaster4support",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600266 ],
267
Eran Messeri03fc4c82018-08-16 18:53:15 +0100268 aidl: {
269 include_dirs: ["frameworks/base/core/java/"],
270 },
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600271 export_include_dirs: ["include"],
272}
273
Logan Chien3bd6a512018-02-14 13:57:11 +0800274filegroup {
275 name: "keystore_aidl",
276 srcs: [
277 "binder/android/security/IConfirmationPromptCallback.aidl",
Rob Barnesbb6cabd2018-10-04 17:10:37 -0600278 "binder/android/security/keystore/IKeystoreCertificateChainCallback.aidl",
279 "binder/android/security/keystore/IKeystoreExportKeyCallback.aidl",
280 "binder/android/security/keystore/IKeystoreKeyCharacteristicsCallback.aidl",
281 "binder/android/security/keystore/IKeystoreOperationResultCallback.aidl",
282 "binder/android/security/keystore/IKeystoreResponseCallback.aidl",
283 "binder/android/security/keystore/IKeystoreService.aidl",
Logan Chien3bd6a512018-02-14 13:57:11 +0800284 ],
Dan Willemsen418db442018-09-14 21:28:12 -0700285 path: "binder",
Logan Chien3bd6a512018-02-14 13:57:11 +0800286}
287
288cc_library_shared {
289 name: "libkeystore_aidl",
290 srcs: [":keystore_aidl"],
291 aidl: {
292 export_aidl_headers: true,
293 include_dirs: [
294 "system/security/keystore/binder",
295 ],
296 },
297 shared_libs: [
298 "libbinder",
299 "libcutils",
300 "libhardware",
301 "libhidlbase",
302 "libhidltransport",
303 "libhwbinder",
304 "libkeystore_parcelables",
305 "liblog",
306 "libselinux",
307 "libutils",
308 ],
309 export_shared_lib_headers: [
310 "libbinder",
311 "libkeystore_parcelables",
312 ],
313}