-/* Copyright (c) 2014 - 2020 Samsung Electronics Co., Ltd All Rights Reserved
+/* Copyright (c) 2014-2020 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.
namespace CKM {
namespace {
+template <class...T>
+int deserialize(const int msgId, MessageBuffer &recv, T&&...t)
+{
+ int retMsgId, retCode;
+ recv.Deserialize(retMsgId, retCode, std::forward<T>(t)...);
+ return msgId != retMsgId ? CKM_API_ERROR_UNKNOWN : retCode;
+}
+
template <class T>
int getCertChain(
ServiceConnection &serviceConnection,
if (CKM_API_SUCCESS != retCode)
return retCode;
- int retMsgId;
RawBufferVector rawBufferVector;
- recv.Deserialize(retMsgId, retCode, rawBufferVector);
-
- if (msgId != retMsgId)
- return CKM_API_ERROR_UNKNOWN;
+ retCode = deserialize(msgId, recv, rawBufferVector);
if (retCode != CKM_API_SUCCESS)
return retCode;
if (CKM_API_SUCCESS != retCode)
return retCode;
- int retMsgId;
int opType;
- recv.Deserialize(retMsgId, retCode, opType);
-
- if (retMsgId != msgId)
- return CKM_API_ERROR_UNKNOWN;
-
- return retCode;
+ return deserialize(msgId, recv, opType);
EXCEPTION_GUARD_END
}
if (CKM_API_SUCCESS != retCode)
return retCode;
- int retMsgId;
- recv.Deserialize(retMsgId, retCode);
-
- if (retMsgId != msgId)
- return CKM_API_ERROR_UNKNOWN;
-
- return retCode;
+ return deserialize(msgId, recv);
EXCEPTION_GUARD_END
}
if (CKM_API_SUCCESS != retCode)
return retCode;
- int retMsgId;
- recv.Deserialize(retMsgId, retCode);
-
- if (retMsgId != msgId)
- return CKM_API_ERROR_UNKNOWN;
-
- return retCode;
+ return deserialize(msgId, recv);
EXCEPTION_GUARD_END
}
if (CKM_API_SUCCESS != retCode)
return retCode;
- int retMsgId;
- recv.Deserialize(retMsgId, retCode, recvDataType, rawData);
-
- if (retMsgId != msgId)
- return CKM_API_ERROR_UNKNOWN;
-
- return retCode;
+ return deserialize(msgId, recv, recvDataType, rawData);
EXCEPTION_GUARD_END
}
if (CKM_API_SUCCESS != retCode)
return retCode;
- int retMsgId;
DataType tmpDataType;
bool passwordProtectionStatus;
- recv.Deserialize(retMsgId, retCode, tmpDataType, passwordProtectionStatus);
-
- if (retMsgId != msgId)
- return CKM_API_ERROR_UNKNOWN;
+ retCode = deserialize(msgId, recv, tmpDataType, passwordProtectionStatus);
if (retCode != CKM_API_SUCCESS) {
return retCode;
if (CKM_API_SUCCESS != retCode)
return retCode;
- int retMsgId;
- recv.Deserialize(retMsgId, retCode);
-
- if (retMsgId != msgId)
- return CKM_API_ERROR_UNKNOWN;
-
- return retCode;
+ return deserialize(msgId, recv);
EXCEPTION_GUARD_END
}
if (CKM_API_SUCCESS != retCode)
return retCode;
- int retMsgId;
- recv.Deserialize(retMsgId, retCode);
-
- if (retMsgId != msgId)
- return CKM_API_ERROR_UNKNOWN;
-
- return retCode;
+ return deserialize(msgId, recv);
EXCEPTION_GUARD_END
}
if (CKM_API_SUCCESS != retCode)
return retCode;
- int retMsgId;
- recv.Deserialize(retMsgId, retCode, signature);
-
- if (retMsgId != msgId)
- return CKM_API_ERROR_UNKNOWN;
-
- return retCode;
+ return deserialize(msgId, recv, signature);
EXCEPTION_GUARD_END
}
if (CKM_API_SUCCESS != retCode)
return retCode;
- int retMsgId;
- recv.Deserialize(retMsgId, retCode);
-
- if (retMsgId != msgId)
- return CKM_API_ERROR_UNKNOWN;
-
- return retCode;
+ return deserialize(msgId, recv);
EXCEPTION_GUARD_END
}
if (CKM_API_SUCCESS != retCode)
return retCode;
- int retMsgId;
- recv.Deserialize(retMsgId, retCode, ocspStatus);
-
- if (msgId != retMsgId)
- return CKM_API_ERROR_UNKNOWN;
-
- return retCode;
+ return deserialize(msgId, recv, ocspStatus);
EXCEPTION_GUARD_END
}
if (CKM_API_SUCCESS != retCode)
return retCode;
- int retMsgId;
- recv.Deserialize(retMsgId, retCode);
-
- if (msgId != retMsgId)
- return CKM_API_ERROR_UNKNOWN;
-
- return retCode;
+ return deserialize(msgId, recv);
EXCEPTION_GUARD_END
}
if (CKM_API_SUCCESS != retCode)
return retCode;
- int retMsgId;
- recv.Deserialize(retMsgId, retCode, output);
-
- if (msgId != retMsgId)
- return CKM_API_ERROR_UNKNOWN;
-
- return retCode;
+ return deserialize(msgId, recv, output);
EXCEPTION_GUARD_END
}