Refactor dummy-backend, replace mbedtls with openssl
[platform/core/security/device-certificate-manager-backend.git] / src / dummy-backend / CMakeLists.txt
1 # Copyright (c) 2017 - 2020 Samsung Electronics Co., Ltd All Rights Reserved
2 #
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
6 #
7 #        http://www.apache.org/licenses/LICENSE-2.0
8 #
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.
14 #
15 # @file        src/dummy-backend/CMakeLists.txt
16 # @author      Pawel Kowalski <p.kowalski2@partner.samsung.com>
17 # @author      Jaroslaw Pelczar <j.pelczar@samsung.com>
18 #
19
20 FIND_PROGRAM(OPENSSL_TOOL openssl REQUIRED)
21 FIND_PACKAGE(PkgConfig REQUIRED)
22
23 ADD_EXECUTABLE(bin2c bin2c.c)
24
25 ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/rootCA.key
26         COMMAND ${OPENSSL_TOOL} genrsa -out ${CMAKE_CURRENT_BINARY_DIR}/rootCA.key 1024)
27
28 ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/rootCA.pem
29         COMMAND ${OPENSSL_TOOL} req -x509 -new -nodes -key ${CMAKE_CURRENT_BINARY_DIR}/rootCA.key
30                         -sha256 -days 1024 -out ${CMAKE_CURRENT_BINARY_DIR}/rootCA.pem
31                         -subj "/C=PL/ST=Test1/L=Test2/O=Dis/CN=www.example.com"
32         DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/rootCA.key)
33
34 ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/rootECDSA.key
35         COMMAND ${OPENSSL_TOOL} ecparam -name secp521r1 -genkey -noout -out ${CMAKE_CURRENT_BINARY_DIR}/rootECDSA.key)
36
37 ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/rootECDSA.pem
38         COMMAND ${OPENSSL_TOOL} req -x509 -new -nodes -key ${CMAKE_CURRENT_BINARY_DIR}/rootECDSA.key
39                         -sha256 -days 1024 -out ${CMAKE_CURRENT_BINARY_DIR}/rootECDSA.pem
40                         -subj "/C=PL/ST=Test1/L=Test2/O=Dis/CN=www.example.com"
41         DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/rootECDSA.key)
42
43 ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/rootCA_rsa_key.c
44         COMMAND $<TARGET_FILE:bin2c> ${CMAKE_CURRENT_BINARY_DIR}/rootCA.key ${CMAKE_CURRENT_BINARY_DIR}/rootCA_rsa_key.c dummy_rootca_rsa_key
45         DEPENDS bin2c ${CMAKE_CURRENT_BINARY_DIR}/rootCA.key)
46
47 ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/rootCA_rsa_cert.c
48         COMMAND $<TARGET_FILE:bin2c> ${CMAKE_CURRENT_BINARY_DIR}/rootCA.pem ${CMAKE_CURRENT_BINARY_DIR}/rootCA_rsa_cert.c dummy_rootca_rsa_cert
49         DEPENDS bin2c ${CMAKE_CURRENT_BINARY_DIR}/rootCA.pem)
50
51 ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/rootCA_ecdsa_key.c
52         COMMAND $<TARGET_FILE:bin2c> ${CMAKE_CURRENT_BINARY_DIR}/rootECDSA.key ${CMAKE_CURRENT_BINARY_DIR}/rootCA_ecdsa_key.c dummy_rootca_ecdsa_key
53         DEPENDS bin2c ${CMAKE_CURRENT_BINARY_DIR}/rootECDSA.key)
54
55 ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/rootCA_ecdsa_cert.c
56         COMMAND $<TARGET_FILE:bin2c> ${CMAKE_CURRENT_BINARY_DIR}/rootECDSA.pem ${CMAKE_CURRENT_BINARY_DIR}/rootCA_ecdsa_cert.c dummy_rootca_ecdsa_cert
57         DEPENDS bin2c ${CMAKE_CURRENT_BINARY_DIR}/rootECDSA.pem)
58
59 PKG_CHECK_MODULES(DUMMY_DEPS REQUIRED
60         dlog
61         device-certificate-manager-backend
62         openssl1.1)
63
64 INCLUDE_DIRECTORIES(SYSTEM ${DUMMY_DEPS_INCLUDE_DIRS})
65 LINK_DIRECTORIES(${DUMMY_DEPS_LIBRARY_DIRS})
66
67 INCLUDE_DIRECTORIES(../shared)
68
69 ADD_LIBRARY(${DCM_BACKEND_API}
70         SHARED
71         dcm-backend-api-dummy.cpp
72         dummy_backend.cpp
73         ../shared/log.cpp
74         ${CMAKE_CURRENT_BINARY_DIR}/rootCA_ecdsa_key.c
75         ${CMAKE_CURRENT_BINARY_DIR}/rootCA_ecdsa_cert.c
76         ${CMAKE_CURRENT_BINARY_DIR}/rootCA_rsa_key.c
77         ${CMAKE_CURRENT_BINARY_DIR}/rootCA_rsa_cert.c)
78
79 TARGET_LINK_LIBRARIES(${DCM_BACKEND_API}
80         ${DUMMY_DEPS_LIBRARIES})
81
82 SET_TARGET_PROPERTIES(${DCM_BACKEND_API}
83         PROPERTIES
84         VERSION 1.0
85         DEFINE_SYMBOL DCM_BACKEND_API_DUMMY_EXPORT
86         VISIBILITY_INLINES_HIDDEN TRUE
87         C_VISIBILITY_PRESET hidden
88         CXX_VISIBILITY_PRESET hidden)
89
90 INSTALL(TARGETS ${DCM_BACKEND_API}
91         LIBRARY DESTINATION
92         ${CMAKE_INSTALL_LIBDIR})