blob: 9bd363ffa586ff93dcefc80cd97abd792e6c8f0b [file] [log] [blame]
cc_defaults {
name: "keystore_defaults",
cflags: [
"-Wall",
"-Werror",
"-Wextra",
"-Wunused",
],
sanitize: {
misc_undefined: ["integer"],
},
clang: true,
}
cc_binary {
name: "keystore",
defaults: ["keystore_defaults"],
srcs: [
":IKeyAttestationApplicationIdProvider.aidl",
"KeyStore.cpp",
"auth_token_table.cpp",
"blob.cpp",
"confirmation_manager.cpp",
"grant_store.cpp",
"key_config.proto",
"key_proto_handler.cpp",
"key_store_service.cpp",
"keyblob_utils.cpp",
"keymaster_enforcement.cpp",
"keymaster_worker.cpp",
"keystore_attestation_id.cpp",
"keystore_main.cpp",
"keystore_utils.cpp",
"legacy_keymaster_device_wrapper.cpp",
"operation.cpp",
"operation_config.proto",
"operation_proto_handler.cpp",
"permissions.cpp",
"user_state.cpp",
],
shared_libs: [
"android.hardware.confirmationui@1.0",
"android.hardware.keymaster@3.0",
"android.hardware.keymaster@4.0",
"android.system.wifi.keystore@1.0",
"libbase",
"libbinder",
"libcrypto",
"libcutils",
"libhardware",
"libhidlbase",
"libhidltransport",
"libhwbinder",
"libkeymaster4support",
"libkeymaster_messages",
"libkeymaster_portable",
"libkeystore_aidl",
"libkeystore_binder",
"libkeystore_parcelables",
"liblog",
"libprotobuf-cpp-lite",
"libselinux",
"libservices",
"libsoftkeymasterdevice",
"libutils",
"libwifikeystorehal",
],
init_rc: ["keystore.rc"],
aidl: {
include_dirs: ["frameworks/base/core/java/"],
},
product_variables: {
pdk: {
enabled: false,
},
debuggable: {
cflags: [
// Allow VTS tests running as root to have
// additional permissions.
"-DGRANT_ROOT_ALL_PERMISSIONS",
],
},
},
required: ["keystore_cli_v2"],
}
cc_binary {
name: "keystore_cli",
defaults: ["keystore_defaults"],
srcs: ["keystore_cli.cpp"],
shared_libs: [
"android.hardware.keymaster@4.0",
"libbinder",
"libcrypto",
"libcutils",
"libhidlbase",
"libhwbinder",
"libkeystore_aidl", // for IKeyStoreService.asInterface()
"libkeystore_binder",
"libkeystore_parcelables",
"liblog",
"libutils",
],
}
cc_binary {
name: "keystore_cli_v2",
defaults: ["keystore_defaults"],
cflags: [
"-DKEYMASTER_NAME_TAGS",
"-Wno-unused-parameter",
],
srcs: ["keystore_cli_v2.cpp"],
shared_libs: [
"android.hardware.confirmationui@1.0",
"libbinder",
"android.hardware.keymaster@4.0",
"libchrome",
"libutils",
"libhidlbase",
"libhwbinder",
"libkeymaster4support",
"libkeystore_aidl",
"libkeystore_binder",
"libkeystore_parcelables",
],
local_include_dirs: ["include"],
}
cc_library_shared {
name: "libkeystore_parcelables",
defaults: ["keystore_defaults"],
export_include_dirs: ["include"],
srcs: [
"KeyAttestationApplicationId.cpp",
"KeyAttestationPackageInfo.cpp",
"KeymasterArguments.cpp",
"keystore_aidl_hidl_marshalling_utils.cpp",
"KeystoreResponse.cpp",
"OperationResult.cpp",
"Signature.cpp",
],
shared_libs: [
"android.hardware.keymaster@4.0",
"libbinder",
"libhardware",
"libhidlbase",
"libhwbinder",
"libkeymaster4support",
"liblog",
"libprotobuf-cpp-lite",
"libutils",
],
export_shared_lib_headers: [
"android.hardware.keymaster@4.0",
"libbinder",
"libhidlbase",
"libhwbinder",
"libkeymaster4support",
],
}
// Library for keystore clients
cc_library_shared {
name: "libkeystore_binder",
defaults: ["keystore_defaults"],
srcs: [
"keyblob_utils.cpp",
"keystore_client.proto",
"keystore_client_impl.cpp",
"keystore_get.cpp",
],
shared_libs: [
"android.hardware.keymaster@4.0",
"libbinder",
"libhidlbase",
"libhwbinder",
"libkeymaster4support",
"libkeystore_aidl",
"libkeystore_parcelables",
"liblog",
"libprotobuf-cpp-lite",
"libutils",
],
proto: {
type: "lite",
export_proto_headers: true,
},
aidl: {
export_aidl_headers: true,
include_dirs: ["frameworks/base/core/java/"],
},
export_include_dirs: ["include"],
export_shared_lib_headers: [
"android.hardware.keymaster@4.0",
"libbinder",
"libhidlbase",
"libhwbinder",
"libkeystore_aidl",
"libkeystore_parcelables",
],
}
// Library for keystore clients using the WiFi HIDL interface
cc_library_shared {
name: "libkeystore-wifi-hidl",
defaults: ["keystore_defaults"],
srcs: ["keystore_get_wifi_hidl.cpp"],
shared_libs: [
"android.system.wifi.keystore@1.0",
"libbase",
"libhidlbase",
"libhidltransport",
"liblog",
"libutils",
],
export_include_dirs: ["include"],
vendor: true,
}
// Library for unit tests
cc_library_static {
name: "libkeystore_test",
defaults: ["keystore_defaults"],
srcs: [
":IKeyAttestationApplicationIdProvider.aidl",
"auth_token_table.cpp",
"blob.cpp",
"keystore_attestation_id.cpp",
"KeyAttestationApplicationId.cpp",
"KeyAttestationPackageInfo.cpp",
"Signature.cpp",
],
cflags: [ "-O0", ],
static_libs: ["libgtest_main"],
shared_libs: [
"android.hardware.keymaster@4.0",
"libbinder",
"libcrypto",
"libhidlbase",
"libhwbinder",
"libkeymaster4support",
"libutils",
"libkeystore_aidl",
"libkeystore_parcelables",
],
export_shared_lib_headers: [
"android.hardware.keymaster@4.0",
"libhidlbase",
"libhwbinder",
"libkeymaster4support",
],
aidl: {
include_dirs: ["frameworks/base/core/java/"],
},
export_include_dirs: ["include"],
}
filegroup {
name: "keystore_aidl",
srcs: [
"binder/android/security/IConfirmationPromptCallback.aidl",
"binder/android/security/keystore/IKeystoreCertificateChainCallback.aidl",
"binder/android/security/keystore/IKeystoreExportKeyCallback.aidl",
"binder/android/security/keystore/IKeystoreKeyCharacteristicsCallback.aidl",
"binder/android/security/keystore/IKeystoreOperationResultCallback.aidl",
"binder/android/security/keystore/IKeystoreResponseCallback.aidl",
"binder/android/security/keystore/IKeystoreService.aidl",
],
path: "binder",
}
cc_library_shared {
name: "libkeystore_aidl",
srcs: [":keystore_aidl"],
aidl: {
export_aidl_headers: true,
include_dirs: [
"system/security/keystore/binder",
],
},
shared_libs: [
"libbinder",
"libcutils",
"libhardware",
"libhidlbase",
"libhidltransport",
"libhwbinder",
"libkeystore_parcelables",
"liblog",
"libselinux",
"libutils",
],
export_shared_lib_headers: [
"libbinder",
"libkeystore_parcelables",
],
}