blob: 9bf6cf37c94d1c9831cec8c6461791c6446a89cb [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,
16}
17
18cc_binary {
19 name: "keystore",
20 defaults: ["keystore_defaults"],
21
22 srcs: [
23 ":IKeyAttestationApplicationIdProvider.aidl",
Shawn Willdenfa5702f2017-12-03 15:14:58 -070024 "KeyStore.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060025 "auth_token_table.cpp",
26 "blob.cpp",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -050027 "confirmation_manager.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060028 "entropy.cpp",
29 "grant_store.cpp",
Max Bires33aac2d2018-02-23 10:53:10 -080030 "key_config.proto",
31 "key_proto_handler.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060032 "key_store_service.cpp",
33 "keyblob_utils.cpp",
34 "keymaster_enforcement.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060035 "keystore_attestation_id.cpp",
36 "keystore_main.cpp",
37 "keystore_utils.cpp",
38 "legacy_keymaster_device_wrapper.cpp",
39 "operation.cpp",
Max Bires33aac2d2018-02-23 10:53:10 -080040 "operation_config.proto",
41 "operation_proto_handler.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060042 "permissions.cpp",
43 "user_state.cpp",
44 ],
45 shared_libs: [
David Zeuthenc6eb7cd2017-11-27 11:33:55 -050046 "android.hardware.confirmationui@1.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060047 "android.hardware.keymaster@3.0",
Shawn Willden0329a822017-12-04 13:55:14 -070048 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060049 "android.system.wifi.keystore@1.0",
Shawn Willdenc67a8aa2017-12-03 17:51:29 -070050 "libbase",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060051 "libbinder",
52 "libcrypto",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060053 "libhardware",
54 "libhidlbase",
55 "libhidltransport",
56 "libhwbinder",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -070057 "libkeymaster4support",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060058 "libkeymaster_messages",
59 "libkeymaster_portable",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -080060 "libkeystore_aidl",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060061 "libkeystore_binder",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -080062 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060063 "liblog",
Max Bires33aac2d2018-02-23 10:53:10 -080064 "libprotobuf-cpp-lite",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060065 "libselinux",
Max Bires33aac2d2018-02-23 10:53:10 -080066 "libservices",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060067 "libsoftkeymasterdevice",
68 "libutils",
69 "libwifikeystorehal",
70 ],
71 init_rc: ["keystore.rc"],
72 aidl: {
73 include_dirs: ["frameworks/base/core/java/"],
74 },
75
76 product_variables: {
77 pdk: {
78 enabled: false,
79 },
80 },
Rubin Xu0d0e1132017-12-08 15:50:50 +000081
82 required: ["keystore_cli_v2"],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060083}
84
85cc_binary {
86 name: "keystore_cli",
87 defaults: ["keystore_defaults"],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060088
89 srcs: ["keystore_cli.cpp"],
90 shared_libs: [
Brian Young9371e952018-02-23 18:03:14 +000091 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060092 "libbinder",
93 "libcrypto",
94 "libcutils",
95 "libhidlbase",
96 "libhwbinder",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -080097 "libkeystore_aidl", // for IKeyStoreService.asInterface()
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060098 "libkeystore_binder",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -080099 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600100 "liblog",
101 "libutils",
102 ],
103}
104
105cc_binary {
106 name: "keystore_cli_v2",
107 defaults: ["keystore_defaults"],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600108
109 cflags: [
110 "-DKEYMASTER_NAME_TAGS",
111 "-Wno-unused-parameter",
112 ],
113 srcs: ["keystore_cli_v2.cpp"],
114 shared_libs: [
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500115 "android.hardware.confirmationui@1.0",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500116 "libbinder",
Brian Young9a947d52018-02-23 18:03:14 +0000117 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600118 "libchrome",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500119 "libutils",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600120 "libhidlbase",
121 "libhwbinder",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700122 "libkeymaster4support",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500123 "libkeystore_aidl",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600124 "libkeystore_binder",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500125 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600126 ],
127
128 local_include_dirs: ["include"],
129}
130
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800131cc_library_shared {
132 name: "libkeystore_parcelables",
133 defaults: ["keystore_defaults"],
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800134 export_include_dirs: ["include"],
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800135 srcs: [
136 "KeyAttestationApplicationId.cpp",
137 "KeyAttestationPackageInfo.cpp",
138 "KeymasterArguments.cpp",
139 "KeystoreArguments.cpp",
140 "OperationResult.cpp",
141 "Signature.cpp",
142 "keystore_aidl_hidl_marshalling_utils.cpp",
143 ],
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800144 shared_libs: [
Shawn Willden0329a822017-12-04 13:55:14 -0700145 "android.hardware.keymaster@4.0",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800146 "libbinder",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800147 "libhardware",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800148 "libhidlbase",
149 "libhwbinder",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700150 "libkeymaster4support",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800151 "liblog",
152 "libprotobuf-cpp-lite",
153 "libutils",
154 ],
155 export_shared_lib_headers: [
Shawn Willden0329a822017-12-04 13:55:14 -0700156 "android.hardware.keymaster@4.0",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800157 "libbinder",
158 "libhidlbase",
159 "libhwbinder",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700160 "libkeymaster4support",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800161 ],
162}
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600163// Library for keystore clients
164cc_library_shared {
165 name: "libkeystore_binder",
166 defaults: ["keystore_defaults"],
167
168 srcs: [
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600169 "keyblob_utils.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600170 "keystore_client.proto",
171 "keystore_client_impl.cpp",
172 "keystore_get.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600173 ],
174 shared_libs: [
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700175 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600176 "libbinder",
177 "libhidlbase",
178 "libhwbinder",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700179 "libkeymaster4support",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800180 "libkeystore_aidl",
181 "libkeystore_parcelables",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700182 "liblog",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600183 "libprotobuf-cpp-lite",
184 "libutils",
185 ],
186
187 proto: {
188 type: "lite",
189 export_proto_headers: true,
190 },
Dmitry Dementyeva447b3c2017-10-27 23:09:53 -0700191 aidl: {
192 export_aidl_headers: true,
193 include_dirs: ["frameworks/base/core/java/"],
194 },
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600195 export_include_dirs: ["include"],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600196 export_shared_lib_headers: [
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700197 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600198 "libbinder",
199 "libhidlbase",
200 "libhwbinder",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800201 "libkeystore_aidl",
202 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600203 ],
204}
205
206// Library for keystore clients using the WiFi HIDL interface
207cc_library_shared {
208 name: "libkeystore-wifi-hidl",
209 defaults: ["keystore_defaults"],
210
211 srcs: ["keystore_get_wifi_hidl.cpp"],
212 shared_libs: [
213 "android.system.wifi.keystore@1.0",
214 "libbase",
215 "libhidlbase",
216 "libhidltransport",
217 "liblog",
218 "libutils",
219 ],
220
221 export_include_dirs: ["include"],
222
223 vendor: true,
224}
225
226// Library for unit tests
227cc_library_static {
228 name: "libkeystore_test",
229 defaults: ["keystore_defaults"],
230
Janis Danisevskis8f737ad2017-11-21 12:30:15 -0800231 srcs: [
Eran Messeri03fc4c82018-08-16 18:53:15 +0100232 ":IKeyAttestationApplicationIdProvider.aidl",
Janis Danisevskis8f737ad2017-11-21 12:30:15 -0800233 "auth_token_table.cpp",
Eran Messeri03fc4c82018-08-16 18:53:15 +0100234 "keystore_attestation_id.cpp",
235 "KeyAttestationApplicationId.cpp",
236 "KeyAttestationPackageInfo.cpp",
237 "Signature.cpp",
Janis Danisevskis8f737ad2017-11-21 12:30:15 -0800238 ],
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700239 cflags: [ "-O0", ],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600240 static_libs: ["libgtest_main"],
241 shared_libs: [
Shawn Willden0329a822017-12-04 13:55:14 -0700242 "android.hardware.keymaster@4.0",
Eran Messeri03fc4c82018-08-16 18:53:15 +0100243 "libbinder",
244 "libcrypto",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600245 "libhidlbase",
246 "libhwbinder",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700247 "libkeymaster4support",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600248 "libutils",
Eran Messeri03fc4c82018-08-16 18:53:15 +0100249 "libkeystore_aidl",
250 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600251 ],
252 export_shared_lib_headers: [
Shawn Willden0329a822017-12-04 13:55:14 -0700253 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600254 "libhidlbase",
255 "libhwbinder",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700256 "libkeymaster4support",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600257 ],
258
Eran Messeri03fc4c82018-08-16 18:53:15 +0100259 aidl: {
260 include_dirs: ["frameworks/base/core/java/"],
261 },
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600262 export_include_dirs: ["include"],
263}
264
Logan Chien3bd6a512018-02-14 13:57:11 +0800265filegroup {
266 name: "keystore_aidl",
267 srcs: [
268 "binder/android/security/IConfirmationPromptCallback.aidl",
269 "binder/android/security/IKeystoreService.aidl",
270 ],
271}
272
273cc_library_shared {
274 name: "libkeystore_aidl",
275 srcs: [":keystore_aidl"],
276 aidl: {
277 export_aidl_headers: true,
278 include_dirs: [
279 "system/security/keystore/binder",
280 ],
281 },
282 shared_libs: [
283 "libbinder",
284 "libcutils",
285 "libhardware",
286 "libhidlbase",
287 "libhidltransport",
288 "libhwbinder",
289 "libkeystore_parcelables",
290 "liblog",
291 "libselinux",
292 "libutils",
293 ],
294 export_shared_lib_headers: [
295 "libbinder",
296 "libkeystore_parcelables",
297 ],
298}
299
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600300subdirs = ["tests"]