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