}
KEY_MANAGER_CAPI
-int ckmc_get_pkcs12(const char *alias, ckmc_pkcs12_s **pkcs12)
+int ckmc_get_pkcs12(const char *alias, const char *key_password, const char *cert_password, ckmc_pkcs12_s **pkcs12)
{
int ret;
- CKM::PKCS12ShPtr ShPkcs12;
- CKM::PKCS12 *pkcs12Ptr = NULL;
+ CKM::PKCS12ShPtr pkcs;
+ CKM::Password keyPass, certPass;
ckmc_key_s *private_key = NULL;
ckmc_cert_s *cert = NULL;
ckmc_cert_list_s *ca_cert_list = 0;
- if(alias == NULL || pkcs12 == NULL) {
+ if(!alias || !pkcs12) {
return CKMC_ERROR_INVALID_PARAMETER;
}
- CKM::ManagerShPtr mgr = CKM::Manager::create();
- if( (ret = mgr->getPKCS12(alias, ShPkcs12)) != CKM_API_SUCCESS) {
+ if (key_password)
+ keyPass = key_password;
+
+ if (cert_password)
+ certPass = cert_password;
+
+ auto mgr = CKM::Manager::create();
+
+ if((ret = mgr->getPKCS12(alias, keyPass, certPass, pkcs)) != CKM_API_SUCCESS) {
return to_ckmc_error(ret);
}
- pkcs12Ptr = ShPkcs12.get();
- if(!pkcs12Ptr)
+ if(!pkcs)
return CKMC_ERROR_BAD_RESPONSE;
- if(pkcs12Ptr->getKey())
+ auto pkcsKey = pkcs->getKey();
+ if(pkcsKey)
{
- CKM::KeyShPtr helper = pkcs12Ptr->getKey();
-
- CKM::RawBuffer buffer = helper->getDER();
- ckmc_key_type_e keyType = static_cast<ckmc_key_type_e>(static_cast<int>(helper->getType()));
+ CKM::RawBuffer buffer = pkcsKey->getDER();
+ ckmc_key_type_e keyType = static_cast<ckmc_key_type_e>(pkcsKey->getType());
ret = ckmc_key_new(buffer.data(), buffer.size(), keyType, NULL, &private_key);
if(ret != CKMC_ERROR_NONE)
return ret;
}
- if(pkcs12Ptr->getCertificate())
+ auto pkcsCert = pkcs->getCertificate();
+ if(pkcsCert)
{
- CKM::CertificateShPtr helper = pkcs12Ptr->getCertificate();
-
- CKM::RawBuffer buffer = helper->getDER();
+ CKM::RawBuffer buffer = pkcsCert->getDER();
ret = ckmc_cert_new(buffer.data(), buffer.size(), CKMC_FORM_DER, &cert);
if(ret != CKMC_ERROR_NONE) {
ckmc_key_free(private_key);
}
}
- ca_cert_list = _toNewCkmCertList(pkcs12Ptr->getCaCertificateShPtrVector());
+ ca_cert_list = _toNewCkmCertList(pkcs->getCaCertificateShPtrVector());
ret = ckmc_pkcs12_new(private_key, cert, ca_cert_list, pkcs12);
if(ret != CKMC_ERROR_NONE)
return ret;
}
+
KEY_MANAGER_CAPI
int ckmc_save_data(const char *alias, ckmc_raw_buffer_s data, const ckmc_policy_s policy)
{
}
KEY_MANAGER_CAPI
-int ckmc_get_certificate_chain(const ckmc_cert_s* cert,
- const ckmc_cert_list_s* untrustedcerts,
- const ckmc_cert_list_s* trustedcerts,
- const bool sys_certs,
- ckmc_cert_list_s** ppcert_chain_list)
+int ckmc_get_cert_chain_with_trustedcert(const ckmc_cert_s* cert,
+ const ckmc_cert_list_s* untrustedcerts,
+ const ckmc_cert_list_s* trustedcerts,
+ const bool sys_certs,
+ ckmc_cert_list_s** ppcert_chain_list)
{
int ret;
CKM::ManagerShPtr mgr = CKM::Manager::create();
}
KEY_MANAGER_CAPI
-int ckmc_get_certificate_chain_with_alias(const ckmc_cert_s* cert,
- const ckmc_alias_list_s* untrustedcerts,
- const ckmc_alias_list_s* trustedcerts,
- const bool sys_certs,
- ckmc_cert_list_s** ppcert_chain_list)
+int ckmc_get_cert_chain_with_trustedcert_alias(const ckmc_cert_s* cert,
+ const ckmc_alias_list_s* untrustedcerts,
+ const ckmc_alias_list_s* trustedcerts,
+ const bool sys_certs,
+ ckmc_cert_list_s** ppcert_chain_list)
{
int ret;
CKM::ManagerShPtr mgr = CKM::Manager::create();
int ret = mgr->removeAlias(alias);
return to_ckmc_error(ret);
}
+
+KEY_MANAGER_CAPI
+int ckmc_encrypt_data(const ckmc_param_list_s */*params*/,
+ const char */*key_alias*/,
+ const char */*password*/,
+ const ckmc_raw_buffer_s /*decrypted*/,
+ ckmc_raw_buffer_s **/*ppencrypted*/)
+{
+ // TODO implement it
+ return CKMC_ERROR_UNKNOWN;
+}
+
+KEY_MANAGER_CAPI
+int ckmc_decrypt_data(const ckmc_param_list_s */*params*/,
+ const char */*key_alias*/,
+ const char */*password*/,
+ const ckmc_raw_buffer_s /* encrypted*/,
+ ckmc_raw_buffer_s **/*ppdecrypted*/)
+{
+ // TODO implement it
+ return CKMC_ERROR_UNKNOWN;
+}