blob: c0aeedaa574654c082df96f04dfa79931e0e29a6 [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",
Max Bires33aac2d2018-02-23 10:53:10 -080037 "key_config.proto",
38 "key_proto_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",
Max Bires33aac2d2018-02-23 10:53:10 -080047 "operation_config.proto",
48 "operation_proto_handler.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060049 "permissions.cpp",
50 "user_state.cpp",
51 ],
52 shared_libs: [
David Zeuthenc6eb7cd2017-11-27 11:33:55 -050053 "android.hardware.confirmationui@1.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060054 "android.hardware.keymaster@3.0",
Shawn Willden0329a822017-12-04 13:55:14 -070055 "android.hardware.keymaster@4.0",
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",
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",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060075 ],
76 init_rc: ["keystore.rc"],
77 aidl: {
78 include_dirs: ["frameworks/base/core/java/"],
79 },
80
81 product_variables: {
82 pdk: {
83 enabled: false,
84 },
Branden Archer84e72312019-01-04 10:33:16 -080085 debuggable: {
86 cflags: [
87 // Allow VTS tests running as root to have
88 // additional permissions.
89 "-DGRANT_ROOT_ALL_PERMISSIONS",
90 ],
91 },
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060092 },
Rubin Xu0d0e1132017-12-08 15:50:50 +000093
94 required: ["keystore_cli_v2"],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060095}
96
97cc_binary {
98 name: "keystore_cli",
99 defaults: ["keystore_defaults"],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600100
101 srcs: ["keystore_cli.cpp"],
102 shared_libs: [
Brian Young9371e952018-02-23 18:03:14 +0000103 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600104 "libbinder",
105 "libcrypto",
106 "libcutils",
107 "libhidlbase",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800108 "libkeystore_aidl", // for IKeyStoreService.asInterface()
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600109 "libkeystore_binder",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800110 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600111 "liblog",
112 "libutils",
113 ],
114}
115
116cc_binary {
117 name: "keystore_cli_v2",
118 defaults: ["keystore_defaults"],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600119
120 cflags: [
121 "-DKEYMASTER_NAME_TAGS",
122 "-Wno-unused-parameter",
123 ],
124 srcs: ["keystore_cli_v2.cpp"],
125 shared_libs: [
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500126 "android.hardware.confirmationui@1.0",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500127 "libbinder",
Brian Young9a947d52018-02-23 18:03:14 +0000128 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600129 "libchrome",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500130 "libutils",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600131 "libhidlbase",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700132 "libkeymaster4support",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500133 "libkeystore_aidl",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600134 "libkeystore_binder",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500135 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600136 ],
137
138 local_include_dirs: ["include"],
139}
140
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800141cc_library_shared {
142 name: "libkeystore_parcelables",
143 defaults: ["keystore_defaults"],
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800144 export_include_dirs: ["include"],
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800145 srcs: [
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800146 "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",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800150 ],
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800151 shared_libs: [
Shawn Willden0329a822017-12-04 13:55:14 -0700152 "android.hardware.keymaster@4.0",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800153 "libbinder",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800154 "libhardware",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800155 "libhidlbase",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700156 "libkeymaster4support",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800157 "liblog",
158 "libprotobuf-cpp-lite",
159 "libutils",
David Zeuthenf2a28672020-01-30 16:20:07 -0500160 "libkeystore-attestation-application-id",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800161 ],
162 export_shared_lib_headers: [
Shawn Willden0329a822017-12-04 13:55:14 -0700163 "android.hardware.keymaster@4.0",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800164 "libbinder",
165 "libhidlbase",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700166 "libkeymaster4support",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800167 ],
168}
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600169// Library for keystore clients
170cc_library_shared {
171 name: "libkeystore_binder",
172 defaults: ["keystore_defaults"],
173
174 srcs: [
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600175 "keyblob_utils.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600176 "keystore_client.proto",
177 "keystore_client_impl.cpp",
178 "keystore_get.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600179 ],
180 shared_libs: [
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700181 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600182 "libbinder",
183 "libhidlbase",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700184 "libkeymaster4support",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800185 "libkeystore_aidl",
186 "libkeystore_parcelables",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700187 "liblog",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600188 "libprotobuf-cpp-lite",
189 "libutils",
190 ],
191
192 proto: {
193 type: "lite",
194 export_proto_headers: true,
195 },
Dmitry Dementyeva447b3c2017-10-27 23:09:53 -0700196 aidl: {
197 export_aidl_headers: true,
198 include_dirs: ["frameworks/base/core/java/"],
199 },
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600200 export_include_dirs: ["include"],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600201 export_shared_lib_headers: [
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700202 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600203 "libbinder",
204 "libhidlbase",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800205 "libkeystore_aidl",
206 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600207 ],
208}
209
David Zeuthenf2a28672020-01-30 16:20:07 -0500210// Library used by both keystore and credstore for generating the ASN.1 stored
211// in Tag::ATTESTATION_APPLICATION_ID
212cc_library_shared {
213 name: "libkeystore-attestation-application-id",
214 defaults: ["keystore_defaults"],
215
216 srcs: [
217 ":IKeyAttestationApplicationIdProvider.aidl",
218 "keystore_attestation_id.cpp",
219 "KeyAttestationApplicationId.cpp",
220 "KeyAttestationPackageInfo.cpp",
221 "Signature.cpp",
222 ],
223 shared_libs: [
224 "libbase",
225 "libbinder",
226 "libhidlbase",
227 "liblog",
228 "libutils",
229 "libcrypto",
230 ],
231
232 export_include_dirs: ["include"],
233}
234
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600235// Library for keystore clients using the WiFi HIDL interface
236cc_library_shared {
237 name: "libkeystore-wifi-hidl",
238 defaults: ["keystore_defaults"],
239
240 srcs: ["keystore_get_wifi_hidl.cpp"],
241 shared_libs: [
242 "android.system.wifi.keystore@1.0",
243 "libbase",
244 "libhidlbase",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600245 "liblog",
246 "libutils",
247 ],
248
249 export_include_dirs: ["include"],
250
251 vendor: true,
252}
253
254// Library for unit tests
255cc_library_static {
256 name: "libkeystore_test",
257 defaults: ["keystore_defaults"],
258
Janis Danisevskis8f737ad2017-11-21 12:30:15 -0800259 srcs: [
260 "auth_token_table.cpp",
Eran Messeri2ba77c32018-12-04 12:22:16 +0000261 "blob.cpp",
Janis Danisevskis8f737ad2017-11-21 12:30:15 -0800262 ],
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700263 cflags: [ "-O0", ],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600264 static_libs: ["libgtest_main"],
265 shared_libs: [
Shawn Willden0329a822017-12-04 13:55:14 -0700266 "android.hardware.keymaster@4.0",
Eran Messeri03fc4c82018-08-16 18:53:15 +0100267 "libbinder",
268 "libcrypto",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600269 "libhidlbase",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700270 "libkeymaster4support",
David Zeuthenf2a28672020-01-30 16:20:07 -0500271 "libkeystore-attestation-application-id",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600272 "libutils",
Eran Messeri03fc4c82018-08-16 18:53:15 +0100273 "libkeystore_aidl",
274 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600275 ],
276 export_shared_lib_headers: [
Shawn Willden0329a822017-12-04 13:55:14 -0700277 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600278 "libhidlbase",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700279 "libkeymaster4support",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600280 ],
281
Eran Messeri03fc4c82018-08-16 18:53:15 +0100282 aidl: {
283 include_dirs: ["frameworks/base/core/java/"],
284 },
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600285 export_include_dirs: ["include"],
286}
287
Logan Chien3bd6a512018-02-14 13:57:11 +0800288filegroup {
289 name: "keystore_aidl",
290 srcs: [
291 "binder/android/security/IConfirmationPromptCallback.aidl",
Rob Barnesbb6cabd2018-10-04 17:10:37 -0600292 "binder/android/security/keystore/IKeystoreCertificateChainCallback.aidl",
293 "binder/android/security/keystore/IKeystoreExportKeyCallback.aidl",
294 "binder/android/security/keystore/IKeystoreKeyCharacteristicsCallback.aidl",
295 "binder/android/security/keystore/IKeystoreOperationResultCallback.aidl",
296 "binder/android/security/keystore/IKeystoreResponseCallback.aidl",
297 "binder/android/security/keystore/IKeystoreService.aidl",
Logan Chien3bd6a512018-02-14 13:57:11 +0800298 ],
Dan Willemsen418db442018-09-14 21:28:12 -0700299 path: "binder",
Logan Chien3bd6a512018-02-14 13:57:11 +0800300}
301
302cc_library_shared {
303 name: "libkeystore_aidl",
304 srcs: [":keystore_aidl"],
305 aidl: {
306 export_aidl_headers: true,
307 include_dirs: [
308 "system/security/keystore/binder",
309 ],
310 },
311 shared_libs: [
312 "libbinder",
313 "libcutils",
314 "libhardware",
315 "libhidlbase",
Logan Chien3bd6a512018-02-14 13:57:11 +0800316 "libkeystore_parcelables",
317 "liblog",
318 "libselinux",
319 "libutils",
320 ],
321 export_shared_lib_headers: [
322 "libbinder",
323 "libkeystore_parcelables",
324 ],
325}