mirror of
https://github.com/DarkStore-3DS/Project_CTR.git
synced 2026-07-06 00:39:11 +00:00
makerom v0.8
This commit is contained in:
+192
-168
@@ -29,17 +29,16 @@ void b64_strcpy(char *dst, char *src);
|
||||
|
||||
int set_AccessDesc(exheader_settings *exhdrset, ncch_settings *ncchset)
|
||||
{
|
||||
if(ncchset->keys->accessDescSign.presetType == not_preset){
|
||||
if(ncchset->rsfSet->CommonHeaderKey.Found) // Keydata exists in RSF
|
||||
return accessdesc_GetSignFromRsf(exhdrset,ncchset);
|
||||
else if(!ncchset->keys->rsa.requiresPresignedDesc) // Else if The AccessDesc can be signed with key
|
||||
return accessdesc_SignWithKey(exhdrset,ncchset);
|
||||
else{ // No way the access desc signature can be 'obtained'
|
||||
fprintf(stderr,"[EXHEADER ERROR] Current keyset cannot sign AccessDesc, please appropriatly setup RSF, or specify a preset with -accessdesc\n");
|
||||
return CANNOT_SIGN_ACCESSDESC;
|
||||
}
|
||||
if(exhdrset->useAccessDescPreset)
|
||||
return accessdesc_GetSignFromPreset(exhdrset,ncchset);
|
||||
else if(ncchset->rsfSet->CommonHeaderKey.Found) // Keydata exists in RSF
|
||||
return accessdesc_GetSignFromRsf(exhdrset,ncchset);
|
||||
else if(!ncchset->keys->rsa.requiresPresignedDesc) // Else if The AccessDesc can be signed with key
|
||||
return accessdesc_SignWithKey(exhdrset,ncchset);
|
||||
else{ // No way the access desc signature can be 'obtained'
|
||||
fprintf(stderr,"[EXHEADER ERROR] Current keyset cannot sign AccessDesc, please appropriatly setup RSF, or specify a preset with -accessdesc\n");
|
||||
return CANNOT_SIGN_ACCESSDESC;
|
||||
}
|
||||
return accessdesc_GetSignFromPreset(exhdrset,ncchset);
|
||||
}
|
||||
|
||||
int accessdesc_SignWithKey(exheader_settings *exhdrset, ncch_settings *ncchset)
|
||||
@@ -48,17 +47,20 @@ int accessdesc_SignWithKey(exheader_settings *exhdrset, ncch_settings *ncchset)
|
||||
memcpy(exhdrset->keys->rsa.cxiHdrPvt,exhdrset->keys->rsa.cciCfaPvt,0x100);
|
||||
memcpy(exhdrset->keys->rsa.cxiHdrPub,exhdrset->keys->rsa.cciCfaPub,0x100);
|
||||
memcpy(&exhdrset->exHdr->accessDescriptor.ncchRsaPubKey,exhdrset->keys->rsa.cxiHdrPub,0x100);
|
||||
|
||||
/* Copy Data From ExHeader */
|
||||
memcpy(&exhdrset->exHdr->accessDescriptor.arm11SystemLocalCapabilities,&exhdrset->exHdr->arm11SystemLocalCapabilities,sizeof(exhdr_ARM11SystemLocalCapabilities));
|
||||
memcpy(&exhdrset->exHdr->accessDescriptor.arm11KernelCapabilities,&exhdrset->exHdr->arm11KernelCapabilities,sizeof(exhdr_ARM11KernelCapabilities));
|
||||
memcpy(&exhdrset->exHdr->accessDescriptor.arm9AccessControlInfo,&exhdrset->exHdr->arm9AccessControlInfo,sizeof(exhdr_ARM9AccessControlInfo));
|
||||
|
||||
/* Adjust Data */
|
||||
u8 *flag = &exhdrset->exHdr->accessDescriptor.arm11SystemLocalCapabilities.flag;
|
||||
u8 SystemMode = (*flag>>4)&0xF;
|
||||
u8 AffinityMask = (*flag>>2)&0x3;
|
||||
u8 IdealProcessor = 1<<((*flag>>0)&0x3);
|
||||
*flag = (u8)(SystemMode << 4 | AffinityMask << 2 | IdealProcessor);
|
||||
exhdrset->exHdr->accessDescriptor.arm11SystemLocalCapabilities.priority /= 2;
|
||||
|
||||
memcpy(&exhdrset->exHdr->accessDescriptor.arm11KernelCapabilities,&exhdrset->exHdr->arm11KernelCapabilities,sizeof(exhdr_ARM11KernelCapabilities));
|
||||
memcpy(&exhdrset->exHdr->accessDescriptor.arm9AccessControlInfo,&exhdrset->exHdr->arm9AccessControlInfo,sizeof(exhdr_ARM9AccessControlInfo));
|
||||
|
||||
/* Sign AccessDesc */
|
||||
return SignAccessDesc(exhdrset->exHdr,exhdrset->keys);
|
||||
}
|
||||
@@ -156,12 +158,12 @@ int accessdesc_GetSignFromPreset(exheader_settings *exhdrset, ncch_settings *ncc
|
||||
#endif
|
||||
|
||||
// Error Checking
|
||||
if(!accessDesc || !depList){
|
||||
if(!desc || !depList){
|
||||
fprintf(stderr,"[EXHEADER ERROR] AccessDesc preset is unavailable, please configure RSF file\n");
|
||||
return CANNOT_SIGN_ACCESSDESC;
|
||||
}
|
||||
|
||||
if((!cxiPubk || !cxiPvtk || !accessDescSig) && ncchset->keys->rsa.requiresPresignedDesc){
|
||||
if((!cxiPubk || !cxiPvtk || !accessDesc || !accessDescSig) && ncchset->keys->rsa.requiresPresignedDesc){
|
||||
fprintf(stderr,"[EXHEADER ERROR] This AccessDesc preset needs to be signed, the current keyset is incapable of doing so. Please configure RSF file with the appropriate signature data.\n");
|
||||
return CANNOT_SIGN_ACCESSDESC;
|
||||
}
|
||||
@@ -170,36 +172,22 @@ int accessdesc_GetSignFromPreset(exheader_settings *exhdrset, ncch_settings *ncc
|
||||
// Dependency List
|
||||
memcpy(exhdrset->exHdr->dependencyList,depList,0x180);
|
||||
|
||||
// ARM11 Local Capabilities
|
||||
exhdr_ARM11SystemLocalCapabilities *arm11local = (exhdr_ARM11SystemLocalCapabilities*)(accessDesc);
|
||||
// Backing Up Non Preset Details
|
||||
// Backing Up Non Preset Data
|
||||
u8 ProgramID[8];
|
||||
exhdr_StorageInfo StorageInfoBackup;
|
||||
exhdr_ARM9AccessControlInfo Arm9Desc;
|
||||
memcpy(ProgramID,exhdrset->exHdr->arm11SystemLocalCapabilities.programId,8);
|
||||
memcpy(&StorageInfoBackup,&exhdrset->exHdr->arm11SystemLocalCapabilities.storageInfo,sizeof(exhdr_StorageInfo));
|
||||
memcpy(&Arm9Desc,&exhdrset->exHdr->arm9AccessControlInfo,sizeof(exhdr_ARM9AccessControlInfo));
|
||||
|
||||
// Setting Preset Data
|
||||
memcpy(&exhdrset->exHdr->arm11SystemLocalCapabilities,arm11local,sizeof(exhdr_ARM11SystemLocalCapabilities));
|
||||
memcpy(&exhdrset->exHdr->arm11SystemLocalCapabilities,desc,0x200);
|
||||
|
||||
// Restoring Non Preset Data
|
||||
memcpy(exhdrset->exHdr->arm11SystemLocalCapabilities.programId,ProgramID,8);
|
||||
memcpy(&exhdrset->exHdr->arm11SystemLocalCapabilities.storageInfo,&StorageInfoBackup,sizeof(exhdr_StorageInfo));
|
||||
memcpy(&exhdrset->exHdr->arm9AccessControlInfo,&Arm9Desc,sizeof(exhdr_ARM9AccessControlInfo));
|
||||
|
||||
// Adjusting flags to prevent errors
|
||||
u8 *flag = &exhdrset->exHdr->arm11SystemLocalCapabilities.flag;
|
||||
u8 SystemMode = (*flag>>4)&0xF;
|
||||
u8 AffinityMask = (*flag>>2)&0x3;
|
||||
u8 IdealProcessor = ((*flag>>0)&0x3)>>1;
|
||||
*flag = (u8)(SystemMode << 4 | AffinityMask << 2 | IdealProcessor);
|
||||
exhdrset->exHdr->arm11SystemLocalCapabilities.priority *= 2;
|
||||
|
||||
// ARM11 Kernel Capabilities
|
||||
exhdr_ARM11KernelCapabilities *arm11kernel = (exhdr_ARM11KernelCapabilities*)(accessDesc+sizeof(exhdr_ARM11SystemLocalCapabilities));
|
||||
memcpy(&exhdrset->exHdr->arm11KernelCapabilities,arm11kernel,(sizeof(exhdr_ARM11KernelCapabilities)));
|
||||
|
||||
// ARM9 Access Control
|
||||
exhdr_ARM9AccessControlInfo *arm9 = (exhdr_ARM9AccessControlInfo*)(accessDesc+sizeof(exhdr_ARM11SystemLocalCapabilities)+sizeof(exhdr_ARM11KernelCapabilities));
|
||||
memcpy(&exhdrset->exHdr->arm9AccessControlInfo,arm9,(sizeof(exhdr_ARM9AccessControlInfo)));
|
||||
|
||||
// Setting AccessDesc Area
|
||||
// Signing normally if possible
|
||||
@@ -218,85 +206,101 @@ int accessdesc_GetSignFromPreset(exheader_settings *exhdrset, ncch_settings *ncc
|
||||
|
||||
void accessdesc_GetPresetData(u8 **desc, u8 **accessDesc, u8 **depList, ncch_settings *ncchset)
|
||||
{
|
||||
if(ncchset->keys->accessDescSign.presetType == app){
|
||||
if(ncchset->keys->accessDescSign.presetType == desc_preset_APP){
|
||||
switch(ncchset->keys->accessDescSign.targetFirmware){
|
||||
case 1:
|
||||
*desc = (u8*)app_1_desc_data;
|
||||
*accessDesc = (u8*)app_1_acex_data;
|
||||
*depList = (u8*)sdk1_dep_list;
|
||||
case 0x1B:
|
||||
case 0x1C:
|
||||
*desc = (u8*)app_fw1B_desc_data;
|
||||
*accessDesc = (u8*)app_fw1B_acex_data;
|
||||
*depList = (u8*)fw1B_dep_list;
|
||||
break;
|
||||
case 2:
|
||||
*desc = (u8*)app_2_desc_data;
|
||||
*accessDesc = (u8*)app_2_acex_data;
|
||||
*depList = (u8*)sdk2_dep_list;
|
||||
case 0x1D:
|
||||
*desc = (u8*)app_fw1D_desc_data;
|
||||
*accessDesc = (u8*)app_fw1D_acex_data;
|
||||
*depList = (u8*)fw1D_dep_list;
|
||||
break;
|
||||
case 3:
|
||||
*desc = (u8*)app_3_desc_data;
|
||||
*accessDesc = (u8*)app_3_acex_data;
|
||||
*depList = (u8*)sdk3_dep_list;
|
||||
case 0x1E:
|
||||
*desc = (u8*)app_fw1E_desc_data;
|
||||
*accessDesc = (u8*)app_fw1E_acex_data;
|
||||
*depList = (u8*)fw1D_dep_list;
|
||||
break;
|
||||
case 4:
|
||||
*desc = (u8*)app_4_desc_data;
|
||||
*accessDesc = (u8*)app_4_acex_data;
|
||||
*depList = (u8*)sdk4_dep_list;
|
||||
case 0x20:
|
||||
*desc = (u8*)app_fw20_desc_data;
|
||||
*accessDesc = (u8*)app_fw20_acex_data;
|
||||
*depList = (u8*)fw20_dep_list;
|
||||
break;
|
||||
case 5:
|
||||
*desc = (u8*)app_5_desc_data;
|
||||
*accessDesc = (u8*)app_5_acex_data;
|
||||
*depList = (u8*)sdk5_dep_list;
|
||||
case 0x21:
|
||||
*desc = (u8*)app_fw21_desc_data;
|
||||
*accessDesc = (u8*)app_fw21_acex_data;
|
||||
*depList = (u8*)fw21_dep_list;
|
||||
break;
|
||||
case 7:
|
||||
*desc = (u8*)app_7_desc_data;
|
||||
*accessDesc = (u8*)app_7_acex_data;
|
||||
*depList = (u8*)sdk7_dep_list;
|
||||
case 0x23:
|
||||
*desc = (u8*)app_fw23_desc_data;
|
||||
*accessDesc = (u8*)app_fw23_acex_data;
|
||||
*depList = (u8*)fw23_dep_list;
|
||||
break;
|
||||
case 0x27:
|
||||
*desc = (u8*)app_fw27_desc_data;
|
||||
*accessDesc = (u8*)app_fw27_acex_data;
|
||||
*depList = (u8*)fw27_dep_list;
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
else if(ncchset->keys->accessDescSign.presetType == ec_app){
|
||||
else if(ncchset->keys->accessDescSign.presetType == desc_preset_EC_APP){
|
||||
switch(ncchset->keys->accessDescSign.targetFirmware){
|
||||
case 4:
|
||||
*desc = (u8*)ecapp_4_desc_data;
|
||||
*accessDesc = (u8*)ecapp_4_acex_data;
|
||||
*depList = (u8*)sdk4_dep_list;
|
||||
case 0x20:
|
||||
*desc = (u8*)ecapp_fw20_desc_data;
|
||||
*accessDesc = (u8*)ecapp_fw20_acex_data;
|
||||
*depList = (u8*)fw20_dep_list;
|
||||
break;
|
||||
case 5:
|
||||
*desc = (u8*)ecapp_5_desc_data;
|
||||
*accessDesc = (u8*)ecapp_5_acex_data;
|
||||
*depList = (u8*)sdk5_dep_list;
|
||||
case 0x23:
|
||||
*desc = (u8*)ecapp_fw23_desc_data;
|
||||
*accessDesc = (u8*)ecapp_fw23_acex_data;
|
||||
*depList = (u8*)fw23_dep_list;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if(ncchset->keys->accessDescSign.presetType == dlp){
|
||||
else if(ncchset->keys->accessDescSign.presetType == desc_preset_DLP){
|
||||
switch(ncchset->keys->accessDescSign.targetFirmware){
|
||||
case 1:
|
||||
*desc = (u8*)dlp_1_desc_data;
|
||||
*accessDesc = (u8*)dlp_1_acex_data;
|
||||
*depList = (u8*)sdk1_dep_list;
|
||||
case 0x1B:
|
||||
case 0x1C:
|
||||
*desc = (u8*)dlp_fw1B_desc_data;
|
||||
*accessDesc = (u8*)dlp_fw1B_acex_data;
|
||||
*depList = (u8*)fw1B_dep_list;
|
||||
break;
|
||||
case 2:
|
||||
*desc = (u8*)dlp_2_desc_data;
|
||||
*accessDesc = (u8*)dlp_2_acex_data;
|
||||
*depList = (u8*)sdk2_dep_list;
|
||||
case 0x1D:
|
||||
*desc = (u8*)dlp_fw1D_desc_data;
|
||||
*accessDesc = (u8*)dlp_fw1D_acex_data;
|
||||
*depList = (u8*)fw1D_dep_list;
|
||||
break;
|
||||
case 4:
|
||||
*desc = (u8*)dlp_4_desc_data;
|
||||
*accessDesc = (u8*)dlp_4_acex_data;
|
||||
*depList = (u8*)sdk4_dep_list;
|
||||
case 0x21:
|
||||
*desc = (u8*)dlp_fw21_desc_data;
|
||||
*accessDesc = (u8*)dlp_fw21_acex_data;
|
||||
*depList = (u8*)fw21_dep_list;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if(ncchset->keys->accessDescSign.presetType == demo){
|
||||
else if(ncchset->keys->accessDescSign.presetType == desc_preset_DEMO){
|
||||
switch(ncchset->keys->accessDescSign.targetFirmware){
|
||||
case 2:
|
||||
*desc = (u8*)demo_2_desc_data;
|
||||
*accessDesc = (u8*)demo_2_acex_data;
|
||||
*depList = (u8*)sdk2_dep_list;
|
||||
case 0x1E:
|
||||
*desc = (u8*)demo_fw1E_desc_data;
|
||||
*accessDesc = (u8*)demo_fw1E_acex_data;
|
||||
*depList = (u8*)fw1D_dep_list;
|
||||
break;
|
||||
case 4:
|
||||
*desc = (u8*)demo_4_desc_data;
|
||||
*accessDesc = (u8*)demo_4_acex_data;
|
||||
*depList = (u8*)sdk4_dep_list;
|
||||
case 0x21:
|
||||
*desc = (u8*)demo_fw21_desc_data;
|
||||
*accessDesc = (u8*)demo_fw21_acex_data;
|
||||
*depList = (u8*)fw21_dep_list;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if(ncchset->keys->accessDescSign.presetType == desc_preset_FIRM){
|
||||
switch(ncchset->keys->accessDescSign.targetFirmware){
|
||||
default:
|
||||
*desc = (u8*)firm_fw26_desc_data;
|
||||
*accessDesc = (u8*)firm_fw26_acex_data;
|
||||
*depList = (u8*)firm_fwXX_dep_list;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -305,130 +309,150 @@ void accessdesc_GetPresetData(u8 **desc, u8 **accessDesc, u8 **depList, ncch_set
|
||||
#ifndef PUBLIC_BUILD
|
||||
void accessdesc_GetPresetSigData(u8 **accessDescSig, u8 **cxiPubk, u8 **cxiPvtk, ncch_settings *ncchset)
|
||||
{
|
||||
if(ncchset->keys->accessDescSign.presetType == app){
|
||||
if(ncchset->keys->accessDescSign.presetType == desc_preset_APP){
|
||||
switch(ncchset->keys->accessDescSign.targetFirmware){
|
||||
case 1:
|
||||
case 0x1B:
|
||||
case 0x1C:
|
||||
if(ncchset->keys->keyset == pki_DEVELOPMENT){
|
||||
*accessDescSig = (u8*)app_1_dev_acexsig;
|
||||
*cxiPubk = (u8*)app_1_dev_hdrpub;
|
||||
*cxiPvtk = (u8*)app_1_dev_hdrpvt;
|
||||
*accessDescSig = (u8*)app_fw1B_dev_acexsig;
|
||||
*cxiPubk = (u8*)app_fw1B_dev_hdrpub;
|
||||
*cxiPvtk = (u8*)app_fw1B_dev_hdrpvt;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
case 0x1D:
|
||||
if(ncchset->keys->keyset == pki_DEVELOPMENT){
|
||||
*accessDescSig = (u8*)app_2_dev_acexsig;
|
||||
*cxiPubk = (u8*)app_2_dev_hdrpub;
|
||||
*cxiPvtk = (u8*)app_2_dev_hdrpvt;
|
||||
*accessDescSig = (u8*)app_fw1D_dev_acexsig;
|
||||
*cxiPubk = (u8*)app_fw1D_dev_hdrpub;
|
||||
*cxiPvtk = (u8*)app_fw1D_dev_hdrpvt;
|
||||
}
|
||||
if(ncchset->keys->keyset == pki_PRODUCTION){
|
||||
*accessDescSig = (u8*)app_2_prod_acexsig;
|
||||
*cxiPubk = (u8*)app_2_prod_hdrpub;
|
||||
*accessDescSig = (u8*)app_fw1D_prod_acexsig;
|
||||
*cxiPubk = (u8*)app_fw1D_prod_hdrpub;
|
||||
*cxiPvtk = NULL;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if(ncchset->keys->keyset == pki_DEVELOPMENT){
|
||||
*accessDescSig = (u8*)app_3_dev_acexsig;
|
||||
*cxiPubk = (u8*)app_3_dev_hdrpub;
|
||||
*cxiPvtk = NULL;
|
||||
}
|
||||
else if(ncchset->keys->keyset == pki_PRODUCTION){
|
||||
*accessDescSig = (u8*)app_3_prod_acexsig;
|
||||
*cxiPubk = (u8*)app_3_prod_hdrpub;
|
||||
*cxiPvtk = NULL;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
if(ncchset->keys->keyset == pki_DEVELOPMENT){
|
||||
*accessDescSig = (u8*)app_4_dev_acexsig;
|
||||
*cxiPubk = (u8*)app_4_dev_hdrpub;
|
||||
*cxiPvtk = (u8*)app_4_dev_hdrpvt;
|
||||
}
|
||||
else if(ncchset->keys->keyset == pki_PRODUCTION){
|
||||
*accessDescSig = (u8*)app_4_prod_acexsig;
|
||||
*cxiPubk = (u8*)app_4_prod_hdrpub;
|
||||
*cxiPvtk = NULL;
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
if(ncchset->keys->keyset == pki_DEVELOPMENT){
|
||||
*accessDescSig = (u8*)app_5_dev_acexsig;
|
||||
*cxiPubk = (u8*)app_5_dev_hdrpub;
|
||||
*cxiPvtk = NULL;
|
||||
}
|
||||
else if(ncchset->keys->keyset == pki_PRODUCTION){
|
||||
*accessDescSig = (u8*)app_5_prod_acexsig;
|
||||
*cxiPubk = (u8*)app_5_prod_hdrpub;
|
||||
*cxiPvtk = NULL;
|
||||
}
|
||||
break;
|
||||
case 7:
|
||||
case 0x1E:
|
||||
if(ncchset->keys->keyset == pki_PRODUCTION){
|
||||
*accessDescSig = (u8*)app_7_prod_acexsig;
|
||||
*cxiPubk = (u8*)app_7_prod_hdrpub;
|
||||
*accessDescSig = (u8*)app_fw1E_prod_acexsig;
|
||||
*cxiPubk = (u8*)app_fw1E_prod_hdrpub;
|
||||
*cxiPvtk = NULL;
|
||||
}
|
||||
break;
|
||||
case 0x20:
|
||||
if(ncchset->keys->keyset == pki_DEVELOPMENT){
|
||||
*accessDescSig = (u8*)app_fw20_dev_acexsig;
|
||||
*cxiPubk = (u8*)app_fw20_dev_hdrpub;
|
||||
*cxiPvtk = NULL;
|
||||
}
|
||||
else if(ncchset->keys->keyset == pki_PRODUCTION){
|
||||
*accessDescSig = (u8*)app_fw20_prod_acexsig;
|
||||
*cxiPubk = (u8*)app_fw20_prod_hdrpub;
|
||||
*cxiPvtk = NULL;
|
||||
}
|
||||
break;
|
||||
case 0x21:
|
||||
if(ncchset->keys->keyset == pki_DEVELOPMENT){
|
||||
*accessDescSig = (u8*)app_fw21_dev_acexsig;
|
||||
*cxiPubk = (u8*)app_fw21_dev_hdrpub;
|
||||
*cxiPvtk = (u8*)app_fw21_dev_hdrpvt;
|
||||
}
|
||||
else if(ncchset->keys->keyset == pki_PRODUCTION){
|
||||
*accessDescSig = (u8*)app_fw21_prod_acexsig;
|
||||
*cxiPubk = (u8*)app_fw21_prod_hdrpub;
|
||||
*cxiPvtk = NULL;
|
||||
}
|
||||
break;
|
||||
case 0x23:
|
||||
if(ncchset->keys->keyset == pki_DEVELOPMENT){
|
||||
*accessDescSig = (u8*)app_fw23_dev_acexsig;
|
||||
*cxiPubk = (u8*)app_fw23_dev_hdrpub;
|
||||
*cxiPvtk = NULL;
|
||||
}
|
||||
else if(ncchset->keys->keyset == pki_PRODUCTION){
|
||||
*accessDescSig = (u8*)app_fw23_prod_acexsig;
|
||||
*cxiPubk = (u8*)app_fw23_prod_hdrpub;
|
||||
*cxiPvtk = NULL;
|
||||
}
|
||||
break;
|
||||
case 0x27:
|
||||
if(ncchset->keys->keyset == pki_PRODUCTION){
|
||||
*accessDescSig = (u8*)app_fw27_prod_acexsig;
|
||||
*cxiPubk = (u8*)app_fw27_prod_hdrpub;
|
||||
*cxiPvtk = NULL;
|
||||
}
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
else if(ncchset->keys->accessDescSign.presetType == ec_app){
|
||||
else if(ncchset->keys->accessDescSign.presetType == desc_preset_EC_APP){
|
||||
switch(ncchset->keys->accessDescSign.targetFirmware){
|
||||
case 4:
|
||||
case 0x20:
|
||||
if(ncchset->keys->keyset == pki_PRODUCTION){
|
||||
*accessDescSig = (u8*)ecapp_4_prod_acexsig;
|
||||
*cxiPubk = (u8*)ecapp_4_prod_hdrpub;
|
||||
*accessDescSig = (u8*)ecapp_fw20_prod_acexsig;
|
||||
*cxiPubk = (u8*)ecapp_fw20_prod_hdrpub;
|
||||
*cxiPvtk = NULL;
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
case 0x23:
|
||||
if(ncchset->keys->keyset == pki_PRODUCTION){
|
||||
*accessDescSig = (u8*)ecapp_5_prod_acexsig;
|
||||
*cxiPubk = (u8*)ecapp_5_prod_hdrpub;
|
||||
*accessDescSig = (u8*)ecapp_fw23_prod_acexsig;
|
||||
*cxiPubk = (u8*)ecapp_fw23_prod_hdrpub;
|
||||
*cxiPvtk = NULL;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if(ncchset->keys->accessDescSign.presetType == dlp){
|
||||
else if(ncchset->keys->accessDescSign.presetType == desc_preset_DLP){
|
||||
switch(ncchset->keys->accessDescSign.targetFirmware){
|
||||
case 1:
|
||||
case 0x1B:
|
||||
case 0x1C:
|
||||
if(ncchset->keys->keyset == pki_DEVELOPMENT){
|
||||
*accessDescSig = (u8*)dlp_1_dev_acexsig;
|
||||
*cxiPubk = (u8*)dlp_1_dev_hdrpub;
|
||||
*cxiPvtk = (u8*)dlp_1_dev_hdrpvt;
|
||||
*accessDescSig = (u8*)dlp_fw1B_dev_acexsig;
|
||||
*cxiPubk = (u8*)dlp_fw1B_dev_hdrpub;
|
||||
*cxiPvtk = (u8*)dlp_fw1B_dev_hdrpvt;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
case 0x1D:
|
||||
if(ncchset->keys->keyset == pki_DEVELOPMENT){
|
||||
*accessDescSig = (u8*)dlp_2_dev_acexsig;
|
||||
*cxiPubk = (u8*)dlp_2_dev_hdrpub;
|
||||
*cxiPvtk = (u8*)dlp_2_dev_hdrpvt;
|
||||
*accessDescSig = (u8*)dlp_fw1D_dev_acexsig;
|
||||
*cxiPubk = (u8*)dlp_fw1D_dev_hdrpub;
|
||||
*cxiPvtk = (u8*)dlp_fw1D_dev_hdrpvt;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
case 0x21:
|
||||
if(ncchset->keys->keyset == pki_DEVELOPMENT){
|
||||
*accessDescSig = (u8*)dlp_4_dev_acexsig;
|
||||
*cxiPubk = (u8*)dlp_4_dev_hdrpub;
|
||||
*cxiPvtk = (u8*)dlp_4_dev_hdrpvt;
|
||||
*accessDescSig = (u8*)dlp_fw21_dev_acexsig;
|
||||
*cxiPubk = (u8*)dlp_fw21_dev_hdrpub;
|
||||
*cxiPvtk = (u8*)dlp_fw21_dev_hdrpvt;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if(ncchset->keys->accessDescSign.presetType == demo){
|
||||
else if(ncchset->keys->accessDescSign.presetType == desc_preset_DEMO){
|
||||
switch(ncchset->keys->accessDescSign.targetFirmware){
|
||||
case 2:
|
||||
case 0x1E:
|
||||
if(ncchset->keys->keyset == pki_DEVELOPMENT){
|
||||
*accessDescSig = (u8*)demo_2_dev_acexsig;
|
||||
*cxiPubk = (u8*)demo_2_dev_hdrpub;
|
||||
*accessDescSig = (u8*)demo_fw1E_dev_acexsig;
|
||||
*cxiPubk = (u8*)demo_fw1E_dev_hdrpub;
|
||||
*cxiPvtk = NULL;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
case 0x21:
|
||||
if(ncchset->keys->keyset == pki_DEVELOPMENT){
|
||||
*accessDescSig = (u8*)demo_4_dev_acexsig;
|
||||
*cxiPubk = (u8*)demo_4_dev_hdrpub;
|
||||
*cxiPvtk = (u8*)demo_4_dev_hdrpvt;
|
||||
*accessDescSig = (u8*)demo_fw21_dev_acexsig;
|
||||
*cxiPubk = (u8*)demo_fw21_dev_hdrpub;
|
||||
*cxiPvtk = (u8*)demo_fw21_dev_hdrpvt;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if(ncchset->keys->accessDescSign.presetType == desc_preset_FIRM){
|
||||
switch(ncchset->keys->accessDescSign.targetFirmware){
|
||||
case 0x26:
|
||||
if(ncchset->keys->keyset == pki_DEVELOPMENT){
|
||||
*accessDescSig = (u8*)firm_fw26_dev_acexsig;
|
||||
*cxiPubk = (u8*)firm_fw26_dev_hdrpub;
|
||||
*cxiPvtk = NULL;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user