blob: 1168e909ab89e48945df19618f985a4dde51a824 [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: {
12 misc_undefined: ["integer"],
13 },
14
15 clang: true,
Janis Danisevskisff3d7f42018-10-08 07:15:09 -070016 cpp_std: "c++17",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060017}
18
19cc_binary {
20 name: "keystore",
21 defaults: ["keystore_defaults"],
22
23 srcs: [
24 ":IKeyAttestationApplicationIdProvider.aidl",
Shawn Willdenfa5702f2017-12-03 15:14:58 -070025 "KeyStore.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060026 "auth_token_table.cpp",
27 "blob.cpp",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -050028 "confirmation_manager.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060029 "entropy.cpp",
30 "grant_store.cpp",
Max Bires33aac2d2018-02-23 10:53:10 -080031 "key_config.proto",
32 "key_proto_handler.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060033 "key_store_service.cpp",
34 "keyblob_utils.cpp",
35 "keymaster_enforcement.cpp",
Janis Danisevskisff3d7f42018-10-08 07:15:09 -070036 "keymaster_worker.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060037 "keystore_attestation_id.cpp",
38 "keystore_main.cpp",
39 "keystore_utils.cpp",
40 "legacy_keymaster_device_wrapper.cpp",
41 "operation.cpp",
Max Bires33aac2d2018-02-23 10:53:10 -080042 "operation_config.proto",
43 "operation_proto_handler.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060044 "permissions.cpp",
45 "user_state.cpp",
46 ],
47 shared_libs: [
David Zeuthenc6eb7cd2017-11-27 11:33:55 -050048 "android.hardware.confirmationui@1.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060049 "android.hardware.keymaster@3.0",
Shawn Willden0329a822017-12-04 13:55:14 -070050 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060051 "android.system.wifi.keystore@1.0",
Shawn Willdenc67a8aa2017-12-03 17:51:29 -070052 "libbase",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060053 "libbinder",
54 "libcrypto",
Brian Claire Young3133c452018-08-31 13:56:49 -070055 "libcutils",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060056 "libhardware",
57 "libhidlbase",
58 "libhidltransport",
59 "libhwbinder",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -070060 "libkeymaster4support",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060061 "libkeymaster_messages",
62 "libkeymaster_portable",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -080063 "libkeystore_aidl",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060064 "libkeystore_binder",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -080065 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060066 "liblog",
Max Bires33aac2d2018-02-23 10:53:10 -080067 "libprotobuf-cpp-lite",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060068 "libselinux",
Max Bires33aac2d2018-02-23 10:53:10 -080069 "libservices",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060070 "libsoftkeymasterdevice",
71 "libutils",
72 "libwifikeystorehal",
73 ],
74 init_rc: ["keystore.rc"],
75 aidl: {
76 include_dirs: ["frameworks/base/core/java/"],
77 },
78
79 product_variables: {
80 pdk: {
81 enabled: false,
82 },
83 },
Rubin Xu0d0e1132017-12-08 15:50:50 +000084
85 required: ["keystore_cli_v2"],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060086}
87
88cc_binary {
89 name: "keystore_cli",
90 defaults: ["keystore_defaults"],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060091
92 srcs: ["keystore_cli.cpp"],
93 shared_libs: [
Brian Young9371e952018-02-23 18:03:14 +000094 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060095 "libbinder",
96 "libcrypto",
97 "libcutils",
98 "libhidlbase",
99 "libhwbinder",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800100 "libkeystore_aidl", // for IKeyStoreService.asInterface()
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600101 "libkeystore_binder",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800102 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600103 "liblog",
104 "libutils",
105 ],
106}
107
108cc_binary {
109 name: "keystore_cli_v2",
110 defaults: ["keystore_defaults"],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600111
112 cflags: [
113 "-DKEYMASTER_NAME_TAGS",
114 "-Wno-unused-parameter",
115 ],
116 srcs: ["keystore_cli_v2.cpp"],
117 shared_libs: [
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500118 "android.hardware.confirmationui@1.0",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500119 "libbinder",
Brian Young9a947d52018-02-23 18:03:14 +0000120 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600121 "libchrome",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500122 "libutils",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600123 "libhidlbase",
124 "libhwbinder",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700125 "libkeymaster4support",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500126 "libkeystore_aidl",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600127 "libkeystore_binder",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500128 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600129 ],
130
131 local_include_dirs: ["include"],
132}
133
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800134cc_library_shared {
135 name: "libkeystore_parcelables",
136 defaults: ["keystore_defaults"],
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800137 export_include_dirs: ["include"],
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800138 srcs: [
139 "KeyAttestationApplicationId.cpp",
140 "KeyAttestationPackageInfo.cpp",
141 "KeymasterArguments.cpp",
142 "KeystoreArguments.cpp",
143 "OperationResult.cpp",
144 "Signature.cpp",
145 "keystore_aidl_hidl_marshalling_utils.cpp",
146 ],
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800147 shared_libs: [
Shawn Willden0329a822017-12-04 13:55:14 -0700148 "android.hardware.keymaster@4.0",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800149 "libbinder",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800150 "libhardware",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800151 "libhidlbase",
152 "libhwbinder",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700153 "libkeymaster4support",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800154 "liblog",
155 "libprotobuf-cpp-lite",
156 "libutils",
157 ],
158 export_shared_lib_headers: [
Shawn Willden0329a822017-12-04 13:55:14 -0700159 "android.hardware.keymaster@4.0",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800160 "libbinder",
161 "libhidlbase",
162 "libhwbinder",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700163 "libkeymaster4support",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800164 ],
165}
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600166// Library for keystore clients
167cc_library_shared {
168 name: "libkeystore_binder",
169 defaults: ["keystore_defaults"],
170
171 srcs: [
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600172 "keyblob_utils.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600173 "keystore_client.proto",
174 "keystore_client_impl.cpp",
175 "keystore_get.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600176 ],
177 shared_libs: [
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700178 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600179 "libbinder",
180 "libhidlbase",
181 "libhwbinder",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700182 "libkeymaster4support",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800183 "libkeystore_aidl",
184 "libkeystore_parcelables",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700185 "liblog",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600186 "libprotobuf-cpp-lite",
187 "libutils",
188 ],
189
190 proto: {
191 type: "lite",
192 export_proto_headers: true,
193 },
Dmitry Dementyeva447b3c2017-10-27 23:09:53 -0700194 aidl: {
195 export_aidl_headers: true,
196 include_dirs: ["frameworks/base/core/java/"],
197 },
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600198 export_include_dirs: ["include"],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600199 export_shared_lib_headers: [
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700200 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600201 "libbinder",
202 "libhidlbase",
203 "libhwbinder",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800204 "libkeystore_aidl",
205 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600206 ],
207}
208
209// Library for keystore clients using the WiFi HIDL interface
210cc_library_shared {
211 name: "libkeystore-wifi-hidl",
212 defaults: ["keystore_defaults"],
213
214 srcs: ["keystore_get_wifi_hidl.cpp"],
215 shared_libs: [
216 "android.system.wifi.keystore@1.0",
217 "libbase",
218 "libhidlbase",
219 "libhidltransport",
220 "liblog",
221 "libutils",
222 ],
223
224 export_include_dirs: ["include"],
225
226 vendor: true,
227}
228
229// Library for unit tests
230cc_library_static {
231 name: "libkeystore_test",
232 defaults: ["keystore_defaults"],
233
Janis Danisevskis8f737ad2017-11-21 12:30:15 -0800234 srcs: [
Eran Messeri03fc4c82018-08-16 18:53:15 +0100235 ":IKeyAttestationApplicationIdProvider.aidl",
Janis Danisevskis8f737ad2017-11-21 12:30:15 -0800236 "auth_token_table.cpp",
Eran Messeri03fc4c82018-08-16 18:53:15 +0100237 "keystore_attestation_id.cpp",
238 "KeyAttestationApplicationId.cpp",
239 "KeyAttestationPackageInfo.cpp",
240 "Signature.cpp",
Janis Danisevskis8f737ad2017-11-21 12:30:15 -0800241 ],
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700242 cflags: [ "-O0", ],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600243 static_libs: ["libgtest_main"],
244 shared_libs: [
Shawn Willden0329a822017-12-04 13:55:14 -0700245 "android.hardware.keymaster@4.0",
Eran Messeri03fc4c82018-08-16 18:53:15 +0100246 "libbinder",
247 "libcrypto",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600248 "libhidlbase",
249 "libhwbinder",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700250 "libkeymaster4support",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600251 "libutils",
Eran Messeri03fc4c82018-08-16 18:53:15 +0100252 "libkeystore_aidl",
253 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600254 ],
255 export_shared_lib_headers: [
Shawn Willden0329a822017-12-04 13:55:14 -0700256 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600257 "libhidlbase",
258 "libhwbinder",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700259 "libkeymaster4support",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600260 ],
261
Eran Messeri03fc4c82018-08-16 18:53:15 +0100262 aidl: {
263 include_dirs: ["frameworks/base/core/java/"],
264 },
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600265 export_include_dirs: ["include"],
266}
267
Logan Chien3bd6a512018-02-14 13:57:11 +0800268filegroup {
269 name: "keystore_aidl",
270 srcs: [
271 "binder/android/security/IConfirmationPromptCallback.aidl",
272 "binder/android/security/IKeystoreService.aidl",
273 ],
Dan Willemsen418db442018-09-14 21:28:12 -0700274 path: "binder",
Logan Chien3bd6a512018-02-14 13:57:11 +0800275}
276
277cc_library_shared {
278 name: "libkeystore_aidl",
279 srcs: [":keystore_aidl"],
280 aidl: {
281 export_aidl_headers: true,
282 include_dirs: [
283 "system/security/keystore/binder",
284 ],
285 },
286 shared_libs: [
287 "libbinder",
288 "libcutils",
289 "libhardware",
290 "libhidlbase",
291 "libhidltransport",
292 "libhwbinder",
293 "libkeystore_parcelables",
294 "liblog",
295 "libselinux",
296 "libutils",
297 ],
298 export_shared_lib_headers: [
299 "libbinder",
300 "libkeystore_parcelables",
301 ],
302}