try_catch_async([&] {
RawBufferVector rawCertChain;
for (auto &e: certificateChainVector) {
+ if(!e || e->empty())
+ return observer->ReceivedError(CKM_API_ERROR_INPUT_PARAM);
rawCertChain.push_back(e->getDER());
}
return;
}
// input type check
- LogicCommand cmd_type;
+ CryptoAlgorithm keyGenAlgorithm;
switch(key_type)
{
case KeyType::KEY_RSA_PUBLIC:
case KeyType::KEY_RSA_PRIVATE:
- cmd_type = LogicCommand::CREATE_KEY_PAIR_RSA;
+ keyGenAlgorithm.setParam(ParamName::ALGO_TYPE, AlgoType::RSA_GEN);
+ keyGenAlgorithm.setParam(ParamName::GEN_KEY_LEN, additional_param);
break;
case KeyType::KEY_DSA_PUBLIC:
case KeyType::KEY_DSA_PRIVATE:
- cmd_type = LogicCommand::CREATE_KEY_PAIR_DSA;
+ keyGenAlgorithm.setParam(ParamName::ALGO_TYPE, AlgoType::DSA_GEN);
+ keyGenAlgorithm.setParam(ParamName::GEN_KEY_LEN, additional_param);
break;
case KeyType::KEY_ECDSA_PUBLIC:
case KeyType::KEY_ECDSA_PRIVATE:
- cmd_type = LogicCommand::CREATE_KEY_PAIR_ECDSA;
+ keyGenAlgorithm.setParam(ParamName::ALGO_TYPE, AlgoType::ECDSA_GEN);
+ keyGenAlgorithm.setParam(ParamName::GEN_EC, additional_param);
break;
default:
AliasSupport prvHelper(privateKeyAlias);
AliasSupport pubHelper(publicKeyAlias);
sendToStorage(observer,
- static_cast<int>(cmd_type),
+ static_cast<int>(LogicCommand::CREATE_KEY_PAIR),
m_counter,
- static_cast<int>(additional_param),
+ CryptoAlgorithmSerializable(keyGenAlgorithm),
PolicySerializable(policyPrivateKey),
PolicySerializable(policyPublicKey),
prvHelper.getName(),
}, [&observer](int error){ observer->ReceivedError(error); } );
}
+void ManagerAsync::Impl::createKeyAES(const ManagerAsync::ObserverPtr& observer,
+ const size_t size,
+ const Alias &keyAlias,
+ const Policy &policyKey)
+{
+ observerCheck(observer);
+ if (keyAlias.empty()) {
+ observer->ReceivedError(CKM_API_ERROR_INPUT_PARAM);
+ return;
+ }
+
+ try_catch_async([&] {
+ AliasSupport aliasHelper(keyAlias);
+ sendToStorage(observer,
+ static_cast<int>(LogicCommand::CREATE_KEY_AES),
+ m_counter,
+ static_cast<int>(size),
+ PolicySerializable(policyKey),
+ aliasHelper.getName(),
+ aliasHelper.getLabel());
+ }, [&observer](int error){ observer->ReceivedError(error); } );
+}
+
void ManagerAsync::Impl::observerCheck(const ManagerAsync::ObserverPtr& observer)
{
if(!observer)