xref: /aosp_15_r20/system/keymaster/Android.bp (revision 789431f29546679ab5188a97751fb38e3018d44d)
1*789431f2SAndroid Build Coastguard Worker// Copyright (C) 2014 The Android Open Source Project
2*789431f2SAndroid Build Coastguard Worker//
3*789431f2SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*789431f2SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*789431f2SAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*789431f2SAndroid Build Coastguard Worker//
7*789431f2SAndroid Build Coastguard Worker//      http://www.apache.org/licenses/LICENSE-2.0
8*789431f2SAndroid Build Coastguard Worker//
9*789431f2SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*789431f2SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*789431f2SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*789431f2SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*789431f2SAndroid Build Coastguard Worker// limitations under the License.
14*789431f2SAndroid Build Coastguard Worker
15*789431f2SAndroid Build Coastguard Worker// libkeymaster_messages contains just the code necessary to communicate with a
16*789431f2SAndroid Build Coastguard Worker// AndroidKeymaster implementation, e.g. one running in TrustZone.
17*789431f2SAndroid Build Coastguard Workerpackage {
18*789431f2SAndroid Build Coastguard Worker    default_team: "trendy_team_android_hardware_backed_security",
19*789431f2SAndroid Build Coastguard Worker    default_applicable_licenses: ["system_keymaster_license"],
20*789431f2SAndroid Build Coastguard Worker}
21*789431f2SAndroid Build Coastguard Worker
22*789431f2SAndroid Build Coastguard Worker// Added automatically by a large-scale-change that took the approach of
23*789431f2SAndroid Build Coastguard Worker// 'apply every license found to every target'. While this makes sure we respect
24*789431f2SAndroid Build Coastguard Worker// every license restriction, it may not be entirely correct.
25*789431f2SAndroid Build Coastguard Worker//
26*789431f2SAndroid Build Coastguard Worker// e.g. GPL in an MIT project might only apply to the contrib/ directory.
27*789431f2SAndroid Build Coastguard Worker//
28*789431f2SAndroid Build Coastguard Worker// Please consider splitting the single license below into multiple licenses,
29*789431f2SAndroid Build Coastguard Worker// taking care not to lose any license_kind information, and overriding the
30*789431f2SAndroid Build Coastguard Worker// default license using the 'licenses: [...]' property on targets as needed.
31*789431f2SAndroid Build Coastguard Worker//
32*789431f2SAndroid Build Coastguard Worker// For unused files, consider creating a 'fileGroup' with "//visibility:private"
33*789431f2SAndroid Build Coastguard Worker// to attach the license to, and including a comment whether the files may be
34*789431f2SAndroid Build Coastguard Worker// used in the current project.
35*789431f2SAndroid Build Coastguard Worker// See: http://go/android-license-faq
36*789431f2SAndroid Build Coastguard Workerlicense {
37*789431f2SAndroid Build Coastguard Worker    name: "system_keymaster_license",
38*789431f2SAndroid Build Coastguard Worker    visibility: [":__subpackages__"],
39*789431f2SAndroid Build Coastguard Worker    license_kinds: [
40*789431f2SAndroid Build Coastguard Worker        "SPDX-license-identifier-Apache-2.0",
41*789431f2SAndroid Build Coastguard Worker        "SPDX-license-identifier-ISC",
42*789431f2SAndroid Build Coastguard Worker        "legacy_unencumbered",
43*789431f2SAndroid Build Coastguard Worker    ],
44*789431f2SAndroid Build Coastguard Worker    license_text: [
45*789431f2SAndroid Build Coastguard Worker        "NOTICE",
46*789431f2SAndroid Build Coastguard Worker    ],
47*789431f2SAndroid Build Coastguard Worker}
48*789431f2SAndroid Build Coastguard Worker
49*789431f2SAndroid Build Coastguard Workercc_defaults {
50*789431f2SAndroid Build Coastguard Worker    name: "keymaster_defaults",
51*789431f2SAndroid Build Coastguard Worker    vendor_available: true,
52*789431f2SAndroid Build Coastguard Worker    cflags: [
53*789431f2SAndroid Build Coastguard Worker        "-Wall",
54*789431f2SAndroid Build Coastguard Worker        "-Werror",
55*789431f2SAndroid Build Coastguard Worker        "-Wunused",
56*789431f2SAndroid Build Coastguard Worker        "-Wno-error=unused-const-variable",
57*789431f2SAndroid Build Coastguard Worker        "-Wno-error=unused-private-field",
58*789431f2SAndroid Build Coastguard Worker        "-Wimplicit-fallthrough",
59*789431f2SAndroid Build Coastguard Worker        // TODO(krasin): reenable coverage flags, when the new Clang toolchain is released.
60*789431f2SAndroid Build Coastguard Worker        // Currently, if enabled, these flags will cause an internal error in Clang.
61*789431f2SAndroid Build Coastguard Worker        "-fno-sanitize-coverage=edge,indirect-calls,8bit-counters,trace-cmp",
62*789431f2SAndroid Build Coastguard Worker    ],
63*789431f2SAndroid Build Coastguard Worker    tidy: true,
64*789431f2SAndroid Build Coastguard Worker    tidy_checks: [
65*789431f2SAndroid Build Coastguard Worker        "-performance-noexcept-move-constructor",
66*789431f2SAndroid Build Coastguard Worker    ],
67*789431f2SAndroid Build Coastguard Worker    sanitize: {
68*789431f2SAndroid Build Coastguard Worker        integer_overflow: false,
69*789431f2SAndroid Build Coastguard Worker    },
70*789431f2SAndroid Build Coastguard Worker    target: {
71*789431f2SAndroid Build Coastguard Worker        windows: {
72*789431f2SAndroid Build Coastguard Worker            enabled: true,
73*789431f2SAndroid Build Coastguard Worker        },
74*789431f2SAndroid Build Coastguard Worker    },
75*789431f2SAndroid Build Coastguard Worker}
76*789431f2SAndroid Build Coastguard Worker
77*789431f2SAndroid Build Coastguard Workercc_library_shared {
78*789431f2SAndroid Build Coastguard Worker    name: "libkeymaster_messages",
79*789431f2SAndroid Build Coastguard Worker    srcs: [
80*789431f2SAndroid Build Coastguard Worker        "android_keymaster/android_keymaster_messages.cpp",
81*789431f2SAndroid Build Coastguard Worker        "android_keymaster/android_keymaster_utils.cpp",
82*789431f2SAndroid Build Coastguard Worker        "android_keymaster/authorization_set.cpp",
83*789431f2SAndroid Build Coastguard Worker        "android_keymaster/keymaster_tags.cpp",
84*789431f2SAndroid Build Coastguard Worker        "android_keymaster/logger.cpp",
85*789431f2SAndroid Build Coastguard Worker        "android_keymaster/serializable.cpp",
86*789431f2SAndroid Build Coastguard Worker    ],
87*789431f2SAndroid Build Coastguard Worker    header_libs: ["libhardware_headers"],
88*789431f2SAndroid Build Coastguard Worker    defaults: ["keymaster_defaults"],
89*789431f2SAndroid Build Coastguard Worker    cflags: [
90*789431f2SAndroid Build Coastguard Worker        "-DKEYMASTER_NAME_TAGS",
91*789431f2SAndroid Build Coastguard Worker    ],
92*789431f2SAndroid Build Coastguard Worker    export_include_dirs: ["include"],
93*789431f2SAndroid Build Coastguard Worker    host_supported: true,
94*789431f2SAndroid Build Coastguard Worker    target: {
95*789431f2SAndroid Build Coastguard Worker        host: {
96*789431f2SAndroid Build Coastguard Worker            cflags: [
97*789431f2SAndroid Build Coastguard Worker                "-fno-rtti", // TODO(b/156427382): Remove workaround when possible.
98*789431f2SAndroid Build Coastguard Worker            ],
99*789431f2SAndroid Build Coastguard Worker        },
100*789431f2SAndroid Build Coastguard Worker    },
101*789431f2SAndroid Build Coastguard Worker}
102*789431f2SAndroid Build Coastguard Worker
103*789431f2SAndroid Build Coastguard Worker// libkeymaster_portable contains almost everything needed for a keymaster
104*789431f2SAndroid Build Coastguard Worker// implementation, lacking only a subclass of the (abstract) KeymasterContext
105*789431f2SAndroid Build Coastguard Worker// class to provide environment-specific services and a wrapper to translate from
106*789431f2SAndroid Build Coastguard Worker// the function-based keymaster HAL API to the message-based AndroidKeymaster API.
107*789431f2SAndroid Build Coastguard Workercc_library {
108*789431f2SAndroid Build Coastguard Worker    name: "libkeymaster_portable",
109*789431f2SAndroid Build Coastguard Worker    srcs: [
110*789431f2SAndroid Build Coastguard Worker        "android_keymaster/android_keymaster.cpp",
111*789431f2SAndroid Build Coastguard Worker        "android_keymaster/android_keymaster_messages.cpp",
112*789431f2SAndroid Build Coastguard Worker        "android_keymaster/android_keymaster_utils.cpp",
113*789431f2SAndroid Build Coastguard Worker        "android_keymaster/authorization_set.cpp",
114*789431f2SAndroid Build Coastguard Worker        "android_keymaster/keymaster_enforcement.cpp",
115*789431f2SAndroid Build Coastguard Worker        "android_keymaster/keymaster_tags.cpp",
116*789431f2SAndroid Build Coastguard Worker        "android_keymaster/logger.cpp",
117*789431f2SAndroid Build Coastguard Worker        "android_keymaster/operation.cpp",
118*789431f2SAndroid Build Coastguard Worker        "android_keymaster/operation_table.cpp",
119*789431f2SAndroid Build Coastguard Worker        "android_keymaster/pure_soft_secure_key_storage.cpp",
120*789431f2SAndroid Build Coastguard Worker        "android_keymaster/remote_provisioning_utils.cpp",
121*789431f2SAndroid Build Coastguard Worker        "android_keymaster/serializable.cpp",
122*789431f2SAndroid Build Coastguard Worker        "key_blob_utils/auth_encrypted_key_blob.cpp",
123*789431f2SAndroid Build Coastguard Worker        "key_blob_utils/integrity_assured_key_blob.cpp",
124*789431f2SAndroid Build Coastguard Worker        "key_blob_utils/ocb.c",
125*789431f2SAndroid Build Coastguard Worker        "key_blob_utils/ocb_utils.cpp",
126*789431f2SAndroid Build Coastguard Worker        "key_blob_utils/software_keyblobs.cpp",
127*789431f2SAndroid Build Coastguard Worker        "km_openssl/aes_key.cpp",
128*789431f2SAndroid Build Coastguard Worker        "km_openssl/aes_operation.cpp",
129*789431f2SAndroid Build Coastguard Worker        "km_openssl/asymmetric_key.cpp",
130*789431f2SAndroid Build Coastguard Worker        "km_openssl/asymmetric_key_factory.cpp",
131*789431f2SAndroid Build Coastguard Worker        "km_openssl/attestation_record.cpp",
132*789431f2SAndroid Build Coastguard Worker        "km_openssl/attestation_utils.cpp",
133*789431f2SAndroid Build Coastguard Worker        "km_openssl/block_cipher_operation.cpp",
134*789431f2SAndroid Build Coastguard Worker        "km_openssl/certificate_utils.cpp",
135*789431f2SAndroid Build Coastguard Worker        "km_openssl/ckdf.cpp",
136*789431f2SAndroid Build Coastguard Worker        "km_openssl/curve25519_key.cpp",
137*789431f2SAndroid Build Coastguard Worker        "km_openssl/ec_key.cpp",
138*789431f2SAndroid Build Coastguard Worker        "km_openssl/ec_key_factory.cpp",
139*789431f2SAndroid Build Coastguard Worker        "km_openssl/ecdh_operation.cpp",
140*789431f2SAndroid Build Coastguard Worker        "km_openssl/ecdsa_operation.cpp",
141*789431f2SAndroid Build Coastguard Worker        "km_openssl/ecies_kem.cpp",
142*789431f2SAndroid Build Coastguard Worker        "km_openssl/hkdf.cpp",
143*789431f2SAndroid Build Coastguard Worker        "km_openssl/hmac.cpp",
144*789431f2SAndroid Build Coastguard Worker        "km_openssl/hmac_key.cpp",
145*789431f2SAndroid Build Coastguard Worker        "km_openssl/hmac_operation.cpp",
146*789431f2SAndroid Build Coastguard Worker        "km_openssl/iso18033kdf.cpp",
147*789431f2SAndroid Build Coastguard Worker        "km_openssl/kdf.cpp",
148*789431f2SAndroid Build Coastguard Worker        "km_openssl/nist_curve_key_exchange.cpp",
149*789431f2SAndroid Build Coastguard Worker        "km_openssl/openssl_err.cpp",
150*789431f2SAndroid Build Coastguard Worker        "km_openssl/openssl_utils.cpp",
151*789431f2SAndroid Build Coastguard Worker        "km_openssl/rsa_key.cpp",
152*789431f2SAndroid Build Coastguard Worker        "km_openssl/rsa_key_factory.cpp",
153*789431f2SAndroid Build Coastguard Worker        "km_openssl/rsa_operation.cpp",
154*789431f2SAndroid Build Coastguard Worker        "km_openssl/software_random_source.cpp",
155*789431f2SAndroid Build Coastguard Worker        "km_openssl/symmetric_key.cpp",
156*789431f2SAndroid Build Coastguard Worker        "km_openssl/triple_des_key.cpp",
157*789431f2SAndroid Build Coastguard Worker        "km_openssl/triple_des_operation.cpp",
158*789431f2SAndroid Build Coastguard Worker        "km_openssl/wrapped_key.cpp",
159*789431f2SAndroid Build Coastguard Worker    ],
160*789431f2SAndroid Build Coastguard Worker
161*789431f2SAndroid Build Coastguard Worker    shared_libs: [
162*789431f2SAndroid Build Coastguard Worker        "libcrypto",
163*789431f2SAndroid Build Coastguard Worker        "libcppbor",
164*789431f2SAndroid Build Coastguard Worker        "libcppcose_rkp",
165*789431f2SAndroid Build Coastguard Worker    ],
166*789431f2SAndroid Build Coastguard Worker    export_shared_lib_headers: ["libcppbor"],
167*789431f2SAndroid Build Coastguard Worker    header_libs: ["libhardware_headers"],
168*789431f2SAndroid Build Coastguard Worker    export_header_lib_headers: ["libhardware_headers"],
169*789431f2SAndroid Build Coastguard Worker    defaults: ["keymaster_defaults"],
170*789431f2SAndroid Build Coastguard Worker    host_supported: true,
171*789431f2SAndroid Build Coastguard Worker    export_include_dirs: ["include"],
172*789431f2SAndroid Build Coastguard Worker    target: {
173*789431f2SAndroid Build Coastguard Worker        host: {
174*789431f2SAndroid Build Coastguard Worker            cflags: [
175*789431f2SAndroid Build Coastguard Worker                "-fno-rtti", // TODO(b/156427382): Remove workaround when possible.
176*789431f2SAndroid Build Coastguard Worker            ],
177*789431f2SAndroid Build Coastguard Worker        },
178*789431f2SAndroid Build Coastguard Worker    },
179*789431f2SAndroid Build Coastguard Worker}
180*789431f2SAndroid Build Coastguard Worker
181*789431f2SAndroid Build Coastguard Worker// libsoftkeymaster provides a software-based keymaster HAL implementation.
182*789431f2SAndroid Build Coastguard Worker// This is used by keystore as a fallback for when the hardware keymaster does
183*789431f2SAndroid Build Coastguard Worker// not support the request.
184*789431f2SAndroid Build Coastguard Workercc_library {
185*789431f2SAndroid Build Coastguard Worker    name: "libsoftkeymasterdevice",
186*789431f2SAndroid Build Coastguard Worker    srcs: [
187*789431f2SAndroid Build Coastguard Worker        "android_keymaster/keymaster_configuration.cpp",
188*789431f2SAndroid Build Coastguard Worker        "contexts/pure_soft_keymaster_context.cpp",
189*789431f2SAndroid Build Coastguard Worker        "contexts/pure_soft_remote_provisioning_context.cpp",
190*789431f2SAndroid Build Coastguard Worker        "contexts/soft_attestation_context.cpp",
191*789431f2SAndroid Build Coastguard Worker        "contexts/soft_keymaster_context.cpp",
192*789431f2SAndroid Build Coastguard Worker        "contexts/soft_keymaster_device.cpp",
193*789431f2SAndroid Build Coastguard Worker        "contexts/soft_keymaster_logger.cpp",
194*789431f2SAndroid Build Coastguard Worker        "km_openssl/soft_keymaster_enforcement.cpp",
195*789431f2SAndroid Build Coastguard Worker        "legacy_support/ec_keymaster1_key.cpp",
196*789431f2SAndroid Build Coastguard Worker        "legacy_support/ecdsa_keymaster1_operation.cpp",
197*789431f2SAndroid Build Coastguard Worker        "legacy_support/keymaster1_engine.cpp",
198*789431f2SAndroid Build Coastguard Worker        "legacy_support/keymaster1_legacy_support.cpp",
199*789431f2SAndroid Build Coastguard Worker        "legacy_support/rsa_keymaster1_key.cpp",
200*789431f2SAndroid Build Coastguard Worker        "legacy_support/rsa_keymaster1_operation.cpp",
201*789431f2SAndroid Build Coastguard Worker    ],
202*789431f2SAndroid Build Coastguard Worker    defaults: ["keymaster_defaults"],
203*789431f2SAndroid Build Coastguard Worker    shared_libs: [
204*789431f2SAndroid Build Coastguard Worker        "libkeymaster_messages",
205*789431f2SAndroid Build Coastguard Worker        "libkeymaster_portable",
206*789431f2SAndroid Build Coastguard Worker        "libsoft_attestation_cert",
207*789431f2SAndroid Build Coastguard Worker        "liblog",
208*789431f2SAndroid Build Coastguard Worker        "libbase",
209*789431f2SAndroid Build Coastguard Worker        "libcppbor",
210*789431f2SAndroid Build Coastguard Worker        "libcppcose_rkp",
211*789431f2SAndroid Build Coastguard Worker        "libcrypto",
212*789431f2SAndroid Build Coastguard Worker        "libcutils",
213*789431f2SAndroid Build Coastguard Worker    ],
214*789431f2SAndroid Build Coastguard Worker    export_include_dirs: ["include"],
215*789431f2SAndroid Build Coastguard Worker}
216*789431f2SAndroid Build Coastguard Worker
217*789431f2SAndroid Build Coastguard Workercc_library {
218*789431f2SAndroid Build Coastguard Worker    name: "libsoft_attestation_cert",
219*789431f2SAndroid Build Coastguard Worker    srcs: [
220*789431f2SAndroid Build Coastguard Worker        "contexts/soft_attestation_cert.cpp",
221*789431f2SAndroid Build Coastguard Worker    ],
222*789431f2SAndroid Build Coastguard Worker    defaults: ["keymaster_defaults"],
223*789431f2SAndroid Build Coastguard Worker    shared_libs: [
224*789431f2SAndroid Build Coastguard Worker        "libkeymaster_portable",
225*789431f2SAndroid Build Coastguard Worker    ],
226*789431f2SAndroid Build Coastguard Worker
227*789431f2SAndroid Build Coastguard Worker    host_supported: true,
228*789431f2SAndroid Build Coastguard Worker    export_include_dirs: ["include"],
229*789431f2SAndroid Build Coastguard Worker}
230*789431f2SAndroid Build Coastguard Worker
231*789431f2SAndroid Build Coastguard Workercc_library {
232*789431f2SAndroid Build Coastguard Worker    name: "libpuresoftkeymasterdevice",
233*789431f2SAndroid Build Coastguard Worker    srcs: [
234*789431f2SAndroid Build Coastguard Worker        "android_keymaster/keymaster_configuration.cpp",
235*789431f2SAndroid Build Coastguard Worker        "contexts/soft_attestation_context.cpp",
236*789431f2SAndroid Build Coastguard Worker        "contexts/pure_soft_keymaster_context.cpp",
237*789431f2SAndroid Build Coastguard Worker        "contexts/pure_soft_remote_provisioning_context.cpp",
238*789431f2SAndroid Build Coastguard Worker        "contexts/soft_keymaster_logger.cpp",
239*789431f2SAndroid Build Coastguard Worker        "km_openssl/soft_keymaster_enforcement.cpp",
240*789431f2SAndroid Build Coastguard Worker    ],
241*789431f2SAndroid Build Coastguard Worker    defaults: ["keymaster_defaults"],
242*789431f2SAndroid Build Coastguard Worker    shared_libs: [
243*789431f2SAndroid Build Coastguard Worker        "libkeymaster_messages",
244*789431f2SAndroid Build Coastguard Worker        "libkeymaster_portable",
245*789431f2SAndroid Build Coastguard Worker        "libsoft_attestation_cert",
246*789431f2SAndroid Build Coastguard Worker        "liblog",
247*789431f2SAndroid Build Coastguard Worker        "libcppbor",
248*789431f2SAndroid Build Coastguard Worker        "libcppcose_rkp",
249*789431f2SAndroid Build Coastguard Worker        "libcrypto",
250*789431f2SAndroid Build Coastguard Worker        "libcutils",
251*789431f2SAndroid Build Coastguard Worker        "libbase",
252*789431f2SAndroid Build Coastguard Worker    ],
253*789431f2SAndroid Build Coastguard Worker    export_include_dirs: ["include"],
254*789431f2SAndroid Build Coastguard Worker}
255*789431f2SAndroid Build Coastguard Worker
256*789431f2SAndroid Build Coastguard Workercc_library {
257*789431f2SAndroid Build Coastguard Worker    name: "libpuresoftkeymasterdevice_host",
258*789431f2SAndroid Build Coastguard Worker    srcs: [
259*789431f2SAndroid Build Coastguard Worker        "contexts/pure_soft_keymaster_context.cpp",
260*789431f2SAndroid Build Coastguard Worker        "contexts/pure_soft_remote_provisioning_context.cpp",
261*789431f2SAndroid Build Coastguard Worker        "contexts/soft_attestation_context.cpp",
262*789431f2SAndroid Build Coastguard Worker        "contexts/soft_keymaster_logger.cpp",
263*789431f2SAndroid Build Coastguard Worker        "km_openssl/soft_keymaster_enforcement.cpp",
264*789431f2SAndroid Build Coastguard Worker    ],
265*789431f2SAndroid Build Coastguard Worker    defaults: ["keymaster_defaults"],
266*789431f2SAndroid Build Coastguard Worker    host_supported: true,
267*789431f2SAndroid Build Coastguard Worker    device_supported: false,
268*789431f2SAndroid Build Coastguard Worker    shared_libs: [
269*789431f2SAndroid Build Coastguard Worker        "libkeymaster_messages",
270*789431f2SAndroid Build Coastguard Worker        "libkeymaster_portable",
271*789431f2SAndroid Build Coastguard Worker        "libsoft_attestation_cert",
272*789431f2SAndroid Build Coastguard Worker        "liblog",
273*789431f2SAndroid Build Coastguard Worker        "libcppbor",
274*789431f2SAndroid Build Coastguard Worker        "libcppcose_rkp",
275*789431f2SAndroid Build Coastguard Worker        "libcrypto",
276*789431f2SAndroid Build Coastguard Worker        "libcutils",
277*789431f2SAndroid Build Coastguard Worker        "libbase",
278*789431f2SAndroid Build Coastguard Worker    ],
279*789431f2SAndroid Build Coastguard Worker    cflags: [
280*789431f2SAndroid Build Coastguard Worker        "-DKEYMASTER_NAME_TAGS",
281*789431f2SAndroid Build Coastguard Worker        "-fno-rtti", // TODO(b/156427382): Remove workaround when possible.
282*789431f2SAndroid Build Coastguard Worker    ],
283*789431f2SAndroid Build Coastguard Worker    export_include_dirs: ["include"],
284*789431f2SAndroid Build Coastguard Worker}
285*789431f2SAndroid Build Coastguard Worker
286*789431f2SAndroid Build Coastguard Workercc_library_shared {
287*789431f2SAndroid Build Coastguard Worker    name: "libkeymaster3device",
288*789431f2SAndroid Build Coastguard Worker    srcs: [
289*789431f2SAndroid Build Coastguard Worker        "legacy_support/keymaster_passthrough_key.cpp",
290*789431f2SAndroid Build Coastguard Worker        "legacy_support/keymaster_passthrough_engine.cpp",
291*789431f2SAndroid Build Coastguard Worker        "legacy_support/keymaster_passthrough_operation.cpp",
292*789431f2SAndroid Build Coastguard Worker        "contexts/keymaster1_passthrough_context.cpp",
293*789431f2SAndroid Build Coastguard Worker        "contexts/keymaster2_passthrough_context.cpp",
294*789431f2SAndroid Build Coastguard Worker        "ng/AndroidKeymaster3Device.cpp",
295*789431f2SAndroid Build Coastguard Worker        "android_keymaster/keymaster_configuration.cpp",
296*789431f2SAndroid Build Coastguard Worker        "legacy_support/ec_keymaster1_key.cpp",
297*789431f2SAndroid Build Coastguard Worker        "legacy_support/ecdsa_keymaster1_operation.cpp",
298*789431f2SAndroid Build Coastguard Worker        "legacy_support/keymaster1_engine.cpp",
299*789431f2SAndroid Build Coastguard Worker        "legacy_support/keymaster1_legacy_support.cpp",
300*789431f2SAndroid Build Coastguard Worker        "legacy_support/rsa_keymaster1_key.cpp",
301*789431f2SAndroid Build Coastguard Worker        "legacy_support/rsa_keymaster1_operation.cpp",
302*789431f2SAndroid Build Coastguard Worker    ],
303*789431f2SAndroid Build Coastguard Worker    defaults: ["keymaster_defaults"],
304*789431f2SAndroid Build Coastguard Worker    shared_libs: [
305*789431f2SAndroid Build Coastguard Worker        "libkeymaster_messages",
306*789431f2SAndroid Build Coastguard Worker        "[email protected]",
307*789431f2SAndroid Build Coastguard Worker        "libcrypto",
308*789431f2SAndroid Build Coastguard Worker        "libcutils",
309*789431f2SAndroid Build Coastguard Worker        "libbase",
310*789431f2SAndroid Build Coastguard Worker        "libhidlbase",
311*789431f2SAndroid Build Coastguard Worker        "libkeymaster_portable",
312*789431f2SAndroid Build Coastguard Worker        "liblog",
313*789431f2SAndroid Build Coastguard Worker        "libpuresoftkeymasterdevice",
314*789431f2SAndroid Build Coastguard Worker        "libsoft_attestation_cert",
315*789431f2SAndroid Build Coastguard Worker        "libutils",
316*789431f2SAndroid Build Coastguard Worker    ],
317*789431f2SAndroid Build Coastguard Worker    export_include_dirs: [
318*789431f2SAndroid Build Coastguard Worker        "include",
319*789431f2SAndroid Build Coastguard Worker        "ng/include",
320*789431f2SAndroid Build Coastguard Worker    ],
321*789431f2SAndroid Build Coastguard Worker}
322*789431f2SAndroid Build Coastguard Worker
323*789431f2SAndroid Build Coastguard Workercc_library {
324*789431f2SAndroid Build Coastguard Worker    name: "libkeymaster4",
325*789431f2SAndroid Build Coastguard Worker    srcs: [
326*789431f2SAndroid Build Coastguard Worker        "legacy_support/keymaster_passthrough_key.cpp",
327*789431f2SAndroid Build Coastguard Worker        "legacy_support/keymaster_passthrough_engine.cpp",
328*789431f2SAndroid Build Coastguard Worker        "legacy_support/keymaster_passthrough_operation.cpp",
329*789431f2SAndroid Build Coastguard Worker        "ng/AndroidKeymaster4Device.cpp",
330*789431f2SAndroid Build Coastguard Worker        "android_keymaster/keymaster_configuration.cpp",
331*789431f2SAndroid Build Coastguard Worker    ],
332*789431f2SAndroid Build Coastguard Worker    defaults: ["keymaster_defaults"],
333*789431f2SAndroid Build Coastguard Worker    shared_libs: [
334*789431f2SAndroid Build Coastguard Worker        "libkeymaster_messages",
335*789431f2SAndroid Build Coastguard Worker        "[email protected]",
336*789431f2SAndroid Build Coastguard Worker        "libcrypto",
337*789431f2SAndroid Build Coastguard Worker        "libcutils",
338*789431f2SAndroid Build Coastguard Worker        "libbase",
339*789431f2SAndroid Build Coastguard Worker        "libhidlbase",
340*789431f2SAndroid Build Coastguard Worker        "libkeymaster_portable",
341*789431f2SAndroid Build Coastguard Worker        "libpuresoftkeymasterdevice",
342*789431f2SAndroid Build Coastguard Worker        "liblog",
343*789431f2SAndroid Build Coastguard Worker        "libutils",
344*789431f2SAndroid Build Coastguard Worker        "libkeymaster4support",
345*789431f2SAndroid Build Coastguard Worker    ],
346*789431f2SAndroid Build Coastguard Worker    export_include_dirs: [
347*789431f2SAndroid Build Coastguard Worker        "ng/include",
348*789431f2SAndroid Build Coastguard Worker        "include",
349*789431f2SAndroid Build Coastguard Worker    ],
350*789431f2SAndroid Build Coastguard Worker}
351*789431f2SAndroid Build Coastguard Worker
352*789431f2SAndroid Build Coastguard Workercc_library_shared {
353*789431f2SAndroid Build Coastguard Worker    name: "libkeymaster41",
354*789431f2SAndroid Build Coastguard Worker    vendor_available: true,
355*789431f2SAndroid Build Coastguard Worker    srcs: [
356*789431f2SAndroid Build Coastguard Worker        "ng/AndroidKeymaster41Device.cpp",
357*789431f2SAndroid Build Coastguard Worker    ],
358*789431f2SAndroid Build Coastguard Worker    defaults: ["keymaster_defaults"],
359*789431f2SAndroid Build Coastguard Worker    shared_libs: [
360*789431f2SAndroid Build Coastguard Worker        "[email protected]",
361*789431f2SAndroid Build Coastguard Worker        "[email protected]",
362*789431f2SAndroid Build Coastguard Worker        "libbase",
363*789431f2SAndroid Build Coastguard Worker        "libcrypto",
364*789431f2SAndroid Build Coastguard Worker        "libcutils",
365*789431f2SAndroid Build Coastguard Worker        "libhidlbase",
366*789431f2SAndroid Build Coastguard Worker        "libkeymaster4",
367*789431f2SAndroid Build Coastguard Worker        "libkeymaster4_1support",
368*789431f2SAndroid Build Coastguard Worker        "libkeymaster4support",
369*789431f2SAndroid Build Coastguard Worker        "libkeymaster_messages",
370*789431f2SAndroid Build Coastguard Worker        "libkeymaster_portable",
371*789431f2SAndroid Build Coastguard Worker        "liblog",
372*789431f2SAndroid Build Coastguard Worker        "libpuresoftkeymasterdevice",
373*789431f2SAndroid Build Coastguard Worker        "libutils",
374*789431f2SAndroid Build Coastguard Worker    ],
375*789431f2SAndroid Build Coastguard Worker    export_include_dirs: ["ng/include"],
376*789431f2SAndroid Build Coastguard Worker}
377*789431f2SAndroid Build Coastguard Worker
378*789431f2SAndroid Build Coastguard Workercc_library {
379*789431f2SAndroid Build Coastguard Worker    name: "lib_android_keymaster_keymint_utils",
380*789431f2SAndroid Build Coastguard Worker    vendor_available: true,
381*789431f2SAndroid Build Coastguard Worker    srcs: [
382*789431f2SAndroid Build Coastguard Worker        "ng/KeyMintUtils.cpp",
383*789431f2SAndroid Build Coastguard Worker    ],
384*789431f2SAndroid Build Coastguard Worker    defaults: [
385*789431f2SAndroid Build Coastguard Worker        "keymaster_defaults",
386*789431f2SAndroid Build Coastguard Worker        "keymint_use_latest_hal_aidl_ndk_shared",
387*789431f2SAndroid Build Coastguard Worker    ],
388*789431f2SAndroid Build Coastguard Worker    shared_libs: [
389*789431f2SAndroid Build Coastguard Worker        "libbase",
390*789431f2SAndroid Build Coastguard Worker        "libhardware",
391*789431f2SAndroid Build Coastguard Worker    ],
392*789431f2SAndroid Build Coastguard Worker    export_include_dirs: [
393*789431f2SAndroid Build Coastguard Worker        "ng/include",
394*789431f2SAndroid Build Coastguard Worker        "include",
395*789431f2SAndroid Build Coastguard Worker    ],
396*789431f2SAndroid Build Coastguard Worker}
397*789431f2SAndroid Build Coastguard Worker
398*789431f2SAndroid Build Coastguard Workercc_library {
399*789431f2SAndroid Build Coastguard Worker    name: "libkeymasterconfig",
400*789431f2SAndroid Build Coastguard Worker    vendor_available: true,
401*789431f2SAndroid Build Coastguard Worker    srcs: [
402*789431f2SAndroid Build Coastguard Worker        "android_keymaster/keymaster_configuration.cpp",
403*789431f2SAndroid Build Coastguard Worker    ],
404*789431f2SAndroid Build Coastguard Worker    defaults: [
405*789431f2SAndroid Build Coastguard Worker        "keymaster_defaults",
406*789431f2SAndroid Build Coastguard Worker    ],
407*789431f2SAndroid Build Coastguard Worker    shared_libs: [
408*789431f2SAndroid Build Coastguard Worker        "lib_android_keymaster_keymint_utils",
409*789431f2SAndroid Build Coastguard Worker        "libbase",
410*789431f2SAndroid Build Coastguard Worker        "libcutils",
411*789431f2SAndroid Build Coastguard Worker        "libhardware",
412*789431f2SAndroid Build Coastguard Worker        "libkeymaster_messages",
413*789431f2SAndroid Build Coastguard Worker        "liblog",
414*789431f2SAndroid Build Coastguard Worker    ],
415*789431f2SAndroid Build Coastguard Worker    export_include_dirs: [
416*789431f2SAndroid Build Coastguard Worker        "include",
417*789431f2SAndroid Build Coastguard Worker    ],
418*789431f2SAndroid Build Coastguard Worker}
419*789431f2SAndroid Build Coastguard Worker
420*789431f2SAndroid Build Coastguard Workercc_library {
421*789431f2SAndroid Build Coastguard Worker    name: "libkeymasterconfig_V3",
422*789431f2SAndroid Build Coastguard Worker    vendor_available: true,
423*789431f2SAndroid Build Coastguard Worker    srcs: [
424*789431f2SAndroid Build Coastguard Worker        "android_keymaster/keymaster_configuration.cpp",
425*789431f2SAndroid Build Coastguard Worker    ],
426*789431f2SAndroid Build Coastguard Worker    defaults: [
427*789431f2SAndroid Build Coastguard Worker        "keymaster_defaults",
428*789431f2SAndroid Build Coastguard Worker    ],
429*789431f2SAndroid Build Coastguard Worker    shared_libs: [
430*789431f2SAndroid Build Coastguard Worker        "lib_android_keymaster_keymint_utils_V3",
431*789431f2SAndroid Build Coastguard Worker        "libbase",
432*789431f2SAndroid Build Coastguard Worker        "libcutils",
433*789431f2SAndroid Build Coastguard Worker        "libhardware",
434*789431f2SAndroid Build Coastguard Worker        "libkeymaster_messages",
435*789431f2SAndroid Build Coastguard Worker        "liblog",
436*789431f2SAndroid Build Coastguard Worker    ],
437*789431f2SAndroid Build Coastguard Worker    export_include_dirs: [
438*789431f2SAndroid Build Coastguard Worker        "include",
439*789431f2SAndroid Build Coastguard Worker    ],
440*789431f2SAndroid Build Coastguard Worker}
441*789431f2SAndroid Build Coastguard Worker
442*789431f2SAndroid Build Coastguard Workercc_library {
443*789431f2SAndroid Build Coastguard Worker    name: "libkeymint",
444*789431f2SAndroid Build Coastguard Worker    vendor_available: true,
445*789431f2SAndroid Build Coastguard Worker    srcs: [
446*789431f2SAndroid Build Coastguard Worker        "android_keymaster/keymaster_configuration.cpp",
447*789431f2SAndroid Build Coastguard Worker        "legacy_support/keymaster_passthrough_engine.cpp",
448*789431f2SAndroid Build Coastguard Worker        "legacy_support/keymaster_passthrough_key.cpp",
449*789431f2SAndroid Build Coastguard Worker        "legacy_support/keymaster_passthrough_operation.cpp",
450*789431f2SAndroid Build Coastguard Worker        "ng/AndroidKeyMintDevice.cpp",
451*789431f2SAndroid Build Coastguard Worker        "ng/AndroidKeyMintOperation.cpp",
452*789431f2SAndroid Build Coastguard Worker        "ng/AndroidRemotelyProvisionedComponentDevice.cpp",
453*789431f2SAndroid Build Coastguard Worker        "ng/AndroidSharedSecret.cpp",
454*789431f2SAndroid Build Coastguard Worker        "ng/AndroidSecureClock.cpp",
455*789431f2SAndroid Build Coastguard Worker    ],
456*789431f2SAndroid Build Coastguard Worker    defaults: [
457*789431f2SAndroid Build Coastguard Worker        "keymaster_defaults",
458*789431f2SAndroid Build Coastguard Worker        "keymint_use_latest_hal_aidl_ndk_shared",
459*789431f2SAndroid Build Coastguard Worker    ],
460*789431f2SAndroid Build Coastguard Worker    shared_libs: [
461*789431f2SAndroid Build Coastguard Worker        "libhidlbase",
462*789431f2SAndroid Build Coastguard Worker        "android.hardware.security.rkp-V3-ndk",
463*789431f2SAndroid Build Coastguard Worker        "android.hardware.security.secureclock-V1-ndk",
464*789431f2SAndroid Build Coastguard Worker        "android.hardware.security.sharedsecret-V1-ndk",
465*789431f2SAndroid Build Coastguard Worker        "lib_android_keymaster_keymint_utils",
466*789431f2SAndroid Build Coastguard Worker        "libbase",
467*789431f2SAndroid Build Coastguard Worker        "libbinder_ndk",
468*789431f2SAndroid Build Coastguard Worker        "libcppbor",
469*789431f2SAndroid Build Coastguard Worker        "libcrypto",
470*789431f2SAndroid Build Coastguard Worker        "libcutils",
471*789431f2SAndroid Build Coastguard Worker        "libkeymaster_messages",
472*789431f2SAndroid Build Coastguard Worker        "libkeymaster_portable",
473*789431f2SAndroid Build Coastguard Worker        "liblog",
474*789431f2SAndroid Build Coastguard Worker        "libpuresoftkeymasterdevice",
475*789431f2SAndroid Build Coastguard Worker        "libutils",
476*789431f2SAndroid Build Coastguard Worker    ],
477*789431f2SAndroid Build Coastguard Worker    export_include_dirs: [
478*789431f2SAndroid Build Coastguard Worker        "include",
479*789431f2SAndroid Build Coastguard Worker        "ng/include",
480*789431f2SAndroid Build Coastguard Worker    ],
481*789431f2SAndroid Build Coastguard Worker}
482*789431f2SAndroid Build Coastguard Worker
483*789431f2SAndroid Build Coastguard Workercc_library {
484*789431f2SAndroid Build Coastguard Worker    name: "lib_android_keymaster_keymint_utils_V3",
485*789431f2SAndroid Build Coastguard Worker    vendor_available: true,
486*789431f2SAndroid Build Coastguard Worker    srcs: [
487*789431f2SAndroid Build Coastguard Worker        "ng/KeyMintUtils.cpp",
488*789431f2SAndroid Build Coastguard Worker    ],
489*789431f2SAndroid Build Coastguard Worker    defaults: [
490*789431f2SAndroid Build Coastguard Worker        "keymaster_defaults",
491*789431f2SAndroid Build Coastguard Worker    ],
492*789431f2SAndroid Build Coastguard Worker    shared_libs: [
493*789431f2SAndroid Build Coastguard Worker        "android.hardware.security.keymint-V3-ndk",
494*789431f2SAndroid Build Coastguard Worker        "libbase",
495*789431f2SAndroid Build Coastguard Worker        "libhardware",
496*789431f2SAndroid Build Coastguard Worker    ],
497*789431f2SAndroid Build Coastguard Worker    export_include_dirs: [
498*789431f2SAndroid Build Coastguard Worker        "ng/include",
499*789431f2SAndroid Build Coastguard Worker        "include",
500*789431f2SAndroid Build Coastguard Worker    ],
501*789431f2SAndroid Build Coastguard Worker}
502*789431f2SAndroid Build Coastguard Worker
503*789431f2SAndroid Build Coastguard Workercc_library {
504*789431f2SAndroid Build Coastguard Worker    name: "lib_android_keymaster_keymint_utils_V2",
505*789431f2SAndroid Build Coastguard Worker    vendor_available: true,
506*789431f2SAndroid Build Coastguard Worker    srcs: [
507*789431f2SAndroid Build Coastguard Worker        "ng/KeyMintUtils.cpp",
508*789431f2SAndroid Build Coastguard Worker    ],
509*789431f2SAndroid Build Coastguard Worker    defaults: [
510*789431f2SAndroid Build Coastguard Worker        "keymaster_defaults",
511*789431f2SAndroid Build Coastguard Worker    ],
512*789431f2SAndroid Build Coastguard Worker    shared_libs: [
513*789431f2SAndroid Build Coastguard Worker        "android.hardware.security.keymint-V2-ndk",
514*789431f2SAndroid Build Coastguard Worker        "libbase",
515*789431f2SAndroid Build Coastguard Worker        "libhardware",
516*789431f2SAndroid Build Coastguard Worker    ],
517*789431f2SAndroid Build Coastguard Worker    export_include_dirs: [
518*789431f2SAndroid Build Coastguard Worker        "ng/include",
519*789431f2SAndroid Build Coastguard Worker        "include",
520*789431f2SAndroid Build Coastguard Worker    ],
521*789431f2SAndroid Build Coastguard Worker}
522*789431f2SAndroid Build Coastguard Worker
523*789431f2SAndroid Build Coastguard Workercc_library {
524*789431f2SAndroid Build Coastguard Worker    name: "libcppcose_rkp",
525*789431f2SAndroid Build Coastguard Worker    vendor_available: true,
526*789431f2SAndroid Build Coastguard Worker    host_supported: true,
527*789431f2SAndroid Build Coastguard Worker    srcs: [
528*789431f2SAndroid Build Coastguard Worker        "cppcose/cppcose.cpp",
529*789431f2SAndroid Build Coastguard Worker    ],
530*789431f2SAndroid Build Coastguard Worker    export_include_dirs: [
531*789431f2SAndroid Build Coastguard Worker        "include",
532*789431f2SAndroid Build Coastguard Worker    ],
533*789431f2SAndroid Build Coastguard Worker    shared_libs: [
534*789431f2SAndroid Build Coastguard Worker        "libcppbor",
535*789431f2SAndroid Build Coastguard Worker        "libcrypto",
536*789431f2SAndroid Build Coastguard Worker        "liblog",
537*789431f2SAndroid Build Coastguard Worker    ],
538*789431f2SAndroid Build Coastguard Worker    target: {
539*789431f2SAndroid Build Coastguard Worker        windows: {
540*789431f2SAndroid Build Coastguard Worker            enabled: true,
541*789431f2SAndroid Build Coastguard Worker        },
542*789431f2SAndroid Build Coastguard Worker    },
543*789431f2SAndroid Build Coastguard Worker}
544*789431f2SAndroid Build Coastguard Worker
545*789431f2SAndroid Build Coastguard Workercc_defaults {
546*789431f2SAndroid Build Coastguard Worker    name: "keymaster_fuzz_defaults",
547*789431f2SAndroid Build Coastguard Worker    header_libs: ["libhardware_headers"],
548*789431f2SAndroid Build Coastguard Worker    shared_libs: [
549*789431f2SAndroid Build Coastguard Worker        "libkeymaster_messages",
550*789431f2SAndroid Build Coastguard Worker    ],
551*789431f2SAndroid Build Coastguard Worker    // Not using defaults because the fuzzer relies on sanitizers that are explicitly disabled there.
552*789431f2SAndroid Build Coastguard Worker    cflags: [
553*789431f2SAndroid Build Coastguard Worker        "-Wall",
554*789431f2SAndroid Build Coastguard Worker        "-Werror",
555*789431f2SAndroid Build Coastguard Worker        "-Wunused",
556*789431f2SAndroid Build Coastguard Worker        "-Wno-error=unused-const-variable",
557*789431f2SAndroid Build Coastguard Worker        "-Wno-error=unused-private-field",
558*789431f2SAndroid Build Coastguard Worker        "-Wimplicit-fallthrough",
559*789431f2SAndroid Build Coastguard Worker        "-DKEYMASTER_NAME_TAGS",
560*789431f2SAndroid Build Coastguard Worker    ],
561*789431f2SAndroid Build Coastguard Worker    host_supported: true,
562*789431f2SAndroid Build Coastguard Worker    target: {
563*789431f2SAndroid Build Coastguard Worker        host: {
564*789431f2SAndroid Build Coastguard Worker            cflags: [
565*789431f2SAndroid Build Coastguard Worker                "-fno-rtti", // TODO(b/156427382): Remove when default library removes this
566*789431f2SAndroid Build Coastguard Worker            ],
567*789431f2SAndroid Build Coastguard Worker        },
568*789431f2SAndroid Build Coastguard Worker    },
569*789431f2SAndroid Build Coastguard Worker}
570*789431f2SAndroid Build Coastguard Worker
571*789431f2SAndroid Build Coastguard Workercc_fuzz {
572*789431f2SAndroid Build Coastguard Worker    name: "libkeymaster_fuzz_buffer",
573*789431f2SAndroid Build Coastguard Worker    defaults: ["keymaster_fuzz_defaults"],
574*789431f2SAndroid Build Coastguard Worker    srcs: [
575*789431f2SAndroid Build Coastguard Worker        "tests/fuzzers/buffer_fuzz.cpp",
576*789431f2SAndroid Build Coastguard Worker    ],
577*789431f2SAndroid Build Coastguard Worker}
578*789431f2SAndroid Build Coastguard Worker
579*789431f2SAndroid Build Coastguard Workercc_fuzz {
580*789431f2SAndroid Build Coastguard Worker    name: "libkeymaster_fuzz_deserialize",
581*789431f2SAndroid Build Coastguard Worker    defaults: ["keymaster_fuzz_defaults"],
582*789431f2SAndroid Build Coastguard Worker    srcs: [
583*789431f2SAndroid Build Coastguard Worker        "tests/fuzzers/message_serializable_fuzz.cpp",
584*789431f2SAndroid Build Coastguard Worker    ],
585*789431f2SAndroid Build Coastguard Worker}
586*789431f2SAndroid Build Coastguard Worker
587*789431f2SAndroid Build Coastguard Workerdirgroup {
588*789431f2SAndroid Build Coastguard Worker    name: "trusty_dirgroup_system_keymaster",
589*789431f2SAndroid Build Coastguard Worker    dirs: ["."],
590*789431f2SAndroid Build Coastguard Worker    visibility: ["//trusty/vendor/google/aosp/scripts"],
591*789431f2SAndroid Build Coastguard Worker}
592