EXCEPTION_GUARD_END
}
+int get_alias_list(ckmc_alias_list_s **alias_list, int (CKM::Manager::*getAliasVector)(CKM::AliasVector&))
+{
+ EXCEPTION_GUARD_START_CAPI
+
+ if (alias_list == nullptr)
+ return CKMC_ERROR_INVALID_PARAMETER;
+
+ CKM::AliasVector aliasVector;
+ int ret;
+ auto mgr = CKM::Manager::create();
+
+ if ((ret = ((*mgr).*getAliasVector)(aliasVector)) != CKM_API_SUCCESS)
+ return to_ckmc_error(ret);
+
+ ckmc_alias_list_s *start = nullptr;
+ ckmc_alias_list_s *plist = nullptr;
+
+ for (const auto &it : aliasVector) {
+ char *alias = strndup(it.c_str(), it.size());
+
+ ret = ckmc_alias_list_add(plist, alias, &plist);
+
+ if (ret != CKMC_ERROR_NONE) {
+ free(alias);
+ ckmc_alias_list_all_free(start);
+ return ret;
+ }
+
+ if (start == nullptr)
+ start = plist;
+ }
+
+ *alias_list = start; // according to documentation in header
+
+ if (plist == nullptr) // if the alias_list size is zero
+ return CKMC_ERROR_DB_ALIAS_UNKNOWN;
+
+ return CKMC_ERROR_NONE;
+
+ EXCEPTION_GUARD_END
+}
+
} // namespace anonymous
KEY_MANAGER_CAPI
KEY_MANAGER_CAPI
int ckmc_get_key_alias_list(ckmc_alias_list_s **alias_list)
{
- EXCEPTION_GUARD_START_CAPI
-
- int ret;
-
- if (alias_list == nullptr)
- return CKMC_ERROR_INVALID_PARAMETER;
-
- CKM::AliasVector aliasVector;
- auto mgr = CKM::Manager::create();
-
- if ((ret = mgr->getKeyAliasVector(aliasVector)) != CKM_API_SUCCESS)
- return to_ckmc_error(ret);
-
- ckmc_alias_list_s *start = nullptr;
- ckmc_alias_list_s *plist = nullptr;
-
- for (const auto &it : aliasVector) {
- char *alias = strndup(it.c_str(), it.size());
-
- ret = ckmc_alias_list_add(plist, alias, &plist);
-
- if (ret != CKMC_ERROR_NONE) {
- free(alias);
- ckmc_alias_list_all_free(start);
- return ret;
- }
-
- if (start == nullptr)
- start = plist;
- }
-
- *alias_list = start; // according to documentation in header
-
- if (plist == nullptr) // if the alias_list size is zero
- return CKMC_ERROR_DB_ALIAS_UNKNOWN;
-
- return CKMC_ERROR_NONE;
-
- EXCEPTION_GUARD_END
+ return get_alias_list(alias_list, &CKM::Manager::getKeyAliasVector);
}
-
KEY_MANAGER_CAPI
int ckmc_get_key_alias_info_list(ckmc_alias_info_list_s **alias_info_list)
{
KEY_MANAGER_CAPI
int ckmc_get_cert_alias_list(ckmc_alias_list_s **alias_list)
{
- EXCEPTION_GUARD_START_CAPI
-
- if (alias_list == nullptr)
- return CKMC_ERROR_INVALID_PARAMETER;
-
- CKM::AliasVector aliasVector;
- int ret;
- auto mgr = CKM::Manager::create();
-
- if ((ret = mgr->getCertificateAliasVector(aliasVector)) != CKM_API_SUCCESS)
- return to_ckmc_error(ret);
-
- ckmc_alias_list_s *start = nullptr;
- ckmc_alias_list_s *plist = nullptr;
-
- for (const auto &it : aliasVector) {
- char *alias = strndup(it.c_str(), it.size());
-
- ret = ckmc_alias_list_add(plist, alias, &plist);
-
- if (ret != CKMC_ERROR_NONE) {
- free(alias);
- ckmc_alias_list_all_free(start);
- return ret;
- }
-
- if (start == nullptr)
- start = plist;
- }
-
- *alias_list = start; // according to documentation from header
-
- if (plist == nullptr) // if the alias_list size is zero
- return CKMC_ERROR_DB_ALIAS_UNKNOWN;
-
- return CKMC_ERROR_NONE;
-
- EXCEPTION_GUARD_END
+ return get_alias_list(alias_list, &CKM::Manager::getCertificateAliasVector);
}
KEY_MANAGER_CAPI
KEY_MANAGER_CAPI
int ckmc_get_data_alias_list(ckmc_alias_list_s **alias_list)
{
- EXCEPTION_GUARD_START_CAPI
-
- if (alias_list == nullptr)
- return CKMC_ERROR_INVALID_PARAMETER;
-
- int ret;
- CKM::AliasVector aliasVector;
- auto mgr = CKM::Manager::create();
-
- if ((ret = mgr->getDataAliasVector(aliasVector)) != CKM_API_SUCCESS)
- return to_ckmc_error(ret);
-
- ckmc_alias_list_s *start = nullptr;
- ckmc_alias_list_s *plist = nullptr;
-
- for (const auto &it : aliasVector) {
- char *alias = strndup(it.c_str(), it.size());
-
- ret = ckmc_alias_list_add(plist, alias, &plist);
-
- if (ret != CKMC_ERROR_NONE) {
- free(alias);
- ckmc_alias_list_all_free(start);
- return ret;
- }
-
- if (start == nullptr)
- start = plist;
- }
-
- *alias_list = start; // according to documentation in header
-
- if (plist == nullptr) // if the alias_list size is zero
- return CKMC_ERROR_DB_ALIAS_UNKNOWN;
-
- return CKMC_ERROR_NONE;
-
- EXCEPTION_GUARD_END
+ return get_alias_list(alias_list, &CKM::Manager::getDataAliasVector);
}
KEY_MANAGER_CAPI