try {
auto km = CKM::Manager::create();
CKM::RawBuffer buffer(fek.begin(), fek.end());
- auto key = CKM::Key::createAES(buffer);
// FEK will be saved in System database under alias specific to user and app
- int ret = km->saveKey(FEKalias(uid, appName), key, CKM::Policy(password.c_str()));
+ int ret = km->saveData(FEKalias(uid, appName), buffer, CKM::Policy(password.c_str()));
if (ret != CKM_API_SUCCESS) {
LogError("Saving FEK failed " << ret);
return SECURITY_MANAGER_ERROR_SERVER_ERROR; // TODO translate key-manager errors
try {
auto km = CKM::Manager::create();
- CKM::KeyShPtr key;
- int ret = km->getKey(FEKalias(uid, appName), password.c_str(), key);
+ CKM::RawBuffer buffer;
+ int ret = km->getData(FEKalias(uid, appName), password.c_str(), buffer);
if (ret != CKM_API_SUCCESS) {
if (ret == CKM_API_ERROR_DB_ALIAS_UNKNOWN) {
LogError("Application has no FEK");
return SECURITY_MANAGER_ERROR_SERVER_ERROR; // TODO translate key-manager errors
}
- auto der = key->getDER();
-
- fek.assign(der.begin(), der.end());
+ fek.assign(buffer.begin(), buffer.end());
return SECURITY_MANAGER_SUCCESS;
} catch (const std::bad_alloc &e) {