blob: eb0009fb250623bdccd047b17d725b3244b72897 [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",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060039 "key_store_service.cpp",
40 "keyblob_utils.cpp",
41 "keymaster_enforcement.cpp",
Janis Danisevskisff3d7f42018-10-08 07:15:09 -070042 "keymaster_worker.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060043 "keystore_main.cpp",
44 "keystore_utils.cpp",
45 "legacy_keymaster_device_wrapper.cpp",
46 "operation.cpp",
47 "permissions.cpp",
48 "user_state.cpp",
49 ],
50 shared_libs: [
David Zeuthenc6eb7cd2017-11-27 11:33:55 -050051 "android.hardware.confirmationui@1.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060052 "android.hardware.keymaster@3.0",
Shawn Willden0329a822017-12-04 13:55:14 -070053 "android.hardware.keymaster@4.0",
Shawn Willdena97aea42020-01-16 13:27:49 -070054 "android.hardware.keymaster@4.1",
Shawn Willdenc67a8aa2017-12-03 17:51:29 -070055 "libbase",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060056 "libbinder",
57 "libcrypto",
Brian Claire Young3133c452018-08-31 13:56:49 -070058 "libcutils",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060059 "libhardware",
60 "libhidlbase",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -070061 "libkeymaster4support",
Shawn Willdena97aea42020-01-16 13:27:49 -070062 "libkeymaster4_1support",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060063 "libkeymaster_messages",
64 "libkeymaster_portable",
David Zeuthenf2a28672020-01-30 16:20:07 -050065 "libkeystore-attestation-application-id",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -080066 "libkeystore_aidl",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060067 "libkeystore_binder",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -080068 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060069 "liblog",
Max Bires33aac2d2018-02-23 10:53:10 -080070 "libprotobuf-cpp-lite",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060071 "libselinux",
Max Bires33aac2d2018-02-23 10:53:10 -080072 "libservices",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060073 "libsoftkeymasterdevice",
74 "libutils",
Hasini Gunasinghe4e55c2f2020-05-26 01:28:17 +000075 "libstatslog",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060076 ],
77 init_rc: ["keystore.rc"],
78 aidl: {
79 include_dirs: ["frameworks/base/core/java/"],
80 },
81
82 product_variables: {
83 pdk: {
84 enabled: false,
85 },
Branden Archer84e72312019-01-04 10:33:16 -080086 debuggable: {
87 cflags: [
88 // Allow VTS tests running as root to have
89 // additional permissions.
90 "-DGRANT_ROOT_ALL_PERMISSIONS",
91 ],
92 },
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060093 },
Rubin Xu0d0e1132017-12-08 15:50:50 +000094
95 required: ["keystore_cli_v2"],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060096}
97
98cc_binary {
99 name: "keystore_cli",
100 defaults: ["keystore_defaults"],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600101
102 srcs: ["keystore_cli.cpp"],
103 shared_libs: [
Brian Young9371e952018-02-23 18:03:14 +0000104 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600105 "libbinder",
106 "libcrypto",
107 "libcutils",
108 "libhidlbase",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800109 "libkeystore_aidl", // for IKeyStoreService.asInterface()
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600110 "libkeystore_binder",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800111 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600112 "liblog",
113 "libutils",
114 ],
115}
116
117cc_binary {
118 name: "keystore_cli_v2",
119 defaults: ["keystore_defaults"],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600120
121 cflags: [
122 "-DKEYMASTER_NAME_TAGS",
123 "-Wno-unused-parameter",
124 ],
125 srcs: ["keystore_cli_v2.cpp"],
126 shared_libs: [
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500127 "android.hardware.confirmationui@1.0",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500128 "libbinder",
Brian Young9a947d52018-02-23 18:03:14 +0000129 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600130 "libchrome",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500131 "libutils",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600132 "libhidlbase",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700133 "libkeymaster4support",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500134 "libkeystore_aidl",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600135 "libkeystore_binder",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500136 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600137 ],
138
139 local_include_dirs: ["include"],
140}
141
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800142cc_library_shared {
143 name: "libkeystore_parcelables",
144 defaults: ["keystore_defaults"],
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800145 export_include_dirs: ["include"],
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800146 srcs: [
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800147 "KeymasterArguments.cpp",
Rob Barnesbb6cabd2018-10-04 17:10:37 -0600148 "keystore_aidl_hidl_marshalling_utils.cpp",
149 "KeystoreResponse.cpp",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800150 "OperationResult.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",
Shawn Willdena97aea42020-01-16 13:27:49 -0700154 "android.hardware.keymaster@4.1",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800155 "libbinder",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800156 "libhardware",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800157 "libhidlbase",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700158 "libkeymaster4support",
Shawn Willdena97aea42020-01-16 13:27:49 -0700159 "libkeymaster4_1support",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800160 "liblog",
161 "libprotobuf-cpp-lite",
162 "libutils",
David Zeuthenf2a28672020-01-30 16:20:07 -0500163 "libkeystore-attestation-application-id",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800164 ],
165 export_shared_lib_headers: [
Shawn Willden0329a822017-12-04 13:55:14 -0700166 "android.hardware.keymaster@4.0",
Shawn Willdena97aea42020-01-16 13:27:49 -0700167 "android.hardware.keymaster@4.1",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800168 "libbinder",
169 "libhidlbase",
Shawn Willdena97aea42020-01-16 13:27:49 -0700170 "libkeymaster4_1support",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800171 ],
172}
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600173// Library for keystore clients
174cc_library_shared {
175 name: "libkeystore_binder",
176 defaults: ["keystore_defaults"],
177
178 srcs: [
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600179 "keyblob_utils.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600180 "keystore_client.proto",
181 "keystore_client_impl.cpp",
182 "keystore_get.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600183 ],
184 shared_libs: [
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700185 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600186 "libbinder",
187 "libhidlbase",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700188 "libkeymaster4support",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800189 "libkeystore_aidl",
190 "libkeystore_parcelables",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700191 "liblog",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600192 "libprotobuf-cpp-lite",
193 "libutils",
194 ],
195
196 proto: {
197 type: "lite",
198 export_proto_headers: true,
199 },
Dmitry Dementyeva447b3c2017-10-27 23:09:53 -0700200 aidl: {
201 export_aidl_headers: true,
202 include_dirs: ["frameworks/base/core/java/"],
203 },
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600204 export_include_dirs: ["include"],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600205 export_shared_lib_headers: [
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700206 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600207 "libbinder",
208 "libhidlbase",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800209 "libkeystore_aidl",
210 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600211 ],
212}
213
David Zeuthenf2a28672020-01-30 16:20:07 -0500214// Library used by both keystore and credstore for generating the ASN.1 stored
215// in Tag::ATTESTATION_APPLICATION_ID
216cc_library_shared {
217 name: "libkeystore-attestation-application-id",
218 defaults: ["keystore_defaults"],
219
220 srcs: [
221 ":IKeyAttestationApplicationIdProvider.aidl",
222 "keystore_attestation_id.cpp",
223 "KeyAttestationApplicationId.cpp",
224 "KeyAttestationPackageInfo.cpp",
225 "Signature.cpp",
226 ],
227 shared_libs: [
228 "libbase",
229 "libbinder",
230 "libhidlbase",
231 "liblog",
232 "libutils",
233 "libcrypto",
234 ],
235
236 export_include_dirs: ["include"],
237}
238
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600239// Library for keystore clients using the WiFi HIDL interface
240cc_library_shared {
241 name: "libkeystore-wifi-hidl",
242 defaults: ["keystore_defaults"],
243
244 srcs: ["keystore_get_wifi_hidl.cpp"],
245 shared_libs: [
246 "android.system.wifi.keystore@1.0",
247 "libbase",
248 "libhidlbase",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600249 "liblog",
250 "libutils",
251 ],
252
253 export_include_dirs: ["include"],
254
255 vendor: true,
256}
257
258// Library for unit tests
259cc_library_static {
260 name: "libkeystore_test",
261 defaults: ["keystore_defaults"],
262
Janis Danisevskis8f737ad2017-11-21 12:30:15 -0800263 srcs: [
264 "auth_token_table.cpp",
Eran Messeri2ba77c32018-12-04 12:22:16 +0000265 "blob.cpp",
Janis Danisevskis8f737ad2017-11-21 12:30:15 -0800266 ],
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700267 cflags: [ "-O0", ],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600268 static_libs: ["libgtest_main"],
269 shared_libs: [
Shawn Willden0329a822017-12-04 13:55:14 -0700270 "android.hardware.keymaster@4.0",
Eran Messeri03fc4c82018-08-16 18:53:15 +0100271 "libbinder",
272 "libcrypto",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600273 "libhidlbase",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700274 "libkeymaster4support",
David Zeuthenf2a28672020-01-30 16:20:07 -0500275 "libkeystore-attestation-application-id",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600276 "libutils",
Eran Messeri03fc4c82018-08-16 18:53:15 +0100277 "libkeystore_aidl",
278 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600279 ],
280 export_shared_lib_headers: [
Shawn Willden0329a822017-12-04 13:55:14 -0700281 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600282 "libhidlbase",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700283 "libkeymaster4support",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600284 ],
285
Eran Messeri03fc4c82018-08-16 18:53:15 +0100286 aidl: {
287 include_dirs: ["frameworks/base/core/java/"],
288 },
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600289 export_include_dirs: ["include"],
290}
291
Logan Chien3bd6a512018-02-14 13:57:11 +0800292filegroup {
293 name: "keystore_aidl",
294 srcs: [
295 "binder/android/security/IConfirmationPromptCallback.aidl",
David Zeuthen59102f32020-05-08 10:58:09 -0400296 "binder/android/security/keystore/ICredstoreTokenCallback.aidl",
Rob Barnesbb6cabd2018-10-04 17:10:37 -0600297 "binder/android/security/keystore/IKeystoreCertificateChainCallback.aidl",
298 "binder/android/security/keystore/IKeystoreExportKeyCallback.aidl",
299 "binder/android/security/keystore/IKeystoreKeyCharacteristicsCallback.aidl",
300 "binder/android/security/keystore/IKeystoreOperationResultCallback.aidl",
301 "binder/android/security/keystore/IKeystoreResponseCallback.aidl",
302 "binder/android/security/keystore/IKeystoreService.aidl",
Logan Chien3bd6a512018-02-14 13:57:11 +0800303 ],
Dan Willemsen418db442018-09-14 21:28:12 -0700304 path: "binder",
Logan Chien3bd6a512018-02-14 13:57:11 +0800305}
306
307cc_library_shared {
308 name: "libkeystore_aidl",
309 srcs: [":keystore_aidl"],
310 aidl: {
311 export_aidl_headers: true,
312 include_dirs: [
313 "system/security/keystore/binder",
314 ],
315 },
316 shared_libs: [
317 "libbinder",
318 "libcutils",
319 "libhardware",
320 "libhidlbase",
Logan Chien3bd6a512018-02-14 13:57:11 +0800321 "libkeystore_parcelables",
322 "liblog",
323 "libselinux",
324 "libutils",
325 ],
326 export_shared_lib_headers: [
327 "libbinder",
328 "libkeystore_parcelables",
329 ],
330}