blob: 7278cee6fbef0efc8e830eb541a6feda33b21202 [file] [log] [blame]
Bob Badour4c7858c2021-02-12 15:40:29 -08001package {
2 // See: http://go/android-license-faq
3 // A large-scale-change added 'default_applicable_licenses' to import
4 // all of the 'license_kinds' from "system_security_license"
5 // to get the below license kinds:
6 // SPDX-license-identifier-Apache-2.0
7 // SPDX-license-identifier-BSD
8 default_applicable_licenses: ["system_security_license"],
9}
10
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060011cc_defaults {
12 name: "keystore_defaults",
13
14 cflags: [
15 "-Wall",
16 "-Werror",
17 "-Wextra",
18 "-Wunused",
19 ],
20
21 sanitize: {
bohucccab482019-01-31 20:30:29 -080022 misc_undefined: [
23 "signed-integer-overflow",
24 "unsigned-integer-overflow",
25 "shift",
26 "integer-divide-by-zero",
27 "implicit-unsigned-integer-truncation",
28 // BUG: 123630767
29 //"implicit-signed-integer-truncation",
30 "implicit-integer-sign-change",
31 ],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060032 },
33
34 clang: true,
35}
36
37cc_binary {
38 name: "keystore",
39 defaults: ["keystore_defaults"],
40
41 srcs: [
Shawn Willdenfa5702f2017-12-03 15:14:58 -070042 "KeyStore.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060043 "auth_token_table.cpp",
44 "blob.cpp",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -050045 "confirmation_manager.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060046 "grant_store.cpp",
Hasini Gunasinghe4e55c2f2020-05-26 01:28:17 +000047 "key_creation_log_handler.cpp",
Hasini Gunasinghe242460e2020-06-05 14:06:02 +000048 "key_operation_log_handler.cpp",
Hasini Gunasinghe8c8c2d42020-06-23 17:17:47 +000049 "key_attestation_log_handler.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060050 "key_store_service.cpp",
51 "keyblob_utils.cpp",
52 "keymaster_enforcement.cpp",
Janis Danisevskisff3d7f42018-10-08 07:15:09 -070053 "keymaster_worker.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060054 "keystore_main.cpp",
55 "keystore_utils.cpp",
56 "legacy_keymaster_device_wrapper.cpp",
57 "operation.cpp",
58 "permissions.cpp",
59 "user_state.cpp",
60 ],
61 shared_libs: [
David Zeuthenc6eb7cd2017-11-27 11:33:55 -050062 "android.hardware.confirmationui@1.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060063 "android.hardware.keymaster@3.0",
Shawn Willden0329a822017-12-04 13:55:14 -070064 "android.hardware.keymaster@4.0",
Shawn Willdena97aea42020-01-16 13:27:49 -070065 "android.hardware.keymaster@4.1",
Shawn Willdenc67a8aa2017-12-03 17:51:29 -070066 "libbase",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060067 "libbinder",
68 "libcrypto",
Brian Claire Young3133c452018-08-31 13:56:49 -070069 "libcutils",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060070 "libhardware",
71 "libhidlbase",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -070072 "libkeymaster4support",
Shawn Willdena97aea42020-01-16 13:27:49 -070073 "libkeymaster4_1support",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060074 "libkeymaster_messages",
75 "libkeymaster_portable",
David Zeuthenf2a28672020-01-30 16:20:07 -050076 "libkeystore-attestation-application-id",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -080077 "libkeystore_aidl",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060078 "libkeystore_binder",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -080079 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060080 "liblog",
Max Bires33aac2d2018-02-23 10:53:10 -080081 "libprotobuf-cpp-lite",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060082 "libselinux",
Max Bires33aac2d2018-02-23 10:53:10 -080083 "libservices",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060084 "libsoftkeymasterdevice",
85 "libutils",
Hasini Gunasinghe4e55c2f2020-05-26 01:28:17 +000086 "libstatslog",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060087 ],
88 init_rc: ["keystore.rc"],
89 aidl: {
90 include_dirs: ["frameworks/base/core/java/"],
91 },
92
93 product_variables: {
94 pdk: {
95 enabled: false,
96 },
Branden Archer84e72312019-01-04 10:33:16 -080097 debuggable: {
98 cflags: [
99 // Allow VTS tests running as root to have
100 // additional permissions.
101 "-DGRANT_ROOT_ALL_PERMISSIONS",
102 ],
103 },
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600104 },
Rubin Xu0d0e1132017-12-08 15:50:50 +0000105
106 required: ["keystore_cli_v2"],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600107}
108
109cc_binary {
110 name: "keystore_cli",
111 defaults: ["keystore_defaults"],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600112
113 srcs: ["keystore_cli.cpp"],
114 shared_libs: [
Brian Young9371e952018-02-23 18:03:14 +0000115 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600116 "libbinder",
117 "libcrypto",
118 "libcutils",
119 "libhidlbase",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800120 "libkeystore_aidl", // for IKeyStoreService.asInterface()
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600121 "libkeystore_binder",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800122 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600123 "liblog",
124 "libutils",
125 ],
126}
127
128cc_binary {
129 name: "keystore_cli_v2",
130 defaults: ["keystore_defaults"],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600131
132 cflags: [
133 "-DKEYMASTER_NAME_TAGS",
134 "-Wno-unused-parameter",
135 ],
136 srcs: ["keystore_cli_v2.cpp"],
137 shared_libs: [
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500138 "android.hardware.confirmationui@1.0",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500139 "libbinder",
Brian Young9a947d52018-02-23 18:03:14 +0000140 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600141 "libchrome",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500142 "libutils",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600143 "libhidlbase",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700144 "libkeymaster4support",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500145 "libkeystore_aidl",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600146 "libkeystore_binder",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500147 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600148 ],
149
150 local_include_dirs: ["include"],
151}
152
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800153cc_library_shared {
154 name: "libkeystore_parcelables",
155 defaults: ["keystore_defaults"],
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800156 export_include_dirs: ["include"],
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800157 srcs: [
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800158 "KeymasterArguments.cpp",
Rob Barnesbb6cabd2018-10-04 17:10:37 -0600159 "keystore_aidl_hidl_marshalling_utils.cpp",
160 "KeystoreResponse.cpp",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800161 "OperationResult.cpp",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800162 ],
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800163 shared_libs: [
Shawn Willden0329a822017-12-04 13:55:14 -0700164 "android.hardware.keymaster@4.0",
Shawn Willdena97aea42020-01-16 13:27:49 -0700165 "android.hardware.keymaster@4.1",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800166 "libbinder",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800167 "libhardware",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800168 "libhidlbase",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700169 "libkeymaster4support",
Shawn Willdena97aea42020-01-16 13:27:49 -0700170 "libkeymaster4_1support",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800171 "liblog",
172 "libprotobuf-cpp-lite",
173 "libutils",
David Zeuthenf2a28672020-01-30 16:20:07 -0500174 "libkeystore-attestation-application-id",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800175 ],
176 export_shared_lib_headers: [
Shawn Willden0329a822017-12-04 13:55:14 -0700177 "android.hardware.keymaster@4.0",
Shawn Willdena97aea42020-01-16 13:27:49 -0700178 "android.hardware.keymaster@4.1",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800179 "libbinder",
180 "libhidlbase",
Shawn Willdena97aea42020-01-16 13:27:49 -0700181 "libkeymaster4_1support",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800182 ],
183}
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600184// Library for keystore clients
185cc_library_shared {
186 name: "libkeystore_binder",
187 defaults: ["keystore_defaults"],
188
189 srcs: [
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600190 "keyblob_utils.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600191 "keystore_client.proto",
192 "keystore_client_impl.cpp",
193 "keystore_get.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600194 ],
195 shared_libs: [
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700196 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600197 "libbinder",
198 "libhidlbase",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700199 "libkeymaster4support",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800200 "libkeystore_aidl",
201 "libkeystore_parcelables",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700202 "liblog",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600203 "libprotobuf-cpp-lite",
204 "libutils",
205 ],
206
207 proto: {
208 type: "lite",
209 export_proto_headers: true,
210 },
Dmitry Dementyeva447b3c2017-10-27 23:09:53 -0700211 aidl: {
212 export_aidl_headers: true,
213 include_dirs: ["frameworks/base/core/java/"],
214 },
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600215 export_include_dirs: ["include"],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600216 export_shared_lib_headers: [
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700217 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600218 "libbinder",
219 "libhidlbase",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800220 "libkeystore_aidl",
221 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600222 ],
223}
224
David Zeuthenf2a28672020-01-30 16:20:07 -0500225// Library used by both keystore and credstore for generating the ASN.1 stored
226// in Tag::ATTESTATION_APPLICATION_ID
227cc_library_shared {
228 name: "libkeystore-attestation-application-id",
229 defaults: ["keystore_defaults"],
230
231 srcs: [
232 ":IKeyAttestationApplicationIdProvider.aidl",
233 "keystore_attestation_id.cpp",
234 "KeyAttestationApplicationId.cpp",
235 "KeyAttestationPackageInfo.cpp",
236 "Signature.cpp",
237 ],
238 shared_libs: [
239 "libbase",
240 "libbinder",
241 "libhidlbase",
242 "liblog",
243 "libutils",
244 "libcrypto",
245 ],
246
247 export_include_dirs: ["include"],
248}
249
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600250// Library for keystore clients using the WiFi HIDL interface
251cc_library_shared {
252 name: "libkeystore-wifi-hidl",
253 defaults: ["keystore_defaults"],
254
255 srcs: ["keystore_get_wifi_hidl.cpp"],
256 shared_libs: [
257 "android.system.wifi.keystore@1.0",
258 "libbase",
259 "libhidlbase",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600260 "liblog",
261 "libutils",
262 ],
263
264 export_include_dirs: ["include"],
265
266 vendor: true,
267}
268
269// Library for unit tests
270cc_library_static {
271 name: "libkeystore_test",
272 defaults: ["keystore_defaults"],
273
Janis Danisevskis8f737ad2017-11-21 12:30:15 -0800274 srcs: [
275 "auth_token_table.cpp",
Eran Messeri2ba77c32018-12-04 12:22:16 +0000276 "blob.cpp",
Janis Danisevskis8f737ad2017-11-21 12:30:15 -0800277 ],
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700278 cflags: [ "-O0", ],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600279 static_libs: ["libgtest_main"],
280 shared_libs: [
Shawn Willden0329a822017-12-04 13:55:14 -0700281 "android.hardware.keymaster@4.0",
Eran Messeri03fc4c82018-08-16 18:53:15 +0100282 "libbinder",
283 "libcrypto",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600284 "libhidlbase",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700285 "libkeymaster4support",
David Zeuthenf2a28672020-01-30 16:20:07 -0500286 "libkeystore-attestation-application-id",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600287 "libutils",
Eran Messeri03fc4c82018-08-16 18:53:15 +0100288 "libkeystore_aidl",
289 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600290 ],
291 export_shared_lib_headers: [
Shawn Willden0329a822017-12-04 13:55:14 -0700292 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600293 "libhidlbase",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700294 "libkeymaster4support",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600295 ],
296
Eran Messeri03fc4c82018-08-16 18:53:15 +0100297 aidl: {
298 include_dirs: ["frameworks/base/core/java/"],
299 },
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600300 export_include_dirs: ["include"],
301}
302
Logan Chien3bd6a512018-02-14 13:57:11 +0800303filegroup {
304 name: "keystore_aidl",
305 srcs: [
306 "binder/android/security/IConfirmationPromptCallback.aidl",
David Zeuthen59102f32020-05-08 10:58:09 -0400307 "binder/android/security/keystore/ICredstoreTokenCallback.aidl",
Rob Barnesbb6cabd2018-10-04 17:10:37 -0600308 "binder/android/security/keystore/IKeystoreCertificateChainCallback.aidl",
309 "binder/android/security/keystore/IKeystoreExportKeyCallback.aidl",
310 "binder/android/security/keystore/IKeystoreKeyCharacteristicsCallback.aidl",
311 "binder/android/security/keystore/IKeystoreOperationResultCallback.aidl",
312 "binder/android/security/keystore/IKeystoreResponseCallback.aidl",
313 "binder/android/security/keystore/IKeystoreService.aidl",
Logan Chien3bd6a512018-02-14 13:57:11 +0800314 ],
Dan Willemsen418db442018-09-14 21:28:12 -0700315 path: "binder",
Logan Chien3bd6a512018-02-14 13:57:11 +0800316}
317
318cc_library_shared {
319 name: "libkeystore_aidl",
320 srcs: [":keystore_aidl"],
321 aidl: {
322 export_aidl_headers: true,
323 include_dirs: [
324 "system/security/keystore/binder",
325 ],
326 },
327 shared_libs: [
328 "libbinder",
329 "libcutils",
330 "libhardware",
331 "libhidlbase",
Logan Chien3bd6a512018-02-14 13:57:11 +0800332 "libkeystore_parcelables",
333 "liblog",
334 "libselinux",
335 "libutils",
336 ],
337 export_shared_lib_headers: [
338 "libbinder",
339 "libkeystore_parcelables",
340 ],
341}