blob: 45b721b6a2b6235f317ae06e30de28e43f91cf39 [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: [
Shawn Willdenfa5702f2017-12-03 15:14:58 -070032 "KeyStore.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060033 "auth_token_table.cpp",
34 "blob.cpp",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -050035 "confirmation_manager.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060036 "grant_store.cpp",
Hasini Gunasinghe4e55c2f2020-05-26 01:28:17 +000037 "key_creation_log_handler.cpp",
Hasini Gunasinghe242460e2020-06-05 14:06:02 +000038 "key_operation_log_handler.cpp",
Hasini Gunasinghe8c8c2d42020-06-23 17:17:47 +000039 "key_attestation_log_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_main.cpp",
45 "keystore_utils.cpp",
46 "legacy_keymaster_device_wrapper.cpp",
47 "operation.cpp",
48 "permissions.cpp",
49 "user_state.cpp",
50 ],
51 shared_libs: [
David Zeuthenc6eb7cd2017-11-27 11:33:55 -050052 "android.hardware.confirmationui@1.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060053 "android.hardware.keymaster@3.0",
Shawn Willden0329a822017-12-04 13:55:14 -070054 "android.hardware.keymaster@4.0",
Shawn Willdena97aea42020-01-16 13:27:49 -070055 "android.hardware.keymaster@4.1",
Shawn Willdenc67a8aa2017-12-03 17:51:29 -070056 "libbase",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060057 "libbinder",
58 "libcrypto",
Brian Claire Young3133c452018-08-31 13:56:49 -070059 "libcutils",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060060 "libhardware",
61 "libhidlbase",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -070062 "libkeymaster4support",
Shawn Willdena97aea42020-01-16 13:27:49 -070063 "libkeymaster4_1support",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060064 "libkeymaster_messages",
65 "libkeymaster_portable",
David Zeuthenf2a28672020-01-30 16:20:07 -050066 "libkeystore-attestation-application-id",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -080067 "libkeystore_aidl",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060068 "libkeystore_binder",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -080069 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060070 "liblog",
Max Bires33aac2d2018-02-23 10:53:10 -080071 "libprotobuf-cpp-lite",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060072 "libselinux",
Max Bires33aac2d2018-02-23 10:53:10 -080073 "libservices",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060074 "libsoftkeymasterdevice",
75 "libutils",
Hasini Gunasinghe4e55c2f2020-05-26 01:28:17 +000076 "libstatslog",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060077 ],
78 init_rc: ["keystore.rc"],
79 aidl: {
80 include_dirs: ["frameworks/base/core/java/"],
81 },
82
83 product_variables: {
84 pdk: {
85 enabled: false,
86 },
Branden Archer84e72312019-01-04 10:33:16 -080087 debuggable: {
88 cflags: [
89 // Allow VTS tests running as root to have
90 // additional permissions.
91 "-DGRANT_ROOT_ALL_PERMISSIONS",
92 ],
93 },
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060094 },
Rubin Xu0d0e1132017-12-08 15:50:50 +000095
96 required: ["keystore_cli_v2"],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060097}
98
99cc_binary {
100 name: "keystore_cli",
101 defaults: ["keystore_defaults"],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600102
103 srcs: ["keystore_cli.cpp"],
104 shared_libs: [
Brian Young9371e952018-02-23 18:03:14 +0000105 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600106 "libbinder",
107 "libcrypto",
108 "libcutils",
109 "libhidlbase",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800110 "libkeystore_aidl", // for IKeyStoreService.asInterface()
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600111 "libkeystore_binder",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800112 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600113 "liblog",
114 "libutils",
115 ],
116}
117
118cc_binary {
119 name: "keystore_cli_v2",
120 defaults: ["keystore_defaults"],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600121
122 cflags: [
123 "-DKEYMASTER_NAME_TAGS",
124 "-Wno-unused-parameter",
125 ],
126 srcs: ["keystore_cli_v2.cpp"],
127 shared_libs: [
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500128 "android.hardware.confirmationui@1.0",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500129 "libbinder",
Brian Young9a947d52018-02-23 18:03:14 +0000130 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600131 "libchrome",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500132 "libutils",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600133 "libhidlbase",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700134 "libkeymaster4support",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500135 "libkeystore_aidl",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600136 "libkeystore_binder",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500137 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600138 ],
139
140 local_include_dirs: ["include"],
141}
142
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800143cc_library_shared {
144 name: "libkeystore_parcelables",
145 defaults: ["keystore_defaults"],
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800146 export_include_dirs: ["include"],
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800147 srcs: [
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800148 "KeymasterArguments.cpp",
Rob Barnesbb6cabd2018-10-04 17:10:37 -0600149 "keystore_aidl_hidl_marshalling_utils.cpp",
150 "KeystoreResponse.cpp",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800151 "OperationResult.cpp",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800152 ],
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800153 shared_libs: [
Shawn Willden0329a822017-12-04 13:55:14 -0700154 "android.hardware.keymaster@4.0",
Shawn Willdena97aea42020-01-16 13:27:49 -0700155 "android.hardware.keymaster@4.1",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800156 "libbinder",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800157 "libhardware",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800158 "libhidlbase",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700159 "libkeymaster4support",
Shawn Willdena97aea42020-01-16 13:27:49 -0700160 "libkeymaster4_1support",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800161 "liblog",
162 "libprotobuf-cpp-lite",
163 "libutils",
David Zeuthenf2a28672020-01-30 16:20:07 -0500164 "libkeystore-attestation-application-id",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800165 ],
166 export_shared_lib_headers: [
Shawn Willden0329a822017-12-04 13:55:14 -0700167 "android.hardware.keymaster@4.0",
Shawn Willdena97aea42020-01-16 13:27:49 -0700168 "android.hardware.keymaster@4.1",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800169 "libbinder",
170 "libhidlbase",
Shawn Willdena97aea42020-01-16 13:27:49 -0700171 "libkeymaster4_1support",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800172 ],
173}
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600174// Library for keystore clients
175cc_library_shared {
176 name: "libkeystore_binder",
177 defaults: ["keystore_defaults"],
178
179 srcs: [
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600180 "keyblob_utils.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600181 "keystore_client.proto",
182 "keystore_client_impl.cpp",
183 "keystore_get.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600184 ],
185 shared_libs: [
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700186 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600187 "libbinder",
188 "libhidlbase",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700189 "libkeymaster4support",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800190 "libkeystore_aidl",
191 "libkeystore_parcelables",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700192 "liblog",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600193 "libprotobuf-cpp-lite",
194 "libutils",
195 ],
196
197 proto: {
198 type: "lite",
199 export_proto_headers: true,
200 },
Dmitry Dementyeva447b3c2017-10-27 23:09:53 -0700201 aidl: {
202 export_aidl_headers: true,
203 include_dirs: ["frameworks/base/core/java/"],
204 },
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600205 export_include_dirs: ["include"],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600206 export_shared_lib_headers: [
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700207 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600208 "libbinder",
209 "libhidlbase",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800210 "libkeystore_aidl",
211 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600212 ],
213}
214
David Zeuthenf2a28672020-01-30 16:20:07 -0500215// Library used by both keystore and credstore for generating the ASN.1 stored
216// in Tag::ATTESTATION_APPLICATION_ID
217cc_library_shared {
218 name: "libkeystore-attestation-application-id",
219 defaults: ["keystore_defaults"],
220
221 srcs: [
222 ":IKeyAttestationApplicationIdProvider.aidl",
223 "keystore_attestation_id.cpp",
224 "KeyAttestationApplicationId.cpp",
225 "KeyAttestationPackageInfo.cpp",
226 "Signature.cpp",
227 ],
228 shared_libs: [
229 "libbase",
230 "libbinder",
231 "libhidlbase",
232 "liblog",
233 "libutils",
234 "libcrypto",
235 ],
236
237 export_include_dirs: ["include"],
238}
239
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600240// Library for keystore clients using the WiFi HIDL interface
241cc_library_shared {
242 name: "libkeystore-wifi-hidl",
243 defaults: ["keystore_defaults"],
244
245 srcs: ["keystore_get_wifi_hidl.cpp"],
246 shared_libs: [
247 "android.system.wifi.keystore@1.0",
248 "libbase",
249 "libhidlbase",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600250 "liblog",
251 "libutils",
252 ],
253
254 export_include_dirs: ["include"],
255
256 vendor: true,
257}
258
259// Library for unit tests
260cc_library_static {
261 name: "libkeystore_test",
262 defaults: ["keystore_defaults"],
263
Janis Danisevskis8f737ad2017-11-21 12:30:15 -0800264 srcs: [
265 "auth_token_table.cpp",
Eran Messeri2ba77c32018-12-04 12:22:16 +0000266 "blob.cpp",
Janis Danisevskis8f737ad2017-11-21 12:30:15 -0800267 ],
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700268 cflags: [ "-O0", ],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600269 static_libs: ["libgtest_main"],
270 shared_libs: [
Shawn Willden0329a822017-12-04 13:55:14 -0700271 "android.hardware.keymaster@4.0",
Eran Messeri03fc4c82018-08-16 18:53:15 +0100272 "libbinder",
273 "libcrypto",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600274 "libhidlbase",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700275 "libkeymaster4support",
David Zeuthenf2a28672020-01-30 16:20:07 -0500276 "libkeystore-attestation-application-id",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600277 "libutils",
Eran Messeri03fc4c82018-08-16 18:53:15 +0100278 "libkeystore_aidl",
279 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600280 ],
281 export_shared_lib_headers: [
Shawn Willden0329a822017-12-04 13:55:14 -0700282 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600283 "libhidlbase",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700284 "libkeymaster4support",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600285 ],
286
Eran Messeri03fc4c82018-08-16 18:53:15 +0100287 aidl: {
288 include_dirs: ["frameworks/base/core/java/"],
289 },
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600290 export_include_dirs: ["include"],
291}
292
Logan Chien3bd6a512018-02-14 13:57:11 +0800293filegroup {
294 name: "keystore_aidl",
295 srcs: [
296 "binder/android/security/IConfirmationPromptCallback.aidl",
David Zeuthen59102f32020-05-08 10:58:09 -0400297 "binder/android/security/keystore/ICredstoreTokenCallback.aidl",
Rob Barnesbb6cabd2018-10-04 17:10:37 -0600298 "binder/android/security/keystore/IKeystoreCertificateChainCallback.aidl",
299 "binder/android/security/keystore/IKeystoreExportKeyCallback.aidl",
300 "binder/android/security/keystore/IKeystoreKeyCharacteristicsCallback.aidl",
301 "binder/android/security/keystore/IKeystoreOperationResultCallback.aidl",
302 "binder/android/security/keystore/IKeystoreResponseCallback.aidl",
303 "binder/android/security/keystore/IKeystoreService.aidl",
Logan Chien3bd6a512018-02-14 13:57:11 +0800304 ],
Dan Willemsen418db442018-09-14 21:28:12 -0700305 path: "binder",
Logan Chien3bd6a512018-02-14 13:57:11 +0800306}
307
308cc_library_shared {
309 name: "libkeystore_aidl",
310 srcs: [":keystore_aidl"],
311 aidl: {
312 export_aidl_headers: true,
313 include_dirs: [
314 "system/security/keystore/binder",
315 ],
316 },
317 shared_libs: [
318 "libbinder",
319 "libcutils",
320 "libhardware",
321 "libhidlbase",
Logan Chien3bd6a512018-02-14 13:57:11 +0800322 "libkeystore_parcelables",
323 "liblog",
324 "libselinux",
325 "libutils",
326 ],
327 export_shared_lib_headers: [
328 "libbinder",
329 "libkeystore_parcelables",
330 ],
331}