#include "InstallerUtil.h"
-#define OSP_INSTALLER_VERSION "version=[20130527.1]"
+#define OSP_INSTALLER_VERSION "version=[20130527.2]"
#define DIR_BIN L"/bin"
#define DIR_INFO L"/info"
static const int BLOCK_SIZE = 4096;
static const int SIGNATURE_FILE_NUMBER_DISTRIBUTOR = 1;
+static const int SIGNATURE_FILE_NUMBER_DISTRIBUTOR2 = 2;
#define OSP_INSTALLER "osp-installer"
SIGNATURE_FILE_TYPE_NONE,
SIGNATURE_FILE_TYPE_AUTHOR,
SIGNATURE_FILE_TYPE_DISTRIBUTOR,
+ SIGNATURE_FILE_TYPE_DISTRIBUTOR2,
};
,__pDistributorCertPath(null)
,__pAuthorCertList(null)
,__pDistributorCertList(null)
+,__pDistributorCertList2(null)
,__certType(0)
,__pPkgmgrInstaller(null)
{
delete __pDistributorCertList;
__pDistributorCertList = null;
}
+
+ if (__pDistributorCertList2)
+ {
+ __pDistributorCertList2->RemoveAll();
+ delete __pDistributorCertList2;
+ __pDistributorCertList2 = null;
+ }
}
InstallerError
__pDistributorCertList = new (std::nothrow) ArrayListT<String*>;
TryReturn(__pDistributorCertList, INSTALLER_ERROR_OUT_OF_MEMORY, "__pDistributorCertList is null.");
+ __pDistributorCertList2 = new (std::nothrow) ArrayListT<String*>;
+ TryReturn(__pDistributorCertList2, INSTALLER_ERROR_OUT_OF_MEMORY, "__pDistributorCertList2 is null.");
+
return INSTALLER_ERROR_NONE;
}
__pContext->__pDistributorCertList->Add(new String(value.c_str()));
AppLog("Default distributor cert value=[%s]", value.c_str());
}
+ else if (sigFileNumber == SIGNATURE_FILE_NUMBER_DISTRIBUTOR2)
+ {
+ __pContext->__pDistributorCertList2->Add(new String(value.c_str()));
+ AppLog("Default distributor2 cert value=[%s]", value.c_str());
+ }
}
}
AppLog("CertStoreIdType = [%d]", (int)certStoreIdType);
__pContext->__rootCertType = (RootCertificateType)certStoreIdType;
}
+ else if (sigFileNumber == SIGNATURE_FILE_NUMBER_DISTRIBUTOR2)
+ {
+ __pContext->__pDistributorCertList2->Add(new String(value.c_str()));
+ AppLog("Default root distributor2 cert value=[%s]", value.c_str());
+ }
}
}
catch (ValidationCore::ParserSchemaException::Base)
if (__pContext->__pDistributorCertList)
{
AppLog("[DistributorCert]");
- res = SetDistributorCertValue(handle, __pContext->__pDistributorCertList);
- TryCatch(res == true, , "RegisterCertHashValue() is failed.");
+ res = SetDistributorCertValue(handle, __pContext->__pDistributorCertList, 1);
+ TryCatch(res == true, , "SetDistributorCertValue() is failed.");
+ }
+
+ if (__pContext->__pDistributorCertList2)
+ {
+ AppLog("[DistributorCert2]");
+ res = SetDistributorCertValue(handle, __pContext->__pDistributorCertList2, 2);
+ TryCatch(res == true, , "SetDistributorCertValue() is failed.");
}
error = pkgmgr_installer_save_certinfo(pPackageId.get(), handle);
}
bool
-SignatureManager::SetDistributorCertValue(void* pHandle, IListT<String *>* pCertList) const
+SignatureManager::SetDistributorCertValue(void* pHandle, IListT<String *>* pCertList, int sigFileNumber) const
{
TryReturn(pHandle, false, "pHandle is null.");
TryReturn(pCertList, false, "pCertPath is null.");
+ TryReturn((sigFileNumber == 1) || (sigFileNumber == 2), false, "sigFileNumber[%d] is invalid.", sigFileNumber);
int res = 0;
result r = E_SUCCESS;
std::unique_ptr<char[]> pCertValue(_StringConverter::CopyToCharArrayN(*pCert));
- if (i == 0)
+ if (sigFileNumber == 1)
{
- certType = PM_SET_DISTRIBUTOR_SIGNER_CERT;
- }
- else if (i == 1)
- {
- certType = PM_SET_DISTRIBUTOR_INTERMEDIATE_CERT;
- }
- else if (i == 2)
- {
- certType = PM_SET_DISTRIBUTOR_ROOT_CERT;
+ if (i == 0)
+ {
+ certType = PM_SET_DISTRIBUTOR_SIGNER_CERT;
+ }
+ else if (i == 1)
+ {
+ certType = PM_SET_DISTRIBUTOR_INTERMEDIATE_CERT;
+ }
+ else if (i == 2)
+ {
+ certType = PM_SET_DISTRIBUTOR_ROOT_CERT;
+ }
+ else
+ {
+ AppLog("Invalid certificate type[%d]", i);
+ break;
+ }
}
- else
+ else if (sigFileNumber == 2)
{
- AppLog("Invalid certificate type[%d]", i);
- break;
+ if (i == 0)
+ {
+ certType = PM_SET_DISTRIBUTOR2_SIGNER_CERT;
+ }
+ else if (i == 1)
+ {
+ certType = PM_SET_DISTRIBUTOR2_INTERMEDIATE_CERT;
+ }
+ else if (i == 2)
+ {
+ certType = PM_SET_DISTRIBUTOR2_ROOT_CERT;
+ }
+ else
+ {
+ AppLog("Invalid certificate type[%d]", i);
+ break;
+ }
}
AppLog("------------------------------------------");
{
pList = __pContext->__pDistributorCertList;
}
+ else if (type == SIGNATURE_FILE_TYPE_DISTRIBUTOR2)
+ {
+ pList = __pContext->__pDistributorCertList2;
+ }
else
{
TryReturn(0, false, "SignatureFileType is unknown, type = [%d]", (int)type);