diff options
Diffstat (limited to 'src/client')
-rw-r--r-- | src/client/CMakeLists.txt | 60 | ||||
-rw-r--r-- | src/client/error.h | 33 | ||||
-rw-r--r-- | src/client/ocsp-client.cpp | 54 | ||||
-rw-r--r-- | src/client/ocsp-client.h | 49 |
4 files changed, 196 insertions, 0 deletions
diff --git a/src/client/CMakeLists.txt b/src/client/CMakeLists.txt new file mode 100644 index 0000000..cd3d78d --- /dev/null +++ b/src/client/CMakeLists.txt @@ -0,0 +1,60 @@ +# Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# @file CMakeLists.txt +# @author Sangwan Kwon (sangwan.kwon@samsung.com) +# @brief Make client library for ocsp-service. +# +PKG_CHECK_MODULES(${TARGET_CERT_CHECKER_CLIENT}_DEP + REQUIRED + libsystemd-journal +) + +SET(${TARGET_CERT_CHECKER_CLIENT}_SRCS + ${CERT_CHECKER_SRC_PATH}/client/ocsp-client.cpp +) + +INCLUDE_DIRECTORIES(SYSTEM + ${${TARGET_CERT_CHECKER_CLIENT}_DEP_INCLUDE_DIRS} + ${CERT_CHECKER_SRC_PATH}/ + ${CERT_CHECKER_SRC_PATH}/include/ + ${DPL_CORE_PATH}/include/ + ${DPL_DB_PATH}/include/ +) + +ADD_LIBRARY(${TARGET_CERT_CHECKER_CLIENT} + SHARED ${${TARGET_CERT_CHECKER_CLIENT}_SRCS} +) + +SET_TARGET_PROPERTIES(${TARGET_CERT_CHECKER_CLIENT} + PROPERTIES + COMPILE_FLAGS "-D_GNU_SOURCE -fvisibility=default" + LINKER_LANGUAGE CXX + SOVERSION ${API_VERSION} + VERSION ${VERSION} +) + +TARGET_LINK_LIBRARIES(${TARGET_CERT_CHECKER_CLIENT} + ${${TARGET_CERT_CHECKER_CLIENT}_DEP_LIBRARIES} + ${TARGET_CERT_CHECKER_COMMON} +) + +INSTALL(TARGETS ${TARGET_CERT_CHECKER_CLIENT} DESTINATION ${LIB_INSTALL_DIR}) +INSTALL( + FILES + ocsp-client.h + error.h + DESTINATION + ${INCLUDE_INSTALL_DIR}/cchecker +) diff --git a/src/client/error.h b/src/client/error.h new file mode 100644 index 0000000..7504350 --- /dev/null +++ b/src/client/error.h @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/* + * @file error.h + * @author Sangwan Kwon (sangwan.kwon@samsung.com) + * @version 1.0 + * @brief Error codes of ocsp service. + */ +#pragma once + +namespace CCHECKER { +namespace Client { + +using CCerr = int; + +const CCerr E_CC_NONE = 0; +const CCerr E_CC_INTERNAL = -1; + +} // namespace Client +} // namespace CCHECKER diff --git a/src/client/ocsp-client.cpp b/src/client/ocsp-client.cpp new file mode 100644 index 0000000..77484fc --- /dev/null +++ b/src/client/ocsp-client.cpp @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ +/* + * @file ocsp-client.cpp + * @author Sangwan Kwon (sangwan.kwon@samsung.com) + * @version 1.0 + * @brief Client request OcspService with dispatcher in it + */ +#include "client/ocsp-client.h" +#include "client/error.h" +#include "common/command-id.h" + +#include <cchecker/log.h> + +namespace CCHECKER { +namespace Client { + +OcspClient::OcspClient() : + m_address(SERVICE_STREAM) +{ + m_dispatcher.reset(new Dispatcher(m_address)); +} + +OcspClient::~OcspClient() +{ +} + +CCerr OcspClient::request() +{ + LogDebug("Request to oscp service."); + auto ret = m_dispatcher->methodCall<CommandId>(CommandId::CC_OCSP_SYN); + + LogDebug("Response ret : " << static_cast<int>(ret)); + if(ret == CommandId::CC_OCSP_ACK) + return E_CC_NONE; + else + return E_CC_INTERNAL; +} + +} // namespace Client +} // namespace CCHECKER diff --git a/src/client/ocsp-client.h b/src/client/ocsp-client.h new file mode 100644 index 0000000..e1f29bb --- /dev/null +++ b/src/client/ocsp-client.h @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License + */ +/* + * @file ocsp-client.h + * @author Sangwan Kwon (sangwan.kwon@samsung.com) + * @version 1.0 + * @brief Client request to ocsp service + */ +#pragma once + +#include <string> +#include <memory> + +#include "common/dispatcher.h" +#include "client/error.h" + +namespace CCHECKER { +namespace Client { + +class OcspClient { +public: + OcspClient(); + virtual ~OcspClient(); + + OcspClient(const OcspClient &) = delete; + OcspClient &operator=(const OcspClient &) = delete; + + CCerr request(); + +private: + std::string m_address; + std::unique_ptr<Dispatcher> m_dispatcher; +}; + +} // namespace Client +} // namespace CCHECKER |