try_catch_async([&] {
m_counter++;
- MessageBuffer send;
- Serialization::Serialize(send, static_cast<int>(LogicCommand::SAVE));
- Serialization::Serialize(send, m_counter);
- Serialization::Serialize(send, static_cast<int>(dataType));
- Serialization::Serialize(send, alias);
- Serialization::Serialize(send, rawData);
- Serialization::Serialize(send, PolicySerializable(policy));
+ auto send = MessageBuffer::Serialize(static_cast<int>(LogicCommand::SAVE),
+ m_counter,
+ static_cast<int>(dataType),
+ alias,
+ rawData,
+ PolicySerializable(policy));
thread()->sendMessage(AsyncRequest(observer,
SERVICE_SOCKET_CKM_STORAGE,
{
int command;
int id;
- Deserialization::Deserialize(m_buffer, command);
- Deserialization::Deserialize(m_buffer, id);
+ m_buffer.Deserialize(command, id);
auto it = m_requests.find(id);
if (it == m_requests.end()) {
int retCode;
int dataType;
- Deserialization::Deserialize(m_buffer, retCode);
- Deserialization::Deserialize(m_buffer, dataType);
+ m_buffer.Deserialize(retCode, dataType);
DBDataType dt = static_cast<DBDataType>(dataType);
if (dt >= DBDataType::DB_KEY_FIRST && dt <= DBDataType::DB_KEY_LAST) {
return CKM_API_ERROR_INPUT_PARAM;
}
- MessageBuffer send, recv;
- Serialization::Serialize(send, static_cast<int>(ControlCommand::UNLOCK_USER_KEY));
- Serialization::Serialize(send, user);
- Serialization::Serialize(send, password);
-
+ MessageBuffer recv;
+ auto send = MessageBuffer::Serialize(static_cast<int>(ControlCommand::UNLOCK_USER_KEY),
+ user,
+ password);
int retCode = sendToServer(
SERVICE_SOCKET_CKM_CONTROL,
send.Pop(),
return retCode;
}
- Deserialization::Deserialize(recv, retCode);
+ recv.Deserialize(retCode);
return retCode;
});
return CKM_API_ERROR_INPUT_PARAM;
}
- MessageBuffer send, recv;
- Serialization::Serialize(send, static_cast<int>(ControlCommand::LOCK_USER_KEY));
- Serialization::Serialize(send, user);
-
+ MessageBuffer recv;
+ auto send = MessageBuffer::Serialize(static_cast<int>(ControlCommand::LOCK_USER_KEY),
+ user);
int retCode = sendToServer(
SERVICE_SOCKET_CKM_CONTROL,
send.Pop(),
return retCode;
}
- Deserialization::Deserialize(recv, retCode);
+ recv.Deserialize(retCode);
return retCode;
});
return CKM_API_ERROR_INPUT_PARAM;
}
- MessageBuffer send, recv;
- Serialization::Serialize(send, static_cast<int>(ControlCommand::REMOVE_USER_DATA));
- Serialization::Serialize(send, user);
-
+ MessageBuffer recv;
+ auto send = MessageBuffer::Serialize(static_cast<int>(ControlCommand::REMOVE_USER_DATA),
+ user);
int retCode = sendToServer(
SERVICE_SOCKET_CKM_CONTROL,
send.Pop(),
return retCode;
}
- Deserialization::Deserialize(recv, retCode);
+ recv.Deserialize(retCode);
return retCode;
});
return CKM_API_ERROR_INPUT_PARAM;
}
- MessageBuffer send, recv;
- Serialization::Serialize(send, static_cast<int>(ControlCommand::CHANGE_USER_PASSWORD));
- Serialization::Serialize(send, user);
- Serialization::Serialize(send, oldPassword);
- Serialization::Serialize(send, newPassword);
+ MessageBuffer recv;
+ auto send = MessageBuffer::Serialize(
+ static_cast<int>(ControlCommand::CHANGE_USER_PASSWORD),
+ user,
+ oldPassword,
+ newPassword);
int retCode = sendToServer(
SERVICE_SOCKET_CKM_CONTROL,
return retCode;
}
- Deserialization::Deserialize(recv, retCode);
+ recv.Deserialize(retCode);
return retCode;
});
return CKM_API_ERROR_INPUT_PARAM;
}
- MessageBuffer send, recv;
- Serialization::Serialize(send, static_cast<int>(ControlCommand::RESET_USER_PASSWORD));
- Serialization::Serialize(send, user);
- Serialization::Serialize(send, newPassword);
+ MessageBuffer recv;
+ auto send = MessageBuffer::Serialize(
+ static_cast<int>(ControlCommand::RESET_USER_PASSWORD),
+ user,
+ newPassword);
int retCode = sendToServer(
SERVICE_SOCKET_CKM_CONTROL,
return retCode;
}
- Deserialization::Deserialize(recv, retCode);
+ recv.Deserialize(retCode);
return retCode;
});
return CKM_API_ERROR_INPUT_PARAM;
}
- MessageBuffer send,recv;
- Serialization::Serialize(send, static_cast<int>(ControlCommand::REMOVE_APP_DATA));
- Serialization::Serialize(send, smackLabel);
-
+ MessageBuffer recv;
+ auto send = MessageBuffer::Serialize(static_cast<int>(ControlCommand::REMOVE_APP_DATA),
+ smackLabel);
int retCode = sendToServer(
SERVICE_SOCKET_CKM_CONTROL,
send.Pop(),
return retCode;
}
- Deserialization::Deserialize(recv, retCode);
+ recv.Deserialize(retCode);
return retCode;
});
return CKM_API_ERROR_INPUT_PARAM;
}
- MessageBuffer send, recv;
- Serialization::Serialize(send, static_cast<int>(ControlCommand::SET_CC_MODE));
- Serialization::Serialize(send, static_cast<int>(mode));
-
+ MessageBuffer recv;
+ auto send = MessageBuffer::Serialize(static_cast<int>(ControlCommand::SET_CC_MODE),
+ static_cast<int>(mode));
int retCode = sendToServer(
SERVICE_SOCKET_CKM_CONTROL,
send.Pop(),
return retCode;
}
- Deserialization::Deserialize(recv, retCode);
+ recv.Deserialize(retCode);
return retCode;
});
AccessRight granted)
{
return try_catch([&] {
- MessageBuffer send, recv;
- Serialization::Serialize(send, static_cast<int>(ControlCommand::ALLOW_ACCESS));
- Serialization::Serialize(send, static_cast<int>(user));
- Serialization::Serialize(send, owner);
- Serialization::Serialize(send, alias);
- Serialization::Serialize(send, accessor);
- Serialization::Serialize(send, static_cast<int>(granted));
-
+ MessageBuffer recv;
+ auto send = MessageBuffer::Serialize(static_cast<int>(ControlCommand::ALLOW_ACCESS),
+ static_cast<int>(user),
+ owner,
+ alias,
+ accessor,
+ static_cast<int>(granted));
int retCode = sendToServer(
SERVICE_SOCKET_CKM_CONTROL,
send.Pop(),
int command;
int counter;
- Deserialization::Deserialize(recv, command);
- Deserialization::Deserialize(recv, counter);
- Deserialization::Deserialize(recv, retCode);
-
+ recv.Deserialize(command, counter, retCode);
return retCode;
});
}
const std::string &accessor)
{
return try_catch([&] {
- MessageBuffer send, recv;
- Serialization::Serialize(send, static_cast<int>(ControlCommand::DENY_ACCESS));
- Serialization::Serialize(send, static_cast<int>(user));
- Serialization::Serialize(send, owner);
- Serialization::Serialize(send, alias);
- Serialization::Serialize(send, accessor);
-
+ MessageBuffer recv;
+ auto send = MessageBuffer::Serialize(static_cast<int>(ControlCommand::DENY_ACCESS),
+ static_cast<int>(user),
+ owner,
+ alias,
+ accessor);
int retCode = sendToServer(
SERVICE_SOCKET_CKM_CONTROL,
send.Pop(),
int command;
int counter;
- Deserialization::Deserialize(recv, command);
- Deserialization::Deserialize(recv, counter);
- Deserialization::Deserialize(recv, retCode);
-
+ recv.Deserialize(command, counter, retCode);
return retCode;
});
}
if (alias.empty() || rawData.empty())
return CKM_API_ERROR_INPUT_PARAM;
- MessageBuffer send, recv;
- Serialization::Serialize(send, static_cast<int>(LogicCommand::SAVE));
- Serialization::Serialize(send, m_counter);
- Serialization::Serialize(send, static_cast<int>(dataType));
- Serialization::Serialize(send, alias);
- Serialization::Serialize(send, rawData);
- Serialization::Serialize(send, PolicySerializable(policy));
+ MessageBuffer recv;
+ auto send = MessageBuffer::Serialize(static_cast<int>(LogicCommand::SAVE),
+ m_counter,
+ static_cast<int>(dataType),
+ alias,
+ rawData,
+ PolicySerializable(policy));
int retCode = sendToServer(
SERVICE_SOCKET_CKM_STORAGE,
int command;
int counter;
int opType;
- Deserialization::Deserialize(recv, command);
- Deserialization::Deserialize(recv, counter);
- Deserialization::Deserialize(recv, retCode);
- Deserialization::Deserialize(recv, opType);
+ recv.Deserialize(command, counter, retCode, opType);
if (counter != m_counter) {
return CKM_API_ERROR_UNKNOWN;
if (alias.empty())
return CKM_API_ERROR_INPUT_PARAM;
- MessageBuffer send, recv;
- Serialization::Serialize(send, static_cast<int>(LogicCommand::REMOVE));
- Serialization::Serialize(send, m_counter);
- Serialization::Serialize(send, static_cast<int>(dataType));
- Serialization::Serialize(send, alias);
-
+ MessageBuffer recv;
+ auto send = MessageBuffer::Serialize(static_cast<int>(LogicCommand::REMOVE),
+ m_counter,
+ static_cast<int>(dataType),
+ alias);
int retCode = sendToServer(
SERVICE_SOCKET_CKM_STORAGE,
send.Pop(),
int command;
int counter;
int opType;
- Deserialization::Deserialize(recv, command);
- Deserialization::Deserialize(recv, counter);
- Deserialization::Deserialize(recv, retCode);
- Deserialization::Deserialize(recv, opType);
+ recv.Deserialize(command, counter, retCode, opType);
if (counter != m_counter) {
return CKM_API_ERROR_UNKNOWN;
if (alias.empty())
return CKM_API_ERROR_INPUT_PARAM;
- MessageBuffer send, recv;
- Serialization::Serialize(send, static_cast<int>(LogicCommand::GET));
- Serialization::Serialize(send, m_counter);
- Serialization::Serialize(send, static_cast<int>(sendDataType));
- Serialization::Serialize(send, alias);
- Serialization::Serialize(send, password);
-
+ MessageBuffer recv;
+ auto send = MessageBuffer::Serialize(static_cast<int>(LogicCommand::GET),
+ m_counter,
+ static_cast<int>(sendDataType),
+ alias,
+ password);
int retCode = sendToServer(
SERVICE_SOCKET_CKM_STORAGE,
send.Pop(),
int command;
int counter;
int tmpDataType;
- Deserialization::Deserialize(recv, command);
- Deserialization::Deserialize(recv, counter);
- Deserialization::Deserialize(recv, retCode);
- Deserialization::Deserialize(recv, tmpDataType);
- Deserialization::Deserialize(recv, rawData);
+ recv.Deserialize(command, counter, retCode, tmpDataType,rawData);
recvDataType = static_cast<DBDataType>(tmpDataType);
if (counter != m_counter) {
{
return try_catch([&] {
- MessageBuffer send, recv;
- Serialization::Serialize(send, static_cast<int>(LogicCommand::GET_LIST));
- Serialization::Serialize(send, m_counter);
- Serialization::Serialize(send, static_cast<int>(dataType));
-
+ MessageBuffer recv;
+ auto send = MessageBuffer::Serialize(static_cast<int>(LogicCommand::GET_LIST),
+ m_counter,
+ static_cast<int>(dataType));
int retCode = sendToServer(
SERVICE_SOCKET_CKM_STORAGE,
send.Pop(),
int command;
int counter;
int tmpDataType;
-
- Deserialization::Deserialize(recv, command);
- Deserialization::Deserialize(recv, counter);
- Deserialization::Deserialize(recv, retCode);
- Deserialization::Deserialize(recv, tmpDataType);
- Deserialization::Deserialize(recv, aliasVector);
+ recv.Deserialize(command, counter, retCode, tmpDataType, aliasVector);
if ((command != static_cast<int>(LogicCommand::GET_LIST)) || (counter != m_counter)) {
return CKM_API_ERROR_UNKNOWN;
}
int my_counter = m_counter;
return try_catch([&] {
- MessageBuffer send, recv;
- Serialization::Serialize(send, static_cast<int>(cmd_type));
- Serialization::Serialize(send, my_counter);
- Serialization::Serialize(send, static_cast<int>(additional_param));
- Serialization::Serialize(send, PolicySerializable(policyPrivateKey));
- Serialization::Serialize(send, PolicySerializable(policyPublicKey));
- Serialization::Serialize(send, privateKeyAlias);
- Serialization::Serialize(send, publicKeyAlias);
-
+ MessageBuffer recv;
+ auto send = MessageBuffer::Serialize(static_cast<int>(cmd_type),
+ my_counter,
+ static_cast<int>(additional_param),
+ PolicySerializable(policyPrivateKey),
+ PolicySerializable(policyPublicKey),
+ privateKeyAlias,
+ publicKeyAlias);
int retCode = sendToServer(
SERVICE_SOCKET_CKM_STORAGE,
send.Pop(),
int command;
int counter;
-
- Deserialization::Deserialize(recv, command);
- Deserialization::Deserialize(recv, counter);
- Deserialization::Deserialize(recv, retCode);
+ recv.Deserialize(command, counter, retCode);
if (counter != my_counter) {
return CKM_API_ERROR_UNKNOWN;
}
{
return try_catch([&] {
- MessageBuffer send, recv;
- Serialization::Serialize(send, static_cast<int>(command));
- Serialization::Serialize(send, counter);
- Serialization::Serialize(send, certificate->getDER());
- Serialization::Serialize(send, sendData);
+ MessageBuffer recv;
+ auto send = MessageBuffer::Serialize(static_cast<int>(command),
+ counter,
+ certificate->getDER(),
+ sendData);
int retCode = sendToServer(
SERVICE_SOCKET_CKM_STORAGE,
send.Pop(),
int retCommand;
int retCounter;
RawBufferVector rawBufferVector;
-
- Deserialization::Deserialize(recv, retCommand);
- Deserialization::Deserialize(recv, retCounter);
- Deserialization::Deserialize(recv, retCode);
- Deserialization::Deserialize(recv, rawBufferVector);
+ recv.Deserialize(retCommand, retCounter, retCode, rawBufferVector);
if ((counter != retCounter) || (static_cast<int>(command) != retCommand)) {
return CKM_API_ERROR_UNKNOWN;
int my_counter = m_counter;
return try_catch([&] {
- MessageBuffer send, recv;
- Serialization::Serialize(send, static_cast<int>(LogicCommand::CREATE_SIGNATURE));
- Serialization::Serialize(send, my_counter);
- Serialization::Serialize(send, privateKeyAlias);
- Serialization::Serialize(send, password);
- Serialization::Serialize(send, message);
- Serialization::Serialize(send, static_cast<int>(hash));
- Serialization::Serialize(send, static_cast<int>(padding));
-
+ MessageBuffer recv;
+ auto send = MessageBuffer::Serialize(static_cast<int>(LogicCommand::CREATE_SIGNATURE),
+ my_counter,
+ privateKeyAlias,
+ password,
+ message,
+ static_cast<int>(hash),
+ static_cast<int>(padding));
int retCode = sendToServer(
SERVICE_SOCKET_CKM_STORAGE,
send.Pop(),
int command;
int counter;
- Deserialization::Deserialize(recv, command);
- Deserialization::Deserialize(recv, counter);
- Deserialization::Deserialize(recv, retCode);
- Deserialization::Deserialize(recv, signature);
+ recv.Deserialize(command, counter, retCode, signature);
if ((command != static_cast<int>(LogicCommand::CREATE_SIGNATURE))
|| (counter != my_counter))
int my_counter = m_counter;
return try_catch([&] {
- MessageBuffer send, recv;
- Serialization::Serialize(send, static_cast<int>(LogicCommand::VERIFY_SIGNATURE));
- Serialization::Serialize(send, my_counter);
- Serialization::Serialize(send, publicKeyOrCertAlias);
- Serialization::Serialize(send, password);
- Serialization::Serialize(send, message);
- Serialization::Serialize(send, signature);
- Serialization::Serialize(send, static_cast<int>(hash));
- Serialization::Serialize(send, static_cast<int>(padding));
-
+ MessageBuffer recv;
+ auto send = MessageBuffer::Serialize(static_cast<int>(LogicCommand::VERIFY_SIGNATURE),
+ my_counter,
+ publicKeyOrCertAlias,
+ password,
+ message,
+ signature,
+ static_cast<int>(hash),
+ static_cast<int>(padding));
int retCode = sendToServer(
SERVICE_SOCKET_CKM_STORAGE,
send.Pop(),
int command;
int counter;
- Deserialization::Deserialize(recv, command);
- Deserialization::Deserialize(recv, counter);
- Deserialization::Deserialize(recv, retCode);
+ recv.Deserialize(command, counter, retCode);
if ((command != static_cast<int>(LogicCommand::VERIFY_SIGNATURE))
|| (counter != my_counter))
{
return try_catch([&] {
int my_counter = ++m_counter;
- MessageBuffer send, recv;
+ MessageBuffer recv;
RawBufferVector rawCertChain;
for (auto &e: certChain) {
rawCertChain.push_back(e->getDER());
}
- Serialization::Serialize(send, my_counter);
- Serialization::Serialize(send, rawCertChain);
+ auto send = MessageBuffer::Serialize(my_counter, rawCertChain);
int retCode = sendToServer(
SERVICE_SOCKET_OCSP,
int counter;
- Deserialization::Deserialize(recv, counter);
- Deserialization::Deserialize(recv, retCode);
- Deserialization::Deserialize(recv, ocspStatus);
+ recv.Deserialize(counter, retCode, ocspStatus);
if (my_counter != counter) {
return CKM_API_ERROR_UNKNOWN;
m_counter++;
int my_counter = m_counter;
return try_catch([&] {
- MessageBuffer send, recv;
- Serialization::Serialize(send, static_cast<int>(LogicCommand::ALLOW_ACCESS));
- Serialization::Serialize(send, my_counter);
- Serialization::Serialize(send, alias);
- Serialization::Serialize(send, accessor);
- Serialization::Serialize(send, static_cast<int>(granted));
-
+ MessageBuffer recv;
+ auto send = MessageBuffer::Serialize(static_cast<int>(LogicCommand::ALLOW_ACCESS),
+ my_counter,
+ alias,
+ accessor,
+ static_cast<int>(granted));
int retCode = sendToServer(
SERVICE_SOCKET_CKM_STORAGE,
send.Pop(),
int command;
int counter;
- Deserialization::Deserialize(recv, command);
- Deserialization::Deserialize(recv, counter);
- Deserialization::Deserialize(recv, retCode);
+ recv.Deserialize(command, counter, retCode);
if (my_counter != counter) {
return CKM_API_ERROR_UNKNOWN;
m_counter++;
int my_counter = m_counter;
return try_catch([&] {
- MessageBuffer send, recv;
- Serialization::Serialize(send, static_cast<int>(LogicCommand::DENY_ACCESS));
- Serialization::Serialize(send, my_counter);
- Serialization::Serialize(send, alias);
- Serialization::Serialize(send, accessor);
-
+ MessageBuffer recv;
+ auto send = MessageBuffer::Serialize(static_cast<int>(LogicCommand::DENY_ACCESS),
+ my_counter,
+ alias,
+ accessor);
int retCode = sendToServer(
SERVICE_SOCKET_CKM_STORAGE,
send.Pop(),
int command;
int counter;
- Deserialization::Deserialize(recv, command);
- Deserialization::Deserialize(recv, counter);
- Deserialization::Deserialize(recv, retCode);
+ recv.Deserialize(command, counter, retCode);
if (my_counter != counter) {
return CKM_API_ERROR_UNKNOWN;
virtual void Write(size_t num, const void *bytes);
+ // generic serialization
+ template <typename... Args>
+ static MessageBuffer Serialize( const Args&... args) {
+ MessageBuffer buffer;
+ Serializer<Args...>::Serialize(buffer, args...);
+ return buffer;
+ }
+
+ // generic deserialization
+ template <typename... Args>
+ void Deserialize(Args&... args) {
+ Deserializer<Args...>::Deserialize(*this, args...);
+ }
+
protected:
inline void CountBytesLeft() {
{
Serialize(stream, *vec);
}
-
}; // struct Serialization
struct Deserialization {
}
}; // struct Deserialization
+
+// generic serialization
+template <typename... Args>
+struct Serializer;
+
+template <typename First, typename... Args>
+struct Serializer<First, Args...> : public Serializer<Args...> {
+ static void Serialize(IStream& stream, const First& f, const Args&... args) {
+ Serialization::Serialize(stream, f);
+ Serializer<Args...>::Serialize(stream, args...);
+ }
+};
+
+// end of recursion
+template <>
+struct Serializer<> {
+ static void Serialize(IStream&) {
+ return;
+ }
+};
+
+// generic deserialization
+template <typename... Args>
+struct Deserializer;
+
+template <typename First, typename... Args>
+struct Deserializer<First, Args...> : public Deserializer<Args...> {
+ static void Deserialize(IStream& stream, First& f, Args&... args) {
+ Deserialization::Deserialize(stream, f);
+ Deserializer<Args...>::Deserialize(stream, args...);
+ }
+};
+
+// end of recursion
+template <>
+struct Deserializer<> {
+ static void Deserialize(IStream&) {
+ return;
+ }
+};
+
} // namespace CKM
#endif // CENT_KEY_SERIALIZATION_H
m_userDataMap.erase(user);
}
- MessageBuffer response;
- Serialization::Serialize(response, retCode);
- return response.Pop();
+ return MessageBuffer::Serialize(retCode).Pop();
}
RawBuffer CKMLogic::setCCModeStatus(CCModeState mode_status) {
}
}
- MessageBuffer response;
- Serialization::Serialize(response, retCode);
- return response.Pop();
+ return MessageBuffer::Serialize(retCode).Pop();
}
RawBuffer CKMLogic::lockUserKey(uid_t user) {
// TODO try catch for all errors that should be supported by error code
m_userDataMap.erase(user);
- MessageBuffer response;
- Serialization::Serialize(response, retCode);
- return response.Pop();
+ return MessageBuffer::Serialize(retCode).Pop();
+
}
RawBuffer CKMLogic::removeUserData(uid_t user) {
FileSystem fs(user);
fs.removeUserData();
- MessageBuffer response;
- Serialization::Serialize(response, retCode);
- return response.Pop();
+ return MessageBuffer::Serialize(retCode).Pop();
}
RawBuffer CKMLogic::changeUserPassword(
retCode = CKM_API_ERROR_SERVER_ERROR;
}
- MessageBuffer response;
- Serialization::Serialize(response, retCode);
- return response.Pop();
+ return MessageBuffer::Serialize(retCode).Pop();
}
RawBuffer CKMLogic::resetUserPassword(
fs.saveDKEK(handler.keyProvider.getWrappedDomainKEK(newPassword));
}
- MessageBuffer response;
- Serialization::Serialize(response, retCode);
- return response.Pop();
+ return MessageBuffer::Serialize(retCode).Pop();
}
RawBuffer CKMLogic::removeApplicationData(const std::string &smackLabel) {
retCode = CKM_API_ERROR_DB_ERROR;
}
- MessageBuffer response;
- Serialization::Serialize(response, retCode);
- return response.Pop();
+ return MessageBuffer::Serialize(retCode).Pop();
}
int CKMLogic::saveDataHelper(
retCode = CKM_API_ERROR_DB_ERROR;
}
- MessageBuffer response;
- Serialization::Serialize(response, static_cast<int>(LogicCommand::SAVE));
- Serialization::Serialize(response, commandId);
- Serialization::Serialize(response, retCode);
- Serialization::Serialize(response, static_cast<int>(dataType));
-
+ auto response = MessageBuffer::Serialize(static_cast<int>(LogicCommand::SAVE),
+ commandId,
+ retCode,
+ static_cast<int>(dataType));
return response.Pop();
}
retCode = CKM_API_ERROR_DB_LOCKED;
}
- MessageBuffer response;
- Serialization::Serialize(response, static_cast<int>(LogicCommand::REMOVE));
- Serialization::Serialize(response, commandId);
- Serialization::Serialize(response, retCode);
- Serialization::Serialize(response, static_cast<int>(dataType));
-
+ auto response = MessageBuffer::Serialize(static_cast<int>(LogicCommand::REMOVE),
+ commandId,
+ retCode,
+ static_cast<int>(dataType));
return response.Pop();
}
retCode = CKM_API_ERROR_BAD_REQUEST;
}
- MessageBuffer response;
- Serialization::Serialize(response, static_cast<int>(LogicCommand::GET));
- Serialization::Serialize(response, commandId);
- Serialization::Serialize(response, retCode);
- Serialization::Serialize(response, static_cast<int>(row.dataType));
- Serialization::Serialize(response, row.data);
+ auto response = MessageBuffer::Serialize(static_cast<int>(LogicCommand::GET),
+ commandId,
+ retCode,
+ static_cast<int>(row.dataType),
+ row.data);
return response.Pop();
}
retCode = CKM_API_ERROR_DB_LOCKED;
}
- MessageBuffer response;
- Serialization::Serialize(response, static_cast<int>(LogicCommand::GET_LIST));
- Serialization::Serialize(response, commandId);
- Serialization::Serialize(response, retCode);
- Serialization::Serialize(response, static_cast<int>(dataType));
- Serialization::Serialize(response, aliasVector);
+ auto response = MessageBuffer::Serialize(static_cast<int>(LogicCommand::GET_LIST),
+ commandId,
+ retCode,
+ static_cast<int>(dataType),
+ aliasVector);
return response.Pop();
}
retCode = CKM_API_ERROR_DB_ERROR;
}
- MessageBuffer response;
- Serialization::Serialize(response, static_cast<int>(protocol_cmd));
- Serialization::Serialize(response, commandId);
- Serialization::Serialize(response, retCode);
-
- return response.Pop();
+ return MessageBuffer::Serialize(static_cast<int>(protocol_cmd), commandId, retCode).Pop();
}
RawBuffer CKMLogic::getCertificateChain(
chainRawVector.push_back(e.getDER());
}
- MessageBuffer response;
- Serialization::Serialize(response, static_cast<int>(LogicCommand::GET_CHAIN_CERT));
- Serialization::Serialize(response, commandId);
- Serialization::Serialize(response, retCode);
- Serialization::Serialize(response, chainRawVector);
+ auto response = MessageBuffer::Serialize(static_cast<int>(LogicCommand::GET_CHAIN_CERT),
+ commandId,
+ retCode,
+ chainRawVector);
return response.Pop();
}
}
senderror:
- MessageBuffer response;
- Serialization::Serialize(response, static_cast<int>(LogicCommand::GET_CHAIN_ALIAS));
- Serialization::Serialize(response, commandId);
- Serialization::Serialize(response, retCode);
- Serialization::Serialize(response, chainRawVector);
+ auto response = MessageBuffer::Serialize(static_cast<int>(LogicCommand::GET_CHAIN_ALIAS),
+ commandId,
+ retCode,
+ chainRawVector);
return response.Pop();
}
retCode = CKM_API_ERROR_SERVER_ERROR;
}
- MessageBuffer response;
- Serialization::Serialize(response, static_cast<int>(LogicCommand::CREATE_SIGNATURE));
- Serialization::Serialize(response, commandId);
- Serialization::Serialize(response, retCode);
- Serialization::Serialize(response, signature);
+ auto response = MessageBuffer::Serialize(static_cast<int>(LogicCommand::CREATE_SIGNATURE),
+ commandId,
+ retCode,
+ signature);
return response.Pop();
}
retCode = CKM_API_ERROR_SERVER_ERROR;
}
- MessageBuffer response;
- Serialization::Serialize(response, static_cast<int>(LogicCommand::VERIFY_SIGNATURE));
- Serialization::Serialize(response, commandId);
- Serialization::Serialize(response, retCode);
-
+ auto response = MessageBuffer::Serialize(static_cast<int>(LogicCommand::VERIFY_SIGNATURE),
+ commandId,
+ retCode);
return response.Pop();
}
retCode = CKM_API_ERROR_DB_LOCKED;
}
- MessageBuffer response;
- Serialization::Serialize(response, command);
- Serialization::Serialize(response, msgID);
- Serialization::Serialize(response, retCode);
-
- return response.Pop();
+ return MessageBuffer::Serialize(command, msgID, retCode).Pop();
}
RawBuffer CKMLogic::denyAccess(
retCode = CKM_API_ERROR_DB_LOCKED;
}
- MessageBuffer response;
- Serialization::Serialize(response, command);
- Serialization::Serialize(response, msgID);
- Serialization::Serialize(response, retCode);
-
- return response.Pop();
+ return MessageBuffer::Serialize(command, msgID, retCode).Pop();
}
} // namespace CKM
Password newPass, oldPass;
std::string smackLabel;
- Deserialization::Deserialize(buffer, command);
+ buffer.Deserialize(command);
LogDebug("Process control. Command: " << command);
switch(cc) {
case ControlCommand::UNLOCK_USER_KEY:
- Deserialization::Deserialize(buffer, user);
- Deserialization::Deserialize(buffer, newPass);
+ buffer.Deserialize(user, newPass);
return m_logic->unlockUserKey(user, newPass);
case ControlCommand::LOCK_USER_KEY:
- Deserialization::Deserialize(buffer, user);
+ buffer.Deserialize(user);
return m_logic->lockUserKey(user);
case ControlCommand::REMOVE_USER_DATA:
- Deserialization::Deserialize(buffer, user);
+ buffer.Deserialize(user);
return m_logic->removeUserData(user);
case ControlCommand::CHANGE_USER_PASSWORD:
- Deserialization::Deserialize(buffer, user);
- Deserialization::Deserialize(buffer, oldPass);
- Deserialization::Deserialize(buffer, newPass);
+ buffer.Deserialize(user, oldPass, newPass);
return m_logic->changeUserPassword(user, oldPass, newPass);
case ControlCommand::RESET_USER_PASSWORD:
- Deserialization::Deserialize(buffer, user);
- Deserialization::Deserialize(buffer, newPass);
+ buffer.Deserialize(user, newPass);
return m_logic->resetUserPassword(user, newPass);
case ControlCommand::REMOVE_APP_DATA:
- Deserialization::Deserialize(buffer, smackLabel);
+ buffer.Deserialize(smackLabel);
return m_logic->removeApplicationData(smackLabel);
case ControlCommand::SET_CC_MODE:
- Deserialization::Deserialize(buffer, cc_mode_status);
+ buffer.Deserialize(cc_mode_status);
return m_logic->setCCModeStatus(static_cast<CCModeState>(cc_mode_status));
case ControlCommand::ALLOW_ACCESS:
{
std::string accessor_label;
int req_rights;
- Deserialization::Deserialize(buffer, user);
- Deserialization::Deserialize(buffer, owner);
- Deserialization::Deserialize(buffer, item_alias);
- Deserialization::Deserialize(buffer, accessor_label);
- Deserialization::Deserialize(buffer, req_rights);
+ buffer.Deserialize(user, owner, item_alias, accessor_label, req_rights);
Credentials cred =
{
user,
std::string item_alias;
std::string accessor_label;
- Deserialization::Deserialize(buffer, user);
- Deserialization::Deserialize(buffer, owner);
- Deserialization::Deserialize(buffer, item_alias);
- Deserialization::Deserialize(buffer, accessor_label);
+ buffer.Deserialize(user, owner, item_alias, accessor_label);
Credentials cred =
{
user,
Alias alias;
std::string user;
- Deserialization::Deserialize(buffer, command);
- Deserialization::Deserialize(buffer, msgID);
+ buffer.Deserialize(command);
+ buffer.Deserialize(msgID);
// This is a workaround solution for locktype=None in Tizen 2.2.1
// When locktype is None, lockscreen app doesn't interfere with unlocking process.
{
RawBuffer rawData;
PolicySerializable policy;
- Deserialization::Deserialize(buffer, tmpDataType);
- Deserialization::Deserialize(buffer, alias);
- Deserialization::Deserialize(buffer, rawData);
- Deserialization::Deserialize(buffer, policy);
+ buffer.Deserialize(tmpDataType, alias, rawData, policy);
return m_logic->saveData(
cred,
msgID,
}
case LogicCommand::REMOVE:
{
- Deserialization::Deserialize(buffer, tmpDataType);
- Deserialization::Deserialize(buffer, alias);
+ buffer.Deserialize(tmpDataType, alias);
return m_logic->removeData(
cred,
msgID,
case LogicCommand::GET:
{
Password password;
- Deserialization::Deserialize(buffer, tmpDataType);
- Deserialization::Deserialize(buffer, alias);
- Deserialization::Deserialize(buffer, password);
+ buffer.Deserialize(tmpDataType, alias, password);
return m_logic->getData(
cred,
msgID,
}
case LogicCommand::GET_LIST:
{
- Deserialization::Deserialize(buffer, tmpDataType);
+ buffer.Deserialize(tmpDataType);
return m_logic->getDataList(
cred,
msgID,
Alias publicKeyAlias;
PolicySerializable policyPrivateKey;
PolicySerializable policyPublicKey;
- Deserialization::Deserialize(buffer, additional_param);
- Deserialization::Deserialize(buffer, policyPrivateKey);
- Deserialization::Deserialize(buffer, policyPublicKey);
- Deserialization::Deserialize(buffer, privateKeyAlias);
- Deserialization::Deserialize(buffer, publicKeyAlias);
+ buffer.Deserialize(additional_param,
+ policyPrivateKey,
+ policyPublicKey,
+ privateKeyAlias,
+ publicKeyAlias);
return m_logic->createKeyPair(
cred,
static_cast<LogicCommand>(command),
{
RawBuffer certificate;
RawBufferVector rawBufferVector;
- Deserialization::Deserialize(buffer, certificate);
- Deserialization::Deserialize(buffer, rawBufferVector);
+ buffer.Deserialize(certificate, rawBufferVector);
return m_logic->getCertificateChain(
cred,
msgID,
{
RawBuffer certificate;
AliasVector aliasVector;
- Deserialization::Deserialize(buffer, certificate);
- Deserialization::Deserialize(buffer, aliasVector);
+ buffer.Deserialize(certificate, aliasVector);
return m_logic->getCertificateChain(
cred,
msgID,
Password password; // password for private_key
RawBuffer message;
int padding, hash;
- Deserialization::Deserialize(buffer, privateKeyAlias);
- Deserialization::Deserialize(buffer, password);
- Deserialization::Deserialize(buffer, message);
- Deserialization::Deserialize(buffer, hash);
- Deserialization::Deserialize(buffer, padding);
-
+ buffer.Deserialize(privateKeyAlias, password, message, hash, padding);
return m_logic->createSignature(
cred,
msgID,
//HashAlgorithm hash;
//RSAPaddingAlgorithm padding;
int padding, hash;
- Deserialization::Deserialize(buffer, publicKeyOrCertAlias);
- Deserialization::Deserialize(buffer, password);
- Deserialization::Deserialize(buffer, message);
- Deserialization::Deserialize(buffer, signature);
- Deserialization::Deserialize(buffer, hash);
- Deserialization::Deserialize(buffer, padding);
+ buffer.Deserialize(publicKeyOrCertAlias,
+ password,
+ message,
+ signature,
+ hash,
+ padding);
return m_logic->verifySignature(
cred,
msgID,
Alias item_alias;
std::string accessor_label;
int req_rights;
- Deserialization::Deserialize(buffer, item_alias);
- Deserialization::Deserialize(buffer, accessor_label);
- Deserialization::Deserialize(buffer, req_rights);
+ buffer.Deserialize(item_alias, accessor_label, req_rights);
return m_logic->allowAccess(
cred,
command,
{
Alias item_alias;
std::string accessor_label;
- Deserialization::Deserialize(buffer, item_alias);
- Deserialization::Deserialize(buffer, accessor_label);
+ buffer.Deserialize(item_alias, accessor_label);
return m_logic->denyAccess(
cred,
command,
if (retCode == CKM_API_SUCCESS)
ocspStatus = ocsp.verify(certChain);
- MessageBuffer response;
- Serialization::Serialize(response, commandId);
- Serialization::Serialize(response, retCode);
- Serialization::Serialize(response, ocspStatus);
-
- return response.Pop();
+ return MessageBuffer::Serialize(commandId, retCode, ocspStatus).Pop();
}
} // namespace CKM
int commandId;
RawBufferVector chainVector;
- Deserialization::Deserialize(buffer, commandId);
- Deserialization::Deserialize(buffer, chainVector);
+ buffer.Deserialize(commandId, chainVector);
RawBuffer response = m_logic->ocspCheck(commandId, chainVector);
m_serviceManager->Write(conn, response);