From: Krzysztof Jackiewicz Date: Wed, 17 Jun 2015 11:07:58 +0000 (+0200) Subject: Add inter-service messages X-Git-Tag: accepted/tizen/mobile/20150630.002445~8 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fsecurity%2Fkey-manager.git;a=commitdiff_plain;h=51fc0f4d8f80ab3a6249a0d2e0675bed1e864c37 Add inter-service messages [Feature] Development of inter-service communication [Solution] Create inter-service communication message class hierarchy including key request and response messages. [Verification] Successfull compilation Change-Id: I41de882a089560201395fbcfe0143c067c1aee1f --- diff --git a/src/manager/main/credentials.h b/src/manager/main/credentials.h new file mode 100644 index 0000000..e54f5df --- /dev/null +++ b/src/manager/main/credentials.h @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2000 - 2015 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 credentials.h + * @author Krzysztof Jackiewicz (k.jackiewicz@samsung.com) + * @version 1.0 + */ + +#pragma once + +#include +#include + +namespace CKM { + +struct Credentials { + Credentials() : clientUid(0) {} + Credentials(uid_t socketUid, const Label & socketLabel) + : clientUid(socketUid), smackLabel(socketLabel) {} + uid_t clientUid; + Label smackLabel; +}; + +} // namespace CKM diff --git a/src/manager/main/generic-socket-manager.h b/src/manager/main/generic-socket-manager.h index c9d5eda..4108c3b 100644 --- a/src/manager/main/generic-socket-manager.h +++ b/src/manager/main/generic-socket-manager.h @@ -35,6 +35,7 @@ #include #include #include +#include extern "C" { struct msghdr; @@ -44,14 +45,6 @@ namespace CKM { typedef int InterfaceID; -struct Credentials { - Credentials() : clientUid(0) {} - Credentials(uid_t socketUid, const Label & socketLabel) - : clientUid(socketUid), smackLabel(socketLabel) {} - uid_t clientUid; - Label smackLabel; -}; - struct ConnectionID { int sock; // This is decriptor used for connection int counter; // Unique handler per socket diff --git a/src/manager/main/service-messages.h b/src/manager/main/service-messages.h new file mode 100644 index 0000000..f23711f --- /dev/null +++ b/src/manager/main/service-messages.h @@ -0,0 +1,78 @@ +/* + * Copyright (c) 2000 - 2015 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 service-messages.h + * @author Krzysztof Jackiewicz (k.jackiewicz@samsung.com) + * @version 1.0 + */ + +#pragma once + +#include + +#include +#include +#include +#include +#include +#include + +namespace CKM { + +// inter-service communication message base class +struct MsgBase +{ + explicit MsgBase(int id) : id(id) {} + virtual ~MsgBase() {} + + int id; +}; + +// key request +struct MsgKeyRequest : public MsgBase +{ + MsgKeyRequest(int id, + const Credentials& cred, + const Name& name, + const Label& label, + const Password& password) : + MsgBase(id), + cred(cred), + name(name), + label(label), + password(password) + {} + Credentials cred; + Name name; + Label label; + Password password; +}; + +// key response +struct MsgKeyResponse : public MsgBase +{ + MsgKeyResponse(int id, const Crypto::GKeyShPtr& key, int errorCode = CKM_API_SUCCESS) : + MsgBase(id), + key(key), + error(errorCode) + {} + Crypto::GKeyShPtr key; + int error; +}; + +typedef CommunicationManager CommMgr; + +} /* namespace CKM */