if (cert->empty())
return CKM_API_ERROR_BAD_RESPONSE;
- certificateChainVector.push_back(cert);
+ certificateChainVector.push_back(std::move(cert));
}
return retCode;
EXCEPTION_GUARD_END
}
+template <class...T>
+int doRequest(MessageBuffer &recv, CKM::ServiceConnection &conn, T&&...t)
+{
+ return conn.processRequest(SerializeMessage(std::forward<T>(t)...), recv);
+}
+
} // namespace
Manager::Impl::Impl()
- : m_counter(0),
- m_storageConnection(SERVICE_SOCKET_CKM_STORAGE),
+ : m_storageConnection(SERVICE_SOCKET_CKM_STORAGE),
m_ocspConnection(SERVICE_SOCKET_OCSP),
m_encryptionConnection(SERVICE_SOCKET_ENCRYPTION)
{
{
static_assert(sizeof cmd <= sizeof(int));
const auto msgId = m_msgId = ++impl.m_counter;
- m_retCode = conn.processRequest(
- SerializeMessage(static_cast<int>(cmd), msgId, std::forward<T>(t)...),
- m_recv);
+ m_retCode = doRequest(m_recv, conn, static_cast<int>(cmd), msgId, std::forward<T>(t)...);
}
Manager::Impl::Request::operator bool() const {
{
if (key.get() == NULL || key->empty())
return CKM_API_ERROR_INPUT_PARAM;
-
try {
return saveBinaryData(alias, DataType(key->getType()), key->getDER(), policy);
} catch (const Exc::Exception &e) {
const CertificateShPtr &cert,
const Policy &policy)
{
- if (cert.get() == NULL || cert->empty())
- return CKM_API_ERROR_INPUT_PARAM;
-
- return saveBinaryData(alias, DataType::CERTIFICATE, cert->getDER(), policy);
+ return cert.get() == NULL || cert->empty()
+ ? CKM_API_ERROR_INPUT_PARAM
+ : saveBinaryData(alias, DataType::CERTIFICATE, cert->getDER(), policy);
}
int Manager::Impl::saveData(const Alias &alias, const RawBuffer &rawData,
const Policy &policy)
{
- if (!policy.extractable)
- return CKM_API_ERROR_INPUT_PARAM;
-
- return saveBinaryData(alias, DataType::BINARY_DATA, rawData, policy);
+ return !policy.extractable
+ ? CKM_API_ERROR_INPUT_PARAM
+ : saveBinaryData(alias, DataType::BINARY_DATA, rawData, policy);
}
int msgId = ++m_counter;
MessageBuffer recv;
- auto send = SerializeMessage(static_cast<int>(LogicCommand::GET_PKCS12),
- msgId,
- helper.getName(),
- helper.getOwner(),
- keyPass,
- certPass);
- int retCode = m_storageConnection.processRequest(send, recv);
+ int retCode = doRequest(recv, m_storageConnection,
+ static_cast<int>(LogicCommand::GET_PKCS12), msgId,
+ helper.getName(), helper.getOwner(), keyPass, certPass);
if (CKM_API_SUCCESS != retCode)
return retCode;
AliasSupport helper(alias);
DataType tmpDataType;
- bool passwordProtectionStatus;
int retCode = Request(*this, LogicCommand::GET_PROTECTION_STATUS, m_storageConnection,
sendDataType, helper.getName(), helper.getOwner()
- ).maybeDeserialize(tmpDataType, passwordProtectionStatus);
+ ).maybeDeserialize(tmpDataType, status);
+
+ if (retCode != CKM_API_SUCCESS)
+ status = false;
+
+ return retCode;
- if (retCode != CKM_API_SUCCESS) {
- return retCode;
- } else {
- status = passwordProtectionStatus;
- return CKM_API_SUCCESS;
- }
EXCEPTION_GUARD_END
}
DataType recvDataType;
RawBuffer rawData;
- int retCode = getBinaryData(
- alias,
- DataType::KEY_RSA_PUBLIC,
- password,
- recvDataType,
- rawData);
+ int retCode = getBinaryData(alias, DataType::KEY_RSA_PUBLIC, password, recvDataType, rawData);
if (retCode != CKM_API_SUCCESS)
return retCode;
- KeyShPtr keyParsed;
-
- if (recvDataType.isSKey())
- keyParsed = Key::createAES(rawData);
- else
- keyParsed = Key::create(rawData);
+ KeyShPtr keyParsed = recvDataType.isSKey() ? Key::createAES(rawData) : Key::create(rawData);
if (!keyParsed) {
LogDebug("Key empty - failed to parse!");
DataType recvDataType;
RawBuffer rawData;
- int retCode = getBinaryData(
- alias,
- DataType::CERTIFICATE,
- password,
- recvDataType,
- rawData);
+ int retCode = getBinaryData(alias, DataType::CERTIFICATE, password, recvDataType, rawData);
if (retCode != CKM_API_SUCCESS)
return retCode;
if (certParsed->empty())
return CKM_API_ERROR_BAD_RESPONSE;
- cert = certParsed;
+ cert = std::move(certParsed);
return CKM_API_SUCCESS;
}
{
DataType recvDataType = DataType::BINARY_DATA;
- int retCode = getBinaryData(
- alias,
- DataType::BINARY_DATA,
- password,
- recvDataType,
- rawData);
+ int retCode = getBinaryData(alias, DataType::BINARY_DATA, password, recvDataType, rawData);
if (retCode != CKM_API_SUCCESS)
return retCode;
- if (!recvDataType.isBinaryData())
- return CKM_API_ERROR_BAD_RESPONSE;
-
- return CKM_API_SUCCESS;
+ return recvDataType.isBinaryData() ? CKM_API_SUCCESS : CKM_API_ERROR_BAD_RESPONSE;
}
int Manager::Impl::getBinaryDataAliasVectorHelper(DataType dataType,
const Policy &policyPublicKey)
{
return this->createKeyPair(CKM::KeyType::KEY_ECDSA_PUBLIC,
- static_cast<int>(type), privateKeyAlias, publicKeyAlias, policyPrivateKey,
- policyPublicKey);
+ static_cast<int>(type), privateKeyAlias, publicKeyAlias,
+ policyPrivateKey, policyPublicKey);
}
int Manager::Impl::createKeyAES(
trustedVector.push_back(e->getDER());
}
- return getCertChain(
- m_storageConnection,
- LogicCommand::GET_CHAIN_CERT,
- *this,
- certificate,
- untrustedVector,
- trustedVector,
- useTrustedSystemCertificates,
- certificateChainVector);
+ return getCertChain(m_storageConnection, LogicCommand::GET_CHAIN_CERT, *this,
+ certificate, untrustedVector, trustedVector,
+ useTrustedSystemCertificates, certificateChainVector);
}
int Manager::Impl::getCertificateChain(
trustedVector.push_back(std::make_pair(helper.getOwner(), helper.getName()));
}
- return getCertChain(
- m_storageConnection,
- LogicCommand::GET_CHAIN_ALIAS,
- *this,
- certificate,
- untrustedVector,
- trustedVector,
- useTrustedSystemCertificates,
- certificateChainVector);
+ return getCertChain(m_storageConnection, LogicCommand::GET_CHAIN_ALIAS, *this,
+ certificate, untrustedVector, trustedVector,
+ useTrustedSystemCertificates, certificateChainVector);
}
int Manager::Impl::createSignature(
rawCertChain.push_back(e->getDER());
}
- auto send = SerializeMessage(msgId, rawCertChain);
-
- int retCode = m_ocspConnection.processRequest(send, recv);
+ int retCode = doRequest(recv, m_ocspConnection, msgId, rawCertChain);
if (CKM_API_SUCCESS != retCode)
return retCode;