#####
# Local unit test Makefile
#
# This makefile builds and runs the keymaster unit tests locally on the development
# machine, not on an Android device.  Android.mk builds the same tests into the
# "keymaster_tests" binary for execution on-device, but this Makefile runs them locally,
# for a very fast edit/build/test development cycle.
#
# To build and run these tests, one pre-requisite must be manually installed: BoringSSL.
# This Makefile expects to find BoringSSL in a directory adjacent to $ANDROID_BUILD_TOP.
# To get and build it, first install the Ninja build tool (e.g. apt-get install
# ninja-build), then do:
#
# cd $ANDROID_BUILD_TOP/..
# git clone https://boringssl.googlesource.com/boringssl
# cd boringssl
# mdkir build
# cd build
# cmake -GNinja ..
# ninja
#
# Then return to $ANDROID_BUILD_TOP/system/keymaster and run "make".
#####

BASE=../..
SUBS=system/core \
	hardware/libhardware \
	external/gtest \
	system/security/softkeymaster \
	system/security/keystore
GTEST=$(BASE)/external/googletest/googletest

INCLUDES=$(foreach dir,$(SUBS),-I $(BASE)/$(dir)/include) \
	-I $(BASE)/libnativehelper/include/nativehelper \
	-I $(GTEST)/include -isystem $(GTEST) -Iinclude -I$(BASE)/../boringssl/include

ifdef FORCE_32_BIT
ARCH_FLAGS = -m32
endif

ifdef USE_GCC
CXXFLAGS +=-std=c++14 -fprofile-arcs -ftest-coverage
CFLAGS += -fprofile-arcs -ftest-coverage
else
CC=$(BASE)/prebuilts/clang/host/linux-x86/clang-r353983d/bin/clang
CXX=$(BASE)/prebuilts/clang/host/linux-x86/clang-r353983d/bin/clang++
CXXFLAGS +=-std=c++14 -DKEYMASTER_CLANG_TEST_BUILD
CFLAGS += -DKEYMASTER_CLANG_TEST_BUILD
endif

LDFLAGS += $(ARCH_FLAGS)
CPPFLAGS = $(INCLUDES) -g -O0 -MD -MP $(ARCH_FLAGS) -DKEYMASTER_UNIT_TEST_BUILD -DHOST_BUILD
CXXFLAGS += -Wall -Werror -Wno-unused -Winit-self -Wpointer-arith -Wunused-parameter \
	-Werror=sign-compare -Werror=return-type -fno-permissive \
	-Wno-deprecated-declarations -fno-exceptions -DKEYMASTER_NAME_TAGS $(ARCH_FLAGS)
CFLAGS += $(ARCH_FLAGS) -DKEYMASTER_UNIT_TEST_BUILD -DHOST_BUILD

# Uncomment to enable debug logging.
# CXXFLAGS += -DDEBUG

LDLIBS=-L$(BASE)/../boringssl/build/crypto -lcrypto -lpthread -lstdc++ -lgcov

CPPSRCS=\
	km_openssl/aes_key.cpp \
	km_openssl/aes_operation.cpp \
	km_openssl/triple_des_key.cpp \
	km_openssl/triple_des_operation.cpp \
	android_keymaster/android_keymaster.cpp \
	android_keymaster/android_keymaster_messages.cpp \
	tests/android_keymaster_messages_test.cpp \
	tests/android_keymaster_test.cpp \
	tests/android_keymaster_test_utils.cpp \
	android_keymaster/android_keymaster_utils.cpp \
	km_openssl/asymmetric_key.cpp \
	km_openssl/asymmetric_key_factory.cpp \
	km_openssl/attestation_record.cpp \
	km_openssl/block_cipher_operation.cpp \
	tests/attestation_record_test.cpp \
	key_blob_utils/auth_encrypted_key_blob.cpp \
	android_keymaster/authorization_set.cpp \
	tests/authorization_set_test.cpp \
	km_openssl/ec_key.cpp \
	km_openssl/ec_key_factory.cpp \
	legacy_support/ec_keymaster0_key.cpp \
	legacy_support/ec_keymaster1_key.cpp \
	legacy_support/ecdsa_keymaster1_operation.cpp \
	km_openssl/ecdsa_operation.cpp \
	km_openssl/ecies_kem.cpp \
	tests/ecies_kem_test.cpp \
	tests/gtest_main.cpp \
	km_openssl/ckdf.cpp \
	tests/hkdf_test.cpp \
	km_openssl/hkdf.cpp \
	tests/hkdf_test.cpp \
	km_openssl/hmac.cpp \
	km_openssl/hmac_key.cpp \
	km_openssl/hmac_operation.cpp \
	tests/hmac_test.cpp \
	key_blob_utils/integrity_assured_key_blob.cpp \
	km_openssl/iso18033kdf.cpp \
	km_openssl/kdf.cpp \
	tests/kdf1_test.cpp \
	tests/kdf2_test.cpp \
	tests/kdf_test.cpp \
	tests/key_blob_test.cpp \
	legacy_support/keymaster0_engine.cpp \
	legacy_support/keymaster1_engine.cpp \
	android_keymaster/keymaster_configuration.cpp \
	tests/keymaster_configuration_test.cpp \
	android_keymaster/keymaster_enforcement.cpp \
	km_openssl/soft_keymaster_enforcement.cpp \
	tests/keymaster_enforcement_test.cpp \
	android_keymaster/keymaster_tags.cpp \
	android_keymaster/logger.cpp \
	km_openssl/nist_curve_key_exchange.cpp \
	tests/nist_curve_key_exchange_test.cpp \
	key_blob_utils/ocb_utils.cpp \
	km_openssl/openssl_err.cpp \
	km_openssl/openssl_utils.cpp \
	android_keymaster/operation.cpp \
	android_keymaster/operation_table.cpp \
	km_openssl/rsa_key.cpp \
	km_openssl/rsa_key_factory.cpp \
	legacy_support/rsa_keymaster0_key.cpp \
	legacy_support/rsa_keymaster1_key.cpp \
	legacy_support/rsa_keymaster1_operation.cpp \
	km_openssl/rsa_operation.cpp \
	android_keymaster/serializable.cpp \
	contexts/soft_keymaster_context.cpp \
	contexts/soft_keymaster_device.cpp \
	contexts/pure_soft_keymaster_context.cpp \
	km_openssl/symmetric_key.cpp \
	km_openssl/software_random_source.cpp \
	contexts/soft_attestation_cert.cpp \
	km_openssl/attestation_utils.cpp \
	key_blob_utils/software_keyblobs.cpp \
	km_openssl/wrapped_key.cpp

CCSRCS=$(GTEST)/src/gtest-all.cc
CSRCS=key_blob_utils/ocb.c

OBJS=$(CPPSRCS:.cpp=.o) $(CCSRCS:.cc=.o) $(CSRCS:.c=.o)
DEPS=$(CPPSRCS:.cpp=.d) $(CCSRCS:.cc=.d) $(CSRCS:.c=.d)

BINARIES = \
	tests/android_keymaster_messages_test \
	tests/android_keymaster_test \
	tests/attestation_record_test \
	tests/authorization_set_test \
	tests/ecies_kem_test \
	tests/ckdf_test \
	tests/hkdf_test \
	tests/hmac_test \
	tests/kdf1_test \
	tests/kdf2_test \
	tests/kdf_test \
	tests/key_blob_test \
	tests/keymaster_configuration_test \
	tests/keymaster_enforcement_test \
	tests/nist_curve_key_exchange_test

.PHONY: coverage memcheck massif clean run

%.run: %
	./$<
	touch $@

run: $(BINARIES:=.run)

coverage: coverage.info
	genhtml coverage.info --output-directory coverage

coverage.info: run
	lcov --capture --directory=. --output-file coverage.info

%.coverage : %
	$(MAKE) clean && $(MAKE) $<
	./$<
	lcov --capture --directory=. --output-file coverage.info
	genhtml coverage.info --output-directory coverage

#UNINIT_OPTS=--track-origins=yes
UNINIT_OPTS=--undef-value-errors=no

MEMCHECK_OPTS=--leak-check=full \
	--show-reachable=yes \
	--vgdb=full \
	$(UNINIT_OPTS) \
	--error-exitcode=1 \
	--suppressions=valgrind.supp \
	--gen-suppressions=all

MASSIF_OPTS=--tool=massif \
	--stacks=yes

%.memcheck : %
	valgrind $(MEMCHECK_OPTS) ./$< && \
	touch $@

%.massif : %
	valgrind $(MASSIF_OPTS) --massif-out-file=$@ ./$<

memcheck: $(BINARIES:=.memcheck)

massif: $(BINARIES:=.massif)

GTEST_OBJS = $(GTEST)/src/gtest-all.o tests/gtest_main.o

tests/keymaster_configuration_test: tests/keymaster_configuration_test.o \
	android_keymaster/authorization_set.o \
	android_keymaster/serializable.o \
	android_keymaster/logger.o \
	android_keymaster/keymaster_configuration.o \
	$(GTEST_OBJS)

tests/hmac_test: tests/hmac_test.o \
	tests/android_keymaster_test_utils.o \
	android_keymaster/android_keymaster_utils.o \
	android_keymaster/authorization_set.o \
	km_openssl/hmac.o \
	android_keymaster/keymaster_tags.o \
	android_keymaster/logger.o \
	android_keymaster/serializable.o \
	$(GTEST_OBJS)

tests/ckdf_test: tests/ckdf_test.o \
	tests/android_keymaster_test_utils.o \
	android_keymaster/android_keymaster_utils.o \
	android_keymaster/authorization_set.o \
	android_keymaster/keymaster_tags.o \
	android_keymaster/logger.o \
	android_keymaster/serializable.o \
	km_openssl/ckdf.o \
	km_openssl/openssl_err.o \
	$(GTEST_OBJS)

tests/hkdf_test: tests/hkdf_test.o \
	tests/android_keymaster_test_utils.o \
	android_keymaster/android_keymaster_utils.o \
	android_keymaster/authorization_set.o \
	km_openssl/hkdf.o \
	km_openssl/hmac.o \
	km_openssl/kdf.o \
	android_keymaster/keymaster_tags.o \
	android_keymaster/logger.o \
	android_keymaster/serializable.o \
	$(GTEST_OBJS)

tests/kdf_test: tests/kdf_test.o \
	android_keymaster/android_keymaster_utils.o \
	km_openssl/kdf.o \
	android_keymaster/logger.o \
	android_keymaster/serializable.o \
	$(GTEST_OBJS)

tests/kdf1_test: tests/kdf1_test.o \
	tests/android_keymaster_test_utils.o \
	android_keymaster/android_keymaster_utils.o \
	android_keymaster/authorization_set.o \
	km_openssl/iso18033kdf.o \
	km_openssl/kdf.o \
	android_keymaster/keymaster_tags.o \
	android_keymaster/logger.o \
	android_keymaster/serializable.o \
	$(GTEST_OBJS)

tests/kdf2_test: tests/kdf2_test.o \
	tests/android_keymaster_test_utils.o \
	android_keymaster/android_keymaster_utils.o \
	android_keymaster/authorization_set.o \
	km_openssl/iso18033kdf.o \
	km_openssl/kdf.o \
	android_keymaster/keymaster_tags.o \
	android_keymaster/logger.o \
	android_keymaster/serializable.o \
	$(GTEST_OBJS)

tests/nist_curve_key_exchange_test: tests/nist_curve_key_exchange_test.o \
	tests/android_keymaster_test_utils.o \
	android_keymaster/authorization_set.o \
	android_keymaster/keymaster_tags.o \
	android_keymaster/logger.o \
	km_openssl/nist_curve_key_exchange.o \
	km_openssl/openssl_err.o \
	km_openssl/openssl_utils.o \
	android_keymaster/serializable.o \
	$(GTEST_OBJS)

tests/ecies_kem_test: tests/ecies_kem_test.o \
	android_keymaster/android_keymaster_utils.o \
	tests/android_keymaster_test_utils.o \
	android_keymaster/authorization_set.o \
	km_openssl/ecies_kem.o \
	km_openssl/hkdf.o \
	km_openssl/hmac.o \
	km_openssl/kdf.o \
	android_keymaster/keymaster_tags.o \
	android_keymaster/logger.o \
	km_openssl/nist_curve_key_exchange.o \
	km_openssl/openssl_err.o \
	km_openssl/openssl_utils.o \
	android_keymaster/serializable.o \
	$(GTEST_OBJS)

tests/authorization_set_test: tests/authorization_set_test.o \
	tests/android_keymaster_test_utils.o \
	android_keymaster/authorization_set.o \
	android_keymaster/keymaster_tags.o \
	android_keymaster/logger.o \
	android_keymaster/serializable.o \
	$(GTEST_OBJS)

tests/key_blob_test: tests/key_blob_test.o \
	tests/android_keymaster_test_utils.o \
	android_keymaster/android_keymaster_utils.o \
	key_blob_utils/auth_encrypted_key_blob.o \
	android_keymaster/authorization_set.o \
	key_blob_utils/integrity_assured_key_blob.o \
	android_keymaster/keymaster_tags.o \
	android_keymaster/logger.o \
	key_blob_utils/ocb.o \
	key_blob_utils/ocb_utils.o \
	km_openssl/openssl_err.o \
	android_keymaster/serializable.o \
	$(GTEST_OBJS)

tests/android_keymaster_messages_test: tests/android_keymaster_messages_test.o \
	android_keymaster/android_keymaster_messages.o \
	tests/android_keymaster_test_utils.o \
	android_keymaster/android_keymaster_utils.o \
	android_keymaster/authorization_set.o \
	android_keymaster/keymaster_tags.o \
	android_keymaster/logger.o \
	android_keymaster/serializable.o \
	$(GTEST_OBJS)

tests/android_keymaster_test: tests/android_keymaster_test.o \
	android_keymaster/android_keymaster.o \
	android_keymaster/android_keymaster_messages.o \
	android_keymaster/android_keymaster_utils.o \
	android_keymaster/authorization_set.o \
	android_keymaster/keymaster_enforcement.o \
	android_keymaster/keymaster_tags.o \
	android_keymaster/logger.o \
	android_keymaster/operation.o \
	android_keymaster/operation_table.o \
	android_keymaster/serializable.o \
	contexts/pure_soft_keymaster_context.o \
	contexts/soft_attestation_cert.o \
	contexts/soft_keymaster_context.o \
	contexts/soft_keymaster_device.o \
	key_blob_utils/auth_encrypted_key_blob.o \
	key_blob_utils/integrity_assured_key_blob.o \
	key_blob_utils/ocb.o \
	key_blob_utils/ocb_utils.o \
	key_blob_utils/software_keyblobs.o \
	km_openssl/aes_key.o \
	km_openssl/aes_key.o \
	km_openssl/aes_operation.o \
	km_openssl/aes_operation.o \
	km_openssl/asymmetric_key.o \
	km_openssl/asymmetric_key_factory.o \
	km_openssl/attestation_record.o \
	km_openssl/attestation_utils.o \
	km_openssl/block_cipher_operation.o \
	km_openssl/ckdf.o \
	km_openssl/ec_key.o \
	km_openssl/ec_key_factory.o \
	km_openssl/ecdsa_operation.o \
	km_openssl/hmac_key.o \
	km_openssl/hmac_operation.o \
	km_openssl/openssl_err.o \
	km_openssl/openssl_utils.o \
	km_openssl/rsa_key.o \
	km_openssl/rsa_key_factory.o \
	km_openssl/rsa_operation.o \
	km_openssl/soft_keymaster_enforcement.o \
	km_openssl/software_random_source.o \
	km_openssl/symmetric_key.o \
	km_openssl/triple_des_key.o \
	km_openssl/triple_des_operation.o \
	km_openssl/wrapped_key.o \
	legacy_support/ec_keymaster0_key.o \
	legacy_support/ec_keymaster1_key.o \
	legacy_support/ecdsa_keymaster1_operation.o \
	legacy_support/keymaster0_engine.o \
	legacy_support/keymaster1_engine.o \
	legacy_support/rsa_keymaster0_key.o \
	legacy_support/rsa_keymaster1_key.o \
	legacy_support/rsa_keymaster1_operation.o \
	tests/android_keymaster_test_utils.o \
	$(BASE)/system/security/keystore/keyblob_utils.o \
	$(GTEST_OBJS)

tests/keymaster_enforcement_test: tests/keymaster_enforcement_test.o \
	android_keymaster/android_keymaster_messages.o \
	tests/android_keymaster_test_utils.o \
	android_keymaster/android_keymaster_utils.o \
	android_keymaster/authorization_set.o \
	android_keymaster/keymaster_enforcement.o \
	km_openssl/ckdf.o \
	km_openssl/openssl_err.o \
	km_openssl/soft_keymaster_enforcement.o \
	android_keymaster/keymaster_tags.o \
	android_keymaster/logger.o \
	android_keymaster/serializable.o \
	$(GTEST_OBJS)

tests/attestation_record_test: tests/attestation_record_test.o \
	tests/android_keymaster_test_utils.o \
	android_keymaster/android_keymaster_utils.o \
	km_openssl/attestation_record.o \
	android_keymaster/authorization_set.o \
	android_keymaster/keymaster_tags.o \
	android_keymaster/logger.o \
	km_openssl/openssl_err.o \
	android_keymaster/serializable.o \
	$(GTEST_OBJS)

tests/wrapped_key_test: tests/wrapped_key_test.o \
	tests/android_keymaster_test_utils.o \
	android_keymaster/android_keymaster_utils.o \
	km_openssl/attestation_record.o \
	android_keymaster/authorization_set.o \
	android_keymaster/keymaster_tags.o \
	android_keymaster/logger.o \
	km_openssl/openssl_err.o \
	android_keymaster/serializable.o \
	km_openssl/wrapped_key.o \
	$(GTEST_OBJS)

$(GTEST)/src/gtest-all.o: CXXFLAGS:=$(subst -Wmissing-declarations,,$(CXXFLAGS))

clean:
	rm -f $(OBJS) $(DEPS) $(BINARIES) \
		$(BINARIES:=.run) $(BINARIES:=.memcheck) $(BINARIES:=.massif) \
		*gcov *gcno *gcda coverage.info
	rm -rf coverage

-include $(CPPSRCS:.cpp=.d)
-include $(CCSRCS:.cc=.d)
