blob: cbb174d48112ffcd8427b7e2d261b92dff32d4ad [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",
Shawn Willden611f0902020-01-16 13:27:49 -070058 "android.hardware.keymaster@4.1",
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",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -070065 "libkeymaster4support",
Shawn Willden611f0902020-01-16 13:27:49 -070066 "libkeymaster4_1support",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060067 "libkeymaster_messages",
68 "libkeymaster_portable",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -080069 "libkeystore_aidl",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060070 "libkeystore_binder",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -080071 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060072 "liblog",
Max Bires33aac2d2018-02-23 10:53:10 -080073 "libprotobuf-cpp-lite",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060074 "libselinux",
Max Bires33aac2d2018-02-23 10:53:10 -080075 "libservices",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060076 "libsoftkeymasterdevice",
77 "libutils",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060078 ],
79 init_rc: ["keystore.rc"],
80 aidl: {
81 include_dirs: ["frameworks/base/core/java/"],
82 },
83
84 product_variables: {
85 pdk: {
86 enabled: false,
87 },
Branden Archer84e72312019-01-04 10:33:16 -080088 debuggable: {
89 cflags: [
90 // Allow VTS tests running as root to have
91 // additional permissions.
92 "-DGRANT_ROOT_ALL_PERMISSIONS",
93 ],
94 },
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060095 },
Rubin Xu0d0e1132017-12-08 15:50:50 +000096
97 required: ["keystore_cli_v2"],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060098}
99
100cc_binary {
101 name: "keystore_cli",
102 defaults: ["keystore_defaults"],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600103
104 srcs: ["keystore_cli.cpp"],
105 shared_libs: [
Brian Young9371e952018-02-23 18:03:14 +0000106 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600107 "libbinder",
108 "libcrypto",
109 "libcutils",
110 "libhidlbase",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800111 "libkeystore_aidl", // for IKeyStoreService.asInterface()
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600112 "libkeystore_binder",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800113 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600114 "liblog",
115 "libutils",
116 ],
117}
118
119cc_binary {
120 name: "keystore_cli_v2",
121 defaults: ["keystore_defaults"],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600122
123 cflags: [
124 "-DKEYMASTER_NAME_TAGS",
125 "-Wno-unused-parameter",
126 ],
127 srcs: ["keystore_cli_v2.cpp"],
128 shared_libs: [
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500129 "android.hardware.confirmationui@1.0",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500130 "libbinder",
Brian Young9a947d52018-02-23 18:03:14 +0000131 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600132 "libchrome",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500133 "libutils",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600134 "libhidlbase",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700135 "libkeymaster4support",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500136 "libkeystore_aidl",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600137 "libkeystore_binder",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500138 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600139 ],
140
141 local_include_dirs: ["include"],
142}
143
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800144cc_library_shared {
145 name: "libkeystore_parcelables",
146 defaults: ["keystore_defaults"],
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800147 export_include_dirs: ["include"],
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800148 srcs: [
149 "KeyAttestationApplicationId.cpp",
150 "KeyAttestationPackageInfo.cpp",
151 "KeymasterArguments.cpp",
Rob Barnesbb6cabd2018-10-04 17:10:37 -0600152 "keystore_aidl_hidl_marshalling_utils.cpp",
153 "KeystoreResponse.cpp",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800154 "OperationResult.cpp",
155 "Signature.cpp",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800156 ],
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800157 shared_libs: [
Shawn Willden0329a822017-12-04 13:55:14 -0700158 "android.hardware.keymaster@4.0",
Shawn Willden611f0902020-01-16 13:27:49 -0700159 "android.hardware.keymaster@4.1",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800160 "libbinder",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800161 "libhardware",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800162 "libhidlbase",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700163 "libkeymaster4support",
Shawn Willden611f0902020-01-16 13:27:49 -0700164 "libkeymaster4_1support",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800165 "liblog",
166 "libprotobuf-cpp-lite",
167 "libutils",
168 ],
169 export_shared_lib_headers: [
Shawn Willden0329a822017-12-04 13:55:14 -0700170 "android.hardware.keymaster@4.0",
Shawn Willden611f0902020-01-16 13:27:49 -0700171 "android.hardware.keymaster@4.1",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800172 "libbinder",
173 "libhidlbase",
Shawn Willden611f0902020-01-16 13:27:49 -0700174 "libkeymaster4_1support",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800175 ],
176}
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600177// Library for keystore clients
178cc_library_shared {
179 name: "libkeystore_binder",
180 defaults: ["keystore_defaults"],
181
182 srcs: [
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600183 "keyblob_utils.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600184 "keystore_client.proto",
185 "keystore_client_impl.cpp",
186 "keystore_get.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600187 ],
188 shared_libs: [
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700189 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600190 "libbinder",
191 "libhidlbase",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700192 "libkeymaster4support",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800193 "libkeystore_aidl",
194 "libkeystore_parcelables",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700195 "liblog",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600196 "libprotobuf-cpp-lite",
197 "libutils",
198 ],
199
200 proto: {
201 type: "lite",
202 export_proto_headers: true,
203 },
Dmitry Dementyeva447b3c2017-10-27 23:09:53 -0700204 aidl: {
205 export_aidl_headers: true,
206 include_dirs: ["frameworks/base/core/java/"],
207 },
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600208 export_include_dirs: ["include"],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600209 export_shared_lib_headers: [
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700210 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600211 "libbinder",
212 "libhidlbase",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800213 "libkeystore_aidl",
214 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600215 ],
216}
217
218// Library for keystore clients using the WiFi HIDL interface
219cc_library_shared {
220 name: "libkeystore-wifi-hidl",
221 defaults: ["keystore_defaults"],
222
223 srcs: ["keystore_get_wifi_hidl.cpp"],
224 shared_libs: [
225 "android.system.wifi.keystore@1.0",
226 "libbase",
227 "libhidlbase",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600228 "liblog",
229 "libutils",
230 ],
231
232 export_include_dirs: ["include"],
233
234 vendor: true,
235}
236
237// Library for unit tests
238cc_library_static {
239 name: "libkeystore_test",
240 defaults: ["keystore_defaults"],
241
Janis Danisevskis8f737ad2017-11-21 12:30:15 -0800242 srcs: [
Eran Messeri03fc4c82018-08-16 18:53:15 +0100243 ":IKeyAttestationApplicationIdProvider.aidl",
Janis Danisevskis8f737ad2017-11-21 12:30:15 -0800244 "auth_token_table.cpp",
Eran Messeri2ba77c32018-12-04 12:22:16 +0000245 "blob.cpp",
Eran Messeri03fc4c82018-08-16 18:53:15 +0100246 "keystore_attestation_id.cpp",
247 "KeyAttestationApplicationId.cpp",
248 "KeyAttestationPackageInfo.cpp",
249 "Signature.cpp",
Janis Danisevskis8f737ad2017-11-21 12:30:15 -0800250 ],
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700251 cflags: [ "-O0", ],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600252 static_libs: ["libgtest_main"],
253 shared_libs: [
Shawn Willden0329a822017-12-04 13:55:14 -0700254 "android.hardware.keymaster@4.0",
Eran Messeri03fc4c82018-08-16 18:53:15 +0100255 "libbinder",
256 "libcrypto",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600257 "libhidlbase",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700258 "libkeymaster4support",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600259 "libutils",
Eran Messeri03fc4c82018-08-16 18:53:15 +0100260 "libkeystore_aidl",
261 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600262 ],
263 export_shared_lib_headers: [
Shawn Willden0329a822017-12-04 13:55:14 -0700264 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600265 "libhidlbase",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700266 "libkeymaster4support",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600267 ],
268
Eran Messeri03fc4c82018-08-16 18:53:15 +0100269 aidl: {
270 include_dirs: ["frameworks/base/core/java/"],
271 },
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600272 export_include_dirs: ["include"],
273}
274
Logan Chien3bd6a512018-02-14 13:57:11 +0800275filegroup {
276 name: "keystore_aidl",
277 srcs: [
278 "binder/android/security/IConfirmationPromptCallback.aidl",
Rob Barnesbb6cabd2018-10-04 17:10:37 -0600279 "binder/android/security/keystore/IKeystoreCertificateChainCallback.aidl",
280 "binder/android/security/keystore/IKeystoreExportKeyCallback.aidl",
281 "binder/android/security/keystore/IKeystoreKeyCharacteristicsCallback.aidl",
282 "binder/android/security/keystore/IKeystoreOperationResultCallback.aidl",
283 "binder/android/security/keystore/IKeystoreResponseCallback.aidl",
284 "binder/android/security/keystore/IKeystoreService.aidl",
Logan Chien3bd6a512018-02-14 13:57:11 +0800285 ],
Dan Willemsen418db442018-09-14 21:28:12 -0700286 path: "binder",
Logan Chien3bd6a512018-02-14 13:57:11 +0800287}
288
289cc_library_shared {
290 name: "libkeystore_aidl",
291 srcs: [":keystore_aidl"],
292 aidl: {
293 export_aidl_headers: true,
294 include_dirs: [
295 "system/security/keystore/binder",
296 ],
297 },
298 shared_libs: [
299 "libbinder",
300 "libcutils",
301 "libhardware",
302 "libhidlbase",
Logan Chien3bd6a512018-02-14 13:57:11 +0800303 "libkeystore_parcelables",
304 "liblog",
305 "libselinux",
306 "libutils",
307 ],
308 export_shared_lib_headers: [
309 "libbinder",
310 "libkeystore_parcelables",
311 ],
312}