1 # Copyright (c) 2013-2019 Samsung Electronics Co., Ltd All Rights Reserved
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
7 # http://www.apache.org/licenses/LICENSE-2.0
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
15 # @file CMakeLists.txt
16 # @author Bartlomiej Grzelewski (b.grzelewski@samsung.com)
17 # @author Krzysztof Jackiewicz (k.jackiewicz@samsung.com)
21 INCLUDE(GNUInstallDirs)
23 SET(EIV_TEST_XML_FILENAME "encrypted_initial_values.xml")
24 SET(EIV_TEST_XML ${CMAKE_CURRENT_SOURCE_DIR}/${EIV_TEST_XML_FILENAME})
25 SET(EIV_KEY_TO_BE_IMPORTED "KeyOne16BytesLen")
26 SET(EIV_PLAIN_MESSAGE "ShortTestMessage")
27 SET(EIV_MESSAGE_ENCRYPTION_IV "abcdefghijklmnop")
29 # encrypt ShortTestMessage using the imported key and 'abcdefghijklmnop' IV
31 COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/aes_128_cbc_encrypt.sh ${EIV_KEY_TO_BE_IMPORTED} ${EIV_MESSAGE_ENCRYPTION_IV}
32 OUTPUT_VARIABLE EIV_ENCRYPTED_MESSAGE_HEX
33 ERROR_VARIABLE EIV_ENCRYPTION_STDERR
34 RESULT_VARIABLE EIV_ENCRYPTION_RESULT
37 IF(NOT ${EIV_ENCRYPTION_RESULT} STREQUAL "0")
38 MESSAGE(FATAL_ERROR "Encryption failed: ${EIV_ENCRYPTION_STDERR}")
39 ENDIF(NOT ${EIV_ENCRYPTION_RESULT} STREQUAL "0")
41 # prepare initial values xml target
42 ADD_CUSTOM_COMMAND(OUTPUT ${EIV_TEST_XML}
43 COMMAND echo -n ${EIV_KEY_TO_BE_IMPORTED} > /tmp/key
44 COMMAND echo -n THIS/STRING/MUST/BE/REPLACED/IN/REAL/DEVICE= | base64 --decode > /tmp/encryption_key
45 COMMAND ${CMAKE_INSTALL_FULL_BINDIR}/ckm_initial_values -d /tmp/key -k /tmp/encryption_key -n TEI_0 -t Key -s AES -b hardware -x ${EIV_TEST_XML}
46 COMMENT "Generating encrypted initial values test xml"
50 ADD_CUSTOM_TARGET(TARGET_EIV_TEST_XML DEPENDS ${EIV_TEST_XML})
52 INSTALL(FILES ${EIV_TEST_XML} DESTINATION ${CKM_TEST_DIR})
55 PKG_CHECK_MODULES(CKM_DEP
61 OPTION("TZ_BACKEND" OFF)
63 ADD_DEFINITIONS("-DTZ_BACKEND")
69 capi-access_control.cpp
70 ckm-privileged-common.cpp
76 INCLUDE_DIRECTORIES(SYSTEM ${CKM_DEP_INCLUDE_DIRS})
78 ${PROJECT_SOURCE_DIR}/src/common
83 ADD_EXECUTABLE(${TARGET_CKM_PRIVILEGED_TESTS} ${CKM_SOURCES})
85 ADD_DEPENDENCIES(${TARGET_CKM_PRIVILEGED_TESTS} TARGET_EIV_TEST_XML)
87 TARGET_LINK_LIBRARIES(${TARGET_CKM_PRIVILEGED_TESTS}
88 ${TARGET_CKM_TEST_COMMON}
93 TARGET_COMPILE_DEFINITIONS(${TARGET_CKM_PRIVILEGED_TESTS}
94 PRIVATE EIV_PLAIN_MESSAGE="${EIV_PLAIN_MESSAGE}"
95 PRIVATE EIV_ENCRYPTED_MESSAGE_HEX="${EIV_ENCRYPTED_MESSAGE_HEX}"
96 PRIVATE EIV_MESSAGE_ENCRYPTION_IV="${EIV_MESSAGE_ENCRYPTION_IV}"
97 PRIVATE EIV_TEST_XML_FILENAME="${EIV_TEST_XML_FILENAME}"
100 INSTALL(TARGETS ${TARGET_CKM_PRIVILEGED_TESTS} DESTINATION bin)