blob: 9e882e468db99f9f87b6effc73aac484a1de0dc7 [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",
30 "key_store_service.cpp",
31 "keyblob_utils.cpp",
32 "keymaster_enforcement.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060033 "keystore_attestation_id.cpp",
34 "keystore_main.cpp",
35 "keystore_utils.cpp",
36 "legacy_keymaster_device_wrapper.cpp",
37 "operation.cpp",
38 "permissions.cpp",
39 "user_state.cpp",
40 ],
41 shared_libs: [
David Zeuthenc6eb7cd2017-11-27 11:33:55 -050042 "android.hardware.confirmationui@1.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060043 "android.hardware.keymaster@3.0",
Shawn Willden0329a822017-12-04 13:55:14 -070044 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060045 "android.system.wifi.keystore@1.0",
Shawn Willdenc67a8aa2017-12-03 17:51:29 -070046 "libbase",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060047 "libbinder",
48 "libcrypto",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060049 "libhardware",
50 "libhidlbase",
51 "libhidltransport",
52 "libhwbinder",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -070053 "libkeymaster4support",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060054 "libkeymaster_messages",
55 "libkeymaster_portable",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -080056 "libkeystore_aidl",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060057 "libkeystore_binder",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -080058 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060059 "liblog",
60 "libselinux",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060061 "libsoftkeymasterdevice",
62 "libutils",
63 "libwifikeystorehal",
64 ],
65 init_rc: ["keystore.rc"],
66 aidl: {
67 include_dirs: ["frameworks/base/core/java/"],
68 },
69
70 product_variables: {
71 pdk: {
72 enabled: false,
73 },
74 },
Rubin Xu0d0e1132017-12-08 15:50:50 +000075
76 required: ["keystore_cli_v2"],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060077}
78
79cc_binary {
80 name: "keystore_cli",
81 defaults: ["keystore_defaults"],
82 tags: ["debug"],
83
84 srcs: ["keystore_cli.cpp"],
85 shared_libs: [
86 "android.hardware.keymaster@3.0",
87 "libbinder",
88 "libcrypto",
89 "libcutils",
90 "libhidlbase",
91 "libhwbinder",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -080092 "libkeystore_aidl", // for IKeyStoreService.asInterface()
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060093 "libkeystore_binder",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -080094 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -060095 "liblog",
96 "libutils",
97 ],
98}
99
100cc_binary {
101 name: "keystore_cli_v2",
102 defaults: ["keystore_defaults"],
103 tags: ["debug"],
104
105 cflags: [
106 "-DKEYMASTER_NAME_TAGS",
107 "-Wno-unused-parameter",
108 ],
109 srcs: ["keystore_cli_v2.cpp"],
110 shared_libs: [
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500111 "android.hardware.confirmationui@1.0",
Brian Young1b759292018-01-29 23:57:29 +0000112 "android.hardware.keymaster@3.0",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500113 "libbinder",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600114 "libchrome",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500115 "libutils",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600116 "libhidlbase",
117 "libhwbinder",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700118 "libkeymaster4support",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500119 "libkeystore_aidl",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600120 "libkeystore_binder",
David Zeuthenc6eb7cd2017-11-27 11:33:55 -0500121 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600122 ],
123
124 local_include_dirs: ["include"],
125}
126
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800127cc_library_shared {
128 name: "libkeystore_parcelables",
129 defaults: ["keystore_defaults"],
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800130 export_include_dirs: ["include"],
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800131 srcs: [
132 "KeyAttestationApplicationId.cpp",
133 "KeyAttestationPackageInfo.cpp",
134 "KeymasterArguments.cpp",
135 "KeystoreArguments.cpp",
136 "OperationResult.cpp",
137 "Signature.cpp",
138 "keystore_aidl_hidl_marshalling_utils.cpp",
139 ],
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800140 shared_libs: [
Shawn Willden0329a822017-12-04 13:55:14 -0700141 "android.hardware.keymaster@4.0",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800142 "libbinder",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800143 "libhardware",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800144 "libhidlbase",
145 "libhwbinder",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700146 "libkeymaster4support",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800147 "liblog",
148 "libprotobuf-cpp-lite",
149 "libutils",
150 ],
151 export_shared_lib_headers: [
Shawn Willden0329a822017-12-04 13:55:14 -0700152 "android.hardware.keymaster@4.0",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800153 "libbinder",
154 "libhidlbase",
155 "libhwbinder",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700156 "libkeymaster4support",
Dmitry Dementyevaf2968c2017-11-21 20:19:03 -0800157 ],
158}
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600159// Library for keystore clients
160cc_library_shared {
161 name: "libkeystore_binder",
162 defaults: ["keystore_defaults"],
163
164 srcs: [
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600165 "keyblob_utils.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600166 "keystore_client.proto",
167 "keystore_client_impl.cpp",
168 "keystore_get.cpp",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600169 ],
170 shared_libs: [
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700171 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600172 "libbinder",
173 "libhidlbase",
174 "libhwbinder",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700175 "libkeymaster4support",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800176 "libkeystore_aidl",
177 "libkeystore_parcelables",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700178 "liblog",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600179 "libprotobuf-cpp-lite",
180 "libutils",
181 ],
182
183 proto: {
184 type: "lite",
185 export_proto_headers: true,
186 },
Dmitry Dementyeva447b3c2017-10-27 23:09:53 -0700187 aidl: {
188 export_aidl_headers: true,
189 include_dirs: ["frameworks/base/core/java/"],
190 },
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600191 export_include_dirs: ["include"],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600192 export_shared_lib_headers: [
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700193 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600194 "libbinder",
195 "libhidlbase",
196 "libhwbinder",
Dmitry Dementyevab8aa1c2017-11-28 12:13:22 -0800197 "libkeystore_aidl",
198 "libkeystore_parcelables",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600199 ],
200}
201
202// Library for keystore clients using the WiFi HIDL interface
203cc_library_shared {
204 name: "libkeystore-wifi-hidl",
205 defaults: ["keystore_defaults"],
206
207 srcs: ["keystore_get_wifi_hidl.cpp"],
208 shared_libs: [
209 "android.system.wifi.keystore@1.0",
210 "libbase",
211 "libhidlbase",
212 "libhidltransport",
213 "liblog",
214 "libutils",
215 ],
216
217 export_include_dirs: ["include"],
218
219 vendor: true,
220}
221
222// Library for unit tests
223cc_library_static {
224 name: "libkeystore_test",
225 defaults: ["keystore_defaults"],
226
Janis Danisevskis8f737ad2017-11-21 12:30:15 -0800227 srcs: [
228 "auth_token_table.cpp",
Janis Danisevskis8f737ad2017-11-21 12:30:15 -0800229 ],
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700230 cflags: [ "-O0", ],
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600231 static_libs: ["libgtest_main"],
232 shared_libs: [
Shawn Willden0329a822017-12-04 13:55:14 -0700233 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600234 "libhidlbase",
235 "libhwbinder",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700236 "libkeymaster4support",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600237 "libutils",
238 ],
239 export_shared_lib_headers: [
Shawn Willden0329a822017-12-04 13:55:14 -0700240 "android.hardware.keymaster@4.0",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600241 "libhidlbase",
242 "libhwbinder",
Shawn Willdenbb22a6c2017-12-06 19:35:28 -0700243 "libkeymaster4support",
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600244 ],
245
246 export_include_dirs: ["include"],
247}
248
Logan Chien3bd6a512018-02-14 13:57:11 +0800249filegroup {
250 name: "keystore_aidl",
251 srcs: [
252 "binder/android/security/IConfirmationPromptCallback.aidl",
253 "binder/android/security/IKeystoreService.aidl",
254 ],
255}
256
257cc_library_shared {
258 name: "libkeystore_aidl",
259 srcs: [":keystore_aidl"],
260 aidl: {
261 export_aidl_headers: true,
262 include_dirs: [
263 "system/security/keystore/binder",
264 ],
265 },
266 shared_libs: [
267 "libbinder",
268 "libcutils",
269 "libhardware",
270 "libhidlbase",
271 "libhidltransport",
272 "libhwbinder",
273 "libkeystore_parcelables",
274 "liblog",
275 "libselinux",
276 "libutils",
277 ],
278 export_shared_lib_headers: [
279 "libbinder",
280 "libkeystore_parcelables",
281 ],
282}
283
Jeff Sharkeyc493cf92017-10-23 10:39:50 -0600284subdirs = ["tests"]