blob: c1d81b3f468a8eda6861c251b4a50e80d73afbea [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",
Janis Danisevskisff3d7f42018-10-08 07:15:09 -070035 "keymaster_worker.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060036 "keystore_attestation_id.cpp",
37 "keystore_main.cpp",
38 "keystore_utils.cpp",
39 "legacy_keymaster_device_wrapper.cpp",
40 "operation.cpp",
Max Bires33aac2d2018-02-23 10:53:10 -080041 "operation_config.proto",
42 "operation_proto_handler.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060043 "permissions.cpp",
44 "user_state.cpp",
45 ],
46 shared_libs: [
David Zeuthenc6eb7cd2017-11-27 11:33:55 -050047 "android.hardware.confirmationui@1.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060048 "android.hardware.keymaster@3.0",
Shawn Willden0329a822017-12-04 13:55:14 -070049 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060050 "android.system.wifi.keystore@1.0",
Shawn Willdenc67a8aa2017-12-03 17:51:29 -070051 "libbase",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060052 "libbinder",
53 "libcrypto",
Brian Claire Young3133c452018-08-31 13:56:49 -070054 "libcutils",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060055 "libhardware",
56 "libhidlbase",
57 "libhidltransport",
58 "libhwbinder",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -070059 "libkeymaster4support",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060060 "libkeymaster_messages",
61 "libkeymaster_portable",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -080062 "libkeystore_aidl",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060063 "libkeystore_binder",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -080064 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060065 "liblog",
Max Bires33aac2d2018-02-23 10:53:10 -080066 "libprotobuf-cpp-lite",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060067 "libselinux",
Max Bires33aac2d2018-02-23 10:53:10 -080068 "libservices",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060069 "libsoftkeymasterdevice",
70 "libutils",
71 "libwifikeystorehal",
72 ],
73 init_rc: ["keystore.rc"],
74 aidl: {
75 include_dirs: ["frameworks/base/core/java/"],
76 },
77
78 product_variables: {
79 pdk: {
80 enabled: false,
81 },
82 },
Rubin Xu0d0e1132017-12-08 15:50:50 +000083
84 required: ["keystore_cli_v2"],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060085}
86
87cc_binary {
88 name: "keystore_cli",
89 defaults: ["keystore_defaults"],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060090
91 srcs: ["keystore_cli.cpp"],
92 shared_libs: [
Brian Young9371e952018-02-23 18:03:14 +000093 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060094 "libbinder",
95 "libcrypto",
96 "libcutils",
97 "libhidlbase",
98 "libhwbinder",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -080099 "libkeystore_aidl", // for IKeyStoreService.asInterface()
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600100 "libkeystore_binder",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800101 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600102 "liblog",
103 "libutils",
104 ],
105}
106
107cc_binary {
108 name: "keystore_cli_v2",
109 defaults: ["keystore_defaults"],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600110
111 cflags: [
112 "-DKEYMASTER_NAME_TAGS",
113 "-Wno-unused-parameter",
114 ],
115 srcs: ["keystore_cli_v2.cpp"],
116 shared_libs: [
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500117 "android.hardware.confirmationui@1.0",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500118 "libbinder",
Brian Young9a947d52018-02-23 18:03:14 +0000119 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600120 "libchrome",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500121 "libutils",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600122 "libhidlbase",
123 "libhwbinder",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700124 "libkeymaster4support",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500125 "libkeystore_aidl",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600126 "libkeystore_binder",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500127 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600128 ],
129
130 local_include_dirs: ["include"],
131}
132
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800133cc_library_shared {
134 name: "libkeystore_parcelables",
135 defaults: ["keystore_defaults"],
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800136 export_include_dirs: ["include"],
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800137 srcs: [
138 "KeyAttestationApplicationId.cpp",
139 "KeyAttestationPackageInfo.cpp",
140 "KeymasterArguments.cpp",
Rob Barnesbb6cabd2018-10-04 17:10:37 -0600141 "keystore_aidl_hidl_marshalling_utils.cpp",
142 "KeystoreResponse.cpp",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800143 "OperationResult.cpp",
144 "Signature.cpp",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800145 ],
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800146 shared_libs: [
Shawn Willden0329a822017-12-04 13:55:14 -0700147 "android.hardware.keymaster@4.0",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800148 "libbinder",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800149 "libhardware",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800150 "libhidlbase",
151 "libhwbinder",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700152 "libkeymaster4support",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800153 "liblog",
154 "libprotobuf-cpp-lite",
155 "libutils",
156 ],
157 export_shared_lib_headers: [
Shawn Willden0329a822017-12-04 13:55:14 -0700158 "android.hardware.keymaster@4.0",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800159 "libbinder",
160 "libhidlbase",
161 "libhwbinder",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700162 "libkeymaster4support",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800163 ],
164}
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600165// Library for keystore clients
166cc_library_shared {
167 name: "libkeystore_binder",
168 defaults: ["keystore_defaults"],
169
170 srcs: [
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600171 "keyblob_utils.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600172 "keystore_client.proto",
173 "keystore_client_impl.cpp",
174 "keystore_get.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600175 ],
176 shared_libs: [
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700177 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600178 "libbinder",
179 "libhidlbase",
180 "libhwbinder",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700181 "libkeymaster4support",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800182 "libkeystore_aidl",
183 "libkeystore_parcelables",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700184 "liblog",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600185 "libprotobuf-cpp-lite",
186 "libutils",
187 ],
188
189 proto: {
190 type: "lite",
191 export_proto_headers: true,
192 },
Dmitry Dementyeva447b3c2017-10-27 23:09:53 -0700193 aidl: {
194 export_aidl_headers: true,
195 include_dirs: ["frameworks/base/core/java/"],
196 },
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600197 export_include_dirs: ["include"],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600198 export_shared_lib_headers: [
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700199 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600200 "libbinder",
201 "libhidlbase",
202 "libhwbinder",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800203 "libkeystore_aidl",
204 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600205 ],
206}
207
208// Library for keystore clients using the WiFi HIDL interface
209cc_library_shared {
210 name: "libkeystore-wifi-hidl",
211 defaults: ["keystore_defaults"],
212
213 srcs: ["keystore_get_wifi_hidl.cpp"],
214 shared_libs: [
215 "android.system.wifi.keystore@1.0",
216 "libbase",
217 "libhidlbase",
218 "libhidltransport",
219 "liblog",
220 "libutils",
221 ],
222
223 export_include_dirs: ["include"],
224
225 vendor: true,
226}
227
228// Library for unit tests
229cc_library_static {
230 name: "libkeystore_test",
231 defaults: ["keystore_defaults"],
232
Janis Danisevskis8f737ad2017-11-21 12:30:15 -0800233 srcs: [
Eran Messeri03fc4c82018-08-16 18:53:15 +0100234 ":IKeyAttestationApplicationIdProvider.aidl",
Janis Danisevskis8f737ad2017-11-21 12:30:15 -0800235 "auth_token_table.cpp",
Eran Messeri2ba77c32018-12-04 12:22:16 +0000236 "blob.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",
Rob Barnesbb6cabd2018-10-04 17:10:37 -0600272 "binder/android/security/keystore/IKeystoreCertificateChainCallback.aidl",
273 "binder/android/security/keystore/IKeystoreExportKeyCallback.aidl",
274 "binder/android/security/keystore/IKeystoreKeyCharacteristicsCallback.aidl",
275 "binder/android/security/keystore/IKeystoreOperationResultCallback.aidl",
276 "binder/android/security/keystore/IKeystoreResponseCallback.aidl",
277 "binder/android/security/keystore/IKeystoreService.aidl",
Logan Chien3bd6a512018-02-14 13:57:11 +0800278 ],
Dan Willemsen418db442018-09-14 21:28:12 -0700279 path: "binder",
Logan Chien3bd6a512018-02-14 13:57:11 +0800280}
281
282cc_library_shared {
283 name: "libkeystore_aidl",
284 srcs: [":keystore_aidl"],
285 aidl: {
286 export_aidl_headers: true,
287 include_dirs: [
288 "system/security/keystore/binder",
289 ],
290 },
291 shared_libs: [
292 "libbinder",
293 "libcutils",
294 "libhardware",
295 "libhidlbase",
296 "libhidltransport",
297 "libhwbinder",
298 "libkeystore_parcelables",
299 "liblog",
300 "libselinux",
301 "libutils",
302 ],
303 export_shared_lib_headers: [
304 "libbinder",
305 "libkeystore_parcelables",
306 ],
307}