blob: 356ac1b530ada7a767ac3b2b3c33b4c25c8fa40d [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: {
bohucccab482019-01-31 20:30:29 -080012 misc_undefined: [
13 "signed-integer-overflow",
14 "unsigned-integer-overflow",
15 "shift",
16 "integer-divide-by-zero",
17 "implicit-unsigned-integer-truncation",
18 // BUG: 123630767
19 //"implicit-signed-integer-truncation",
20 "implicit-integer-sign-change",
21 ],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060022 },
23
24 clang: true,
25}
26
27cc_binary {
28 name: "keystore",
29 defaults: ["keystore_defaults"],
30
31 srcs: [
32 ":IKeyAttestationApplicationIdProvider.aidl",
Shawn Willdenfa5702f2017-12-03 15:14:58 -070033 "KeyStore.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060034 "auth_token_table.cpp",
35 "blob.cpp",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -050036 "confirmation_manager.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060037 "grant_store.cpp",
Max Bires33aac2d2018-02-23 10:53:10 -080038 "key_config.proto",
39 "key_proto_handler.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060040 "key_store_service.cpp",
41 "keyblob_utils.cpp",
42 "keymaster_enforcement.cpp",
Janis Danisevskisff3d7f42018-10-08 07:15:09 -070043 "keymaster_worker.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060044 "keystore_attestation_id.cpp",
45 "keystore_main.cpp",
46 "keystore_utils.cpp",
47 "legacy_keymaster_device_wrapper.cpp",
48 "operation.cpp",
Max Bires33aac2d2018-02-23 10:53:10 -080049 "operation_config.proto",
50 "operation_proto_handler.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060051 "permissions.cpp",
52 "user_state.cpp",
53 ],
54 shared_libs: [
David Zeuthenc6eb7cd2017-11-27 11:33:55 -050055 "android.hardware.confirmationui@1.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060056 "android.hardware.keymaster@3.0",
Shawn Willden0329a822017-12-04 13:55:14 -070057 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060058 "android.system.wifi.keystore@1.0",
Shawn Willdenc67a8aa2017-12-03 17:51:29 -070059 "libbase",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060060 "libbinder",
61 "libcrypto",
Brian Claire Young3133c452018-08-31 13:56:49 -070062 "libcutils",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060063 "libhardware",
64 "libhidlbase",
65 "libhidltransport",
66 "libhwbinder",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -070067 "libkeymaster4support",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060068 "libkeymaster_messages",
69 "libkeymaster_portable",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -080070 "libkeystore_aidl",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060071 "libkeystore_binder",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -080072 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060073 "liblog",
Max Bires33aac2d2018-02-23 10:53:10 -080074 "libprotobuf-cpp-lite",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060075 "libselinux",
Max Bires33aac2d2018-02-23 10:53:10 -080076 "libservices",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060077 "libsoftkeymasterdevice",
78 "libutils",
79 "libwifikeystorehal",
80 ],
81 init_rc: ["keystore.rc"],
82 aidl: {
83 include_dirs: ["frameworks/base/core/java/"],
84 },
85
86 product_variables: {
87 pdk: {
88 enabled: false,
89 },
Branden Archer84e72312019-01-04 10:33:16 -080090 debuggable: {
91 cflags: [
92 // Allow VTS tests running as root to have
93 // additional permissions.
94 "-DGRANT_ROOT_ALL_PERMISSIONS",
95 ],
96 },
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060097 },
Rubin Xu0d0e1132017-12-08 15:50:50 +000098
99 required: ["keystore_cli_v2"],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600100}
101
102cc_binary {
103 name: "keystore_cli",
104 defaults: ["keystore_defaults"],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600105
106 srcs: ["keystore_cli.cpp"],
107 shared_libs: [
Brian Young9371e952018-02-23 18:03:14 +0000108 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600109 "libbinder",
110 "libcrypto",
111 "libcutils",
112 "libhidlbase",
113 "libhwbinder",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800114 "libkeystore_aidl", // for IKeyStoreService.asInterface()
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600115 "libkeystore_binder",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800116 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600117 "liblog",
118 "libutils",
119 ],
120}
121
122cc_binary {
123 name: "keystore_cli_v2",
124 defaults: ["keystore_defaults"],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600125
126 cflags: [
127 "-DKEYMASTER_NAME_TAGS",
128 "-Wno-unused-parameter",
129 ],
130 srcs: ["keystore_cli_v2.cpp"],
131 shared_libs: [
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500132 "android.hardware.confirmationui@1.0",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500133 "libbinder",
Brian Young9a947d52018-02-23 18:03:14 +0000134 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600135 "libchrome",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500136 "libutils",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600137 "libhidlbase",
138 "libhwbinder",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700139 "libkeymaster4support",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500140 "libkeystore_aidl",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600141 "libkeystore_binder",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500142 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600143 ],
144
145 local_include_dirs: ["include"],
146}
147
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800148cc_library_shared {
149 name: "libkeystore_parcelables",
150 defaults: ["keystore_defaults"],
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800151 export_include_dirs: ["include"],
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800152 srcs: [
153 "KeyAttestationApplicationId.cpp",
154 "KeyAttestationPackageInfo.cpp",
155 "KeymasterArguments.cpp",
Rob Barnesbb6cabd2018-10-04 17:10:37 -0600156 "keystore_aidl_hidl_marshalling_utils.cpp",
157 "KeystoreResponse.cpp",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800158 "OperationResult.cpp",
159 "Signature.cpp",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800160 ],
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800161 shared_libs: [
Shawn Willden0329a822017-12-04 13:55:14 -0700162 "android.hardware.keymaster@4.0",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800163 "libbinder",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800164 "libhardware",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800165 "libhidlbase",
166 "libhwbinder",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700167 "libkeymaster4support",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800168 "liblog",
169 "libprotobuf-cpp-lite",
170 "libutils",
171 ],
172 export_shared_lib_headers: [
Shawn Willden0329a822017-12-04 13:55:14 -0700173 "android.hardware.keymaster@4.0",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800174 "libbinder",
175 "libhidlbase",
176 "libhwbinder",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700177 "libkeymaster4support",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800178 ],
179}
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600180// Library for keystore clients
181cc_library_shared {
182 name: "libkeystore_binder",
183 defaults: ["keystore_defaults"],
184
185 srcs: [
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600186 "keyblob_utils.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600187 "keystore_client.proto",
188 "keystore_client_impl.cpp",
189 "keystore_get.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600190 ],
191 shared_libs: [
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700192 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600193 "libbinder",
194 "libhidlbase",
195 "libhwbinder",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700196 "libkeymaster4support",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800197 "libkeystore_aidl",
198 "libkeystore_parcelables",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700199 "liblog",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600200 "libprotobuf-cpp-lite",
201 "libutils",
202 ],
203
204 proto: {
205 type: "lite",
206 export_proto_headers: true,
207 },
Dmitry Dementyeva447b3c2017-10-27 23:09:53 -0700208 aidl: {
209 export_aidl_headers: true,
210 include_dirs: ["frameworks/base/core/java/"],
211 },
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600212 export_include_dirs: ["include"],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600213 export_shared_lib_headers: [
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700214 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600215 "libbinder",
216 "libhidlbase",
217 "libhwbinder",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800218 "libkeystore_aidl",
219 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600220 ],
221}
222
223// Library for keystore clients using the WiFi HIDL interface
224cc_library_shared {
225 name: "libkeystore-wifi-hidl",
226 defaults: ["keystore_defaults"],
227
228 srcs: ["keystore_get_wifi_hidl.cpp"],
229 shared_libs: [
230 "android.system.wifi.keystore@1.0",
231 "libbase",
232 "libhidlbase",
233 "libhidltransport",
234 "liblog",
235 "libutils",
236 ],
237
238 export_include_dirs: ["include"],
239
240 vendor: true,
241}
242
243// Library for unit tests
244cc_library_static {
245 name: "libkeystore_test",
246 defaults: ["keystore_defaults"],
247
Janis Danisevskis8f737ad2017-11-21 12:30:15 -0800248 srcs: [
Eran Messeri03fc4c82018-08-16 18:53:15 +0100249 ":IKeyAttestationApplicationIdProvider.aidl",
Janis Danisevskis8f737ad2017-11-21 12:30:15 -0800250 "auth_token_table.cpp",
Eran Messeri2ba77c32018-12-04 12:22:16 +0000251 "blob.cpp",
Eran Messeri03fc4c82018-08-16 18:53:15 +0100252 "keystore_attestation_id.cpp",
253 "KeyAttestationApplicationId.cpp",
254 "KeyAttestationPackageInfo.cpp",
255 "Signature.cpp",
Janis Danisevskis8f737ad2017-11-21 12:30:15 -0800256 ],
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700257 cflags: [ "-O0", ],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600258 static_libs: ["libgtest_main"],
259 shared_libs: [
Shawn Willden0329a822017-12-04 13:55:14 -0700260 "android.hardware.keymaster@4.0",
Eran Messeri03fc4c82018-08-16 18:53:15 +0100261 "libbinder",
262 "libcrypto",
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 "libutils",
Eran Messeri03fc4c82018-08-16 18:53:15 +0100267 "libkeystore_aidl",
268 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600269 ],
270 export_shared_lib_headers: [
Shawn Willden0329a822017-12-04 13:55:14 -0700271 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600272 "libhidlbase",
273 "libhwbinder",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700274 "libkeymaster4support",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600275 ],
276
Eran Messeri03fc4c82018-08-16 18:53:15 +0100277 aidl: {
278 include_dirs: ["frameworks/base/core/java/"],
279 },
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600280 export_include_dirs: ["include"],
281}
282
Logan Chien3bd6a512018-02-14 13:57:11 +0800283filegroup {
284 name: "keystore_aidl",
285 srcs: [
286 "binder/android/security/IConfirmationPromptCallback.aidl",
Rob Barnesbb6cabd2018-10-04 17:10:37 -0600287 "binder/android/security/keystore/IKeystoreCertificateChainCallback.aidl",
288 "binder/android/security/keystore/IKeystoreExportKeyCallback.aidl",
289 "binder/android/security/keystore/IKeystoreKeyCharacteristicsCallback.aidl",
290 "binder/android/security/keystore/IKeystoreOperationResultCallback.aidl",
291 "binder/android/security/keystore/IKeystoreResponseCallback.aidl",
292 "binder/android/security/keystore/IKeystoreService.aidl",
Logan Chien3bd6a512018-02-14 13:57:11 +0800293 ],
Dan Willemsen418db442018-09-14 21:28:12 -0700294 path: "binder",
Logan Chien3bd6a512018-02-14 13:57:11 +0800295}
296
297cc_library_shared {
298 name: "libkeystore_aidl",
299 srcs: [":keystore_aidl"],
300 aidl: {
301 export_aidl_headers: true,
302 include_dirs: [
303 "system/security/keystore/binder",
304 ],
305 },
306 shared_libs: [
307 "libbinder",
308 "libcutils",
309 "libhardware",
310 "libhidlbase",
311 "libhidltransport",
312 "libhwbinder",
313 "libkeystore_parcelables",
314 "liblog",
315 "libselinux",
316 "libutils",
317 ],
318 export_shared_lib_headers: [
319 "libbinder",
320 "libkeystore_parcelables",
321 ],
322}