FOREACH(it, certificateChainList)
{
- LogDebug("Insert certinfo to pkgmgr db");
+ LogDebug("Insert certinfo to pkgmgr structure");
ValidationCore::CertificateCollection chain;
if (false == chain.load(*it)) {
LogError("Chain is broken");
+ ThrowMsg(Exceptions::SetCertificateInfoFailed,
+ "Failed to Installer Save Certinfo");
}
chain.sort();
-
ValidationCore::CertificateList list = chain.getCertificateList();
-
FOREACH(certIt, list)
{
ValidationCore::Crypto::Hash::SHA1 sha1;
sha1.Append((*certIt)->getDER());
sha1.Finish();
std::string sha1String = sha1.ToBase64String();
-
- if ((*certIt)->isRootCert()) {
- if (source == SIGNATURE_DISTRIBUTOR) {
- LogDebug("Set SIGNATURE_DISTRIBUTOR ");
- if((pkgmgr_installer_set_cert_value(
- m_pkgHandle,
- PM_SET_DISTRIBUTOR_ROOT_CERT,
- const_cast<char*>(sha1String.c_str()))) < 0) {
- LogError("pkgmgrInstallerSetCertValue fail");
- ThrowMsg(Exceptions::SetCertificateInfoFailed,
- "Failed to Set CertValue");
+ pkgmgr_instcert_type instCertType;
+
+ if (source == SIGNATURE_DISTRIBUTOR) {
+ std::string
+ Name(DPL::ToUTF8String(*(*certIt)->getOrganizationName()));
+ size_t found = Name.find("Tizen");
+
+ if (found != std::string::npos) {
+ LogDebug("Set SIGNATURE_DISTRIBUTOR");
+ if ((*certIt)->isRootCert()) {
+ instCertType = PM_SET_DISTRIBUTOR_ROOT_CERT;
+ } else {
+ if ((*certIt)->isCA()) {
+ instCertType = PM_SET_DISTRIBUTOR_INTERMEDIATE_CERT;
+ } else {
+ instCertType = PM_SET_DISTRIBUTOR_SIGNER_CERT;
+ }
+ }
+ } else {
+ LogDebug("Set SIGNATURE_DISTRIBUTOR2");
+ if ((*certIt)->isRootCert()) {
+ instCertType = PM_SET_DISTRIBUTOR2_ROOT_CERT;
+ } else {
+ if ((*certIt)->isCA()) {
+ instCertType = PM_SET_DISTRIBUTOR2_INTERMEDIATE_CERT;
+ } else {
+ instCertType = PM_SET_DISTRIBUTOR2_SIGNER_CERT;
+ }
}
}
- else {
- LogDebug("set SIGNATURE_AUTHOR");
- if((pkgmgr_installer_set_cert_value(
- m_pkgHandle,
- PM_SET_AUTHOR_ROOT_CERT,
- const_cast<char*>(sha1String.c_str()))) < 0) {
- LogError("pkgmgrInstallerSetCertValue fail");
- ThrowMsg(Exceptions::SetCertificateInfoFailed,
- "Failed to Installer Set CertValue");
+ } else {
+ LogDebug("set SIGNATURE_AUTHOR");
+ if ((*certIt)->isRootCert()) {
+ instCertType = PM_SET_AUTHOR_ROOT_CERT;
+ } else {
+ if ((*certIt)->isCA()) {
+ instCertType = PM_SET_AUTHOR_INTERMEDIATE_CERT;
+ } else {
+ instCertType = PM_SET_AUTHOR_SIGNER_CERT;
}
}
}
+ LogDebug("cert type : " << instCertType);
+ if((pkgmgr_installer_set_cert_value(
+ m_pkgHandle,
+ instCertType,
+ const_cast<char*>(sha1String.c_str()))) < 0) {
+ LogError("pkgmgrInstallerSetCertValue fail");
+ ThrowMsg(Exceptions::SetCertificateInfoFailed,
+ "Failed to Set CertValue");
+ }
}
}
}