mirror of
https://github.com/DarkStore-3DS/Project_CTR.git
synced 2026-07-02 16:59:03 +00:00
Merge branch 'master' of github.com:alex34567/Project_CTR
This commit is contained in:
@@ -36,6 +36,8 @@ local.properties
|
||||
## Ignore Visual Studio temporary files, build results, and
|
||||
## files generated by popular Visual Studio add-ons.
|
||||
|
||||
*.VC.opendb
|
||||
|
||||
# User-specific files
|
||||
*.suo
|
||||
*.user
|
||||
|
||||
@@ -106,6 +106,7 @@ void n128_xor(const uint8_t *a, const uint8_t *b, uint8_t *out)
|
||||
}
|
||||
|
||||
// keygen algorithm
|
||||
/*
|
||||
void n_aes_keygen(const uint8_t *x, uint8_t x_shift, const uint8_t *y, uint8_t y_shift, const uint8_t *keygen_constant, uint8_t *key)
|
||||
{
|
||||
// overall algo:
|
||||
@@ -121,4 +122,25 @@ void n_aes_keygen(const uint8_t *x, uint8_t x_shift, const uint8_t *y, uint8_t y
|
||||
|
||||
// Add secret
|
||||
n128_add(key_xy, keygen_constant, key);
|
||||
}
|
||||
*/
|
||||
|
||||
void ctr_aes_keygen(const uint8_t *x, const uint8_t *y, uint8_t *key)
|
||||
{
|
||||
static const uint8_t KEYGEN_CONST[16] = { 0x1F, 0xF9, 0xE9, 0xAA, 0xC5, 0xFE, 0x04, 0x08, 0x02, 0x45, 0x91, 0xDC, 0x5D, 0x52, 0x76, 0x8A };
|
||||
|
||||
// overall algo:
|
||||
// key = (((x <<< 2) ^ y) + KEYGEN_CONST) >>> 41
|
||||
uint8_t x_rot[16], key_xy[16], key_xyc[16];
|
||||
|
||||
// x_rot = x <<< 2
|
||||
n128_lrot(x, 2, x_rot);
|
||||
|
||||
// key_xy = x_rot ^ y
|
||||
n128_xor(x_rot, y, key_xy);
|
||||
|
||||
// key_xyc = key_xy + KEYGEN_CONST
|
||||
n128_add(key_xy, KEYGEN_CONST, key_xyc);
|
||||
|
||||
n128_rrot(key_xyc, 41, key);
|
||||
}
|
||||
@@ -2,11 +2,7 @@
|
||||
#include <stdint.h>
|
||||
|
||||
/*
|
||||
AES Key generator for the Nintendo (Handheld) Consoles
|
||||
|
||||
BYO keygen constants, and input >>> parameters
|
||||
|
||||
key = ((x >>> x_shift) ^ (y >>> y_shift)) + keygen_constant
|
||||
AES Key generator for the Nintendo 3DS (CTR) Consoles
|
||||
*/
|
||||
|
||||
void n_aes_keygen(const uint8_t *x, uint8_t x_shift, const uint8_t *y, uint8_t y_shift, const uint8_t *keygen_constant, uint8_t *key);
|
||||
void ctr_aes_keygen(const uint8_t *x, const uint8_t *y, uint8_t *key);
|
||||
|
||||
+13
-14
@@ -12,9 +12,8 @@ typedef struct code_segment
|
||||
{
|
||||
u32 address;
|
||||
u32 memSize;
|
||||
u32 fileSize;
|
||||
u32 pageNum;
|
||||
|
||||
u32 size;
|
||||
const u8 *data;
|
||||
} code_segment;
|
||||
|
||||
@@ -132,7 +131,7 @@ void CreateCodeSegmentFromElf(code_segment *out, elf_context *elf, u64 segment_f
|
||||
out->address = 0;
|
||||
out->memSize = 0;
|
||||
out->pageNum = 0;
|
||||
out->size = 0;
|
||||
out->fileSize = 0;
|
||||
out->data = NULL;
|
||||
|
||||
/* Find segment */
|
||||
@@ -147,8 +146,8 @@ void CreateCodeSegmentFromElf(code_segment *out, elf_context *elf, u64 segment_f
|
||||
if ((segments[i].flags & ~PF_CTRSDK) == segment_flags && segments[i].type == PT_LOAD) {
|
||||
out->address = segments[i].vAddr;
|
||||
out->memSize = segments[i].memSize;
|
||||
out->pageNum = SizeToPage(out->memSize);
|
||||
out->size = segments[i].fileSize;
|
||||
out->fileSize = segments[i].fileSize;
|
||||
out->pageNum = SizeToPage(out->fileSize);
|
||||
out->data = segments[i].ptr;
|
||||
break;
|
||||
}
|
||||
@@ -167,23 +166,23 @@ int CreateExeFsCode(elf_context *elf, ncch_settings *set)
|
||||
CreateCodeSegmentFromElf(&rwdata, elf, PF_DATA);
|
||||
|
||||
/* Checking the existence of essential ELF Segments */
|
||||
if (!text.size) return NOT_FIND_TEXT_SEGMENT;
|
||||
if (!rwdata.size) return NOT_FIND_DATA_SEGMENT;
|
||||
if (!text.fileSize) return NOT_FIND_TEXT_SEGMENT;
|
||||
if (!rwdata.fileSize) return NOT_FIND_DATA_SEGMENT;
|
||||
|
||||
/* Calculating BSS size */
|
||||
set->codeDetails.bssSize = rwdata.memSize - rwdata.size;
|
||||
set->codeDetails.bssSize = rwdata.memSize - rwdata.fileSize;
|
||||
|
||||
/* Allocating Buffer for ExeFs Code */
|
||||
u32 size = PageToSize(text.pageNum + rodata.pageNum + rwdata.pageNum);
|
||||
u8 *code = calloc(1, size);
|
||||
|
||||
/* Writing Code into Buffer */
|
||||
u8 *textPos = (code + text.address - text.address);
|
||||
u8 *rodataPos = (code + rodata.address - text.address);
|
||||
u8 *rwdataPos = (code + rwdata.address - text.address);
|
||||
if (text.size) memcpy(textPos, text.data, text.size);
|
||||
if (rodata.size) memcpy(rodataPos, rodata.data, rodata.size);
|
||||
if (rwdata.size) memcpy(rwdataPos, rwdata.data, rwdata.size);
|
||||
u8 *textPos = (code + PageToSize(0));
|
||||
u8 *rodataPos = (code + PageToSize(text.pageNum));
|
||||
u8 *rwdataPos = (code + PageToSize(text.pageNum + rodata.pageNum));
|
||||
if (text.fileSize) memcpy(textPos, text.data, text.fileSize);
|
||||
if (rodata.fileSize) memcpy(rodataPos, rodata.data, rodata.fileSize);
|
||||
if (rwdata.fileSize) memcpy(rwdataPos, rwdata.data, rwdata.fileSize);
|
||||
|
||||
|
||||
/* Compressing if needed */
|
||||
|
||||
+2
-2
@@ -346,8 +346,8 @@ int SetARM11SystemLocalInfoFlags(exhdr_ARM11SystemLocalCapabilities *arm11, rsf_
|
||||
/* flag[2] */
|
||||
if(rsf->AccessControlInfo.AffinityMask){
|
||||
arm11->affinityMask = strtol(rsf->AccessControlInfo.AffinityMask,NULL,0);
|
||||
if(arm11->affinityMask > 1){
|
||||
fprintf(stderr,"[EXHEADER ERROR] Unexpected AffinityMask: %d. Expected range: 0x0 - 0x1\n", arm11->affinityMask);
|
||||
if(arm11->affinityMask > 3){
|
||||
fprintf(stderr,"[EXHEADER ERROR] Unexpected AffinityMask: %d. Expected range: 0x0 - 0x3\n", arm11->affinityMask);
|
||||
return EXHDR_BAD_RSF_OPT;
|
||||
}
|
||||
}
|
||||
|
||||
+14
-23
@@ -48,15 +48,6 @@ void PrintBadKeySize(char *path, u32 size)
|
||||
fprintf(stderr,"[KEYSET ERROR] %s has invalid size (0x%x)\n",path,size);
|
||||
}
|
||||
|
||||
u8* AesKeyScrambler(u8 *key, const u8 *keyX, const u8 *keyY)
|
||||
{
|
||||
static const uint8_t CTR_KEYGEN_CONST[16] = { 0xEE, 0x2E, 0xA9, 0x3B, 0x45, 0x0F, 0xFC, 0xF4, 0xD5, 0x62, 0xFF, 0x02, 0x04, 0x01, 0x22, 0xC8 };
|
||||
static const uint8_t CTR_KEYX_SHIFT = 39;
|
||||
static const uint8_t CTR_KEYY_SHIFT = 41;
|
||||
n_aes_keygen(keyX, CTR_KEYX_SHIFT, keyY, CTR_KEYY_SHIFT, CTR_KEYGEN_CONST, key);
|
||||
return key;
|
||||
}
|
||||
|
||||
int SetKeys(keys_struct *keys)
|
||||
{
|
||||
int result = 0;
|
||||
@@ -100,7 +91,7 @@ int LoadKeysFromResources(keys_struct *keys)
|
||||
keys->keysetLoaded = true;
|
||||
/* AES Keys */
|
||||
// CIA
|
||||
for(int i = 0; i < 2; i++)
|
||||
for(int i = 0; i < 6; i++)
|
||||
SetCommonKey(keys, ctr_common_etd_key_dpki[i],i);
|
||||
|
||||
if(keys->aes.currentCommonKey > 0xff)
|
||||
@@ -117,12 +108,12 @@ int LoadKeysFromResources(keys_struct *keys)
|
||||
|
||||
/* RSA Keys */
|
||||
// CIA
|
||||
SetTIK_RsaKey(keys, xs9_dpki_rsa_priv, xs9_dpki_rsa_pub);
|
||||
SetTMD_RsaKey(keys, cpA_dpki_rsa_priv, cpA_dpki_rsa_pub);
|
||||
SetTIK_RsaKey(keys, xs9_dpki_rsa.priv_exponent, xs9_dpki_rsa.modulus);
|
||||
SetTMD_RsaKey(keys, cpA_dpki_rsa.priv_exponent, cpA_dpki_rsa.modulus);
|
||||
// CCI/CFA
|
||||
Set_CCI_CFA_RsaKey(keys, dev_ncsd_cfa_priv, dev_ncsd_cfa_pub);
|
||||
Set_CCI_CFA_RsaKey(keys, dev_ncsd_cfa_rsa.priv_exponent, dev_ncsd_cfa_rsa.modulus);
|
||||
// CXI
|
||||
SetAccessDesc_RsaKey(keys, dev_acex_priv, dev_acex_pub);
|
||||
SetAccessDesc_RsaKey(keys, dev_accessdesc_rsa.priv_exponent, dev_accessdesc_rsa.modulus);
|
||||
|
||||
/* Certs */
|
||||
SetCaCert(keys, ca4_dpki_cert);
|
||||
@@ -135,7 +126,7 @@ int LoadKeysFromResources(keys_struct *keys)
|
||||
// CIA
|
||||
//for(int i = 0; i < 6; i++){
|
||||
// keys->aes.commonKey[i] = malloc(16);
|
||||
// AesKeyScrambler(keys->aes.commonKey[i], ctr_common_etd_keyX_ppki, ctr_common_etd_keyY_ppki[i]);
|
||||
// ctr_aes_keygen(ctr_common_etd_keyX_ppki, ctr_common_etd_keyY_ppki[i], keys->aes.commonKey[i]);
|
||||
//}
|
||||
if(keys->aes.currentCommonKey > 0xff)
|
||||
SetCurrentCommonKey(keys,0);
|
||||
@@ -150,12 +141,12 @@ int LoadKeysFromResources(keys_struct *keys)
|
||||
|
||||
/* RSA Keys */
|
||||
// CIA
|
||||
SetTIK_RsaKey(keys, xsC_ppki_rsa_priv, xsC_ppki_rsa_pub);
|
||||
SetTMD_RsaKey(keys, cpB_ppki_rsa_priv, cpB_ppki_rsa_pub);
|
||||
SetTIK_RsaKey(keys, xsC_ppki_rsa.priv_exponent, xsC_ppki_rsa.modulus);
|
||||
SetTMD_RsaKey(keys, cpB_ppki_rsa.priv_exponent, cpB_ppki_rsa.modulus);
|
||||
// CCI/CFA
|
||||
Set_CCI_CFA_RsaKey(keys, prod_ncsd_cfa_priv, prod_ncsd_cfa_pub);
|
||||
Set_CCI_CFA_RsaKey(keys, prod_ncsd_cfa_rsa.priv_exponent, prod_ncsd_cfa_rsa.modulus);
|
||||
// CXI
|
||||
SetAccessDesc_RsaKey(keys, prod_acex_priv, prod_acex_pub);
|
||||
SetAccessDesc_RsaKey(keys, prod_accessdesc_rsa.priv_exponent, prod_accessdesc_rsa.modulus);
|
||||
|
||||
/* Certs */
|
||||
SetCaCert(keys, ca3_ppki_cert);
|
||||
@@ -168,15 +159,15 @@ int LoadKeysFromResources(keys_struct *keys)
|
||||
void SetDummyRsaData(keys_struct *keys)
|
||||
{
|
||||
if(!keys->rsa.xsPvt || !keys->rsa.xsPub)
|
||||
SetTIK_RsaKey(keys, tpki_rsa_privExp, tpki_rsa_pubMod);
|
||||
SetTIK_RsaKey(keys, tpki_rsa.priv_exponent, tpki_rsa.modulus);
|
||||
if(!keys->rsa.cpPvt || !keys->rsa.cpPub)
|
||||
SetTMD_RsaKey(keys, tpki_rsa_privExp, tpki_rsa_pubMod);
|
||||
SetTMD_RsaKey(keys, tpki_rsa.priv_exponent, tpki_rsa.modulus);
|
||||
|
||||
if(!keys->rsa.cciCfaPvt || !keys->rsa.cciCfaPub)
|
||||
Set_CCI_CFA_RsaKey(keys, tpki_rsa_privExp, tpki_rsa_pubMod);
|
||||
Set_CCI_CFA_RsaKey(keys, tpki_rsa.priv_exponent, tpki_rsa.modulus);
|
||||
|
||||
if(!keys->rsa.acexPvt || !keys->rsa.acexPub)
|
||||
SetAccessDesc_RsaKey(keys, tpki_rsa_privExp, tpki_rsa_pubMod);
|
||||
SetAccessDesc_RsaKey(keys, tpki_rsa.priv_exponent, tpki_rsa.modulus);
|
||||
|
||||
/* Certs */
|
||||
if(!keys->certs.caCert)
|
||||
|
||||
+1
-3
@@ -96,6 +96,4 @@ void FreeKeys(keys_struct *keys);
|
||||
int SetCommonKey(keys_struct *keys, const u8 *key, u8 Index);
|
||||
int SetCurrentCommonKey(keys_struct *keys, u8 Index);
|
||||
int SetNormalKey(keys_struct *keys, const u8 *key);
|
||||
int SetSystemFixedKey(keys_struct *keys, const u8 *key);
|
||||
|
||||
u8* AesKeyScrambler(u8 *key, const u8 *keyX, const u8 *keyY);
|
||||
int SetSystemFixedKey(keys_struct *keys, const u8 *key);
|
||||
@@ -106,6 +106,7 @@
|
||||
<ClInclude Include="desc\dev_sigdata.h" />
|
||||
<ClInclude Include="desc\presets.h" />
|
||||
<ClInclude Include="oschar.h" />
|
||||
<ClInclude Include="pki\rsa_key.h" />
|
||||
<ClInclude Include="romfs_fs.h" />
|
||||
<ClInclude Include="elf.h" />
|
||||
<ClInclude Include="exefs.h" />
|
||||
|
||||
@@ -342,6 +342,9 @@
|
||||
<ClInclude Include="aes_keygen.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="pki\rsa_key.h">
|
||||
<Filter>Resource Files\PKI</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="accessdesc.c">
|
||||
|
||||
+3
-2
@@ -1,4 +1,5 @@
|
||||
#include "lib.h"
|
||||
#include "aes_keygen.h"
|
||||
#include "ncch_build.h"
|
||||
#include "exheader_build.h"
|
||||
#include "exheader_read.h"
|
||||
@@ -1043,12 +1044,12 @@ bool SetNcchKeys(keys_struct *keys, ncch_hdr *hdr)
|
||||
}
|
||||
|
||||
if(keys->aes.ncchKeyX[0])
|
||||
AesKeyScrambler(keys->aes.ncchKey0,keys->aes.ncchKeyX[0],hdr->signature);
|
||||
ctr_aes_keygen(keys->aes.ncchKeyX[0],hdr->signature,keys->aes.ncchKey0);
|
||||
else
|
||||
return false;
|
||||
|
||||
if(keys->aes.ncchKeyX[hdr->flags[ncchflag_CONTENT_KEYX]])
|
||||
AesKeyScrambler(keys->aes.ncchKey1,keys->aes.ncchKeyX[hdr->flags[ncchflag_CONTENT_KEYX]],hdr->signature);
|
||||
ctr_aes_keygen(keys->aes.ncchKeyX[ncchflag_CONTENT_KEYX], hdr->signature, keys->aes.ncchKey0);
|
||||
else
|
||||
return false;
|
||||
|
||||
|
||||
+35
-830
File diff suppressed because one or more lines are too long
+7
-138
@@ -1,4 +1,5 @@
|
||||
#pragma once
|
||||
#include "rsa_key.h"
|
||||
|
||||
// AES Keys
|
||||
static const unsigned char rvl_twl_common_etd_key_dpki[1][16] =
|
||||
@@ -21,148 +22,16 @@ static const unsigned char xs_dpki_eccPubKey[60] =
|
||||
|
||||
// RSA Keys
|
||||
// CA2 PKI
|
||||
static const unsigned char cp7_dpki_rsa_priv[256] =
|
||||
static const CtrRsa2048Key cp7_dpki_rsa =
|
||||
{
|
||||
0x32, 0xB5, 0xC3, 0x23, 0x67, 0x7B, 0x04, 0xF2,
|
||||
0xBB, 0x00, 0x9F, 0xBC, 0x37, 0x4D, 0x9D, 0x2F,
|
||||
0x71, 0xDB, 0x8C, 0xC7, 0x06, 0xB4, 0xEF, 0x0E,
|
||||
0x43, 0x4E, 0xDC, 0xDD, 0x77, 0xC0, 0x16, 0xD8,
|
||||
0x16, 0x10, 0xE3, 0x5F, 0x0E, 0x68, 0x0D, 0x08,
|
||||
0xAF, 0x0E, 0x8E, 0xFB, 0x53, 0xDD, 0xAB, 0xE0,
|
||||
0x9C, 0x75, 0x9E, 0xFC, 0xB8, 0x6C, 0x8E, 0x62,
|
||||
0xBB, 0x6E, 0x6B, 0x99, 0x63, 0xD8, 0x76, 0xB1,
|
||||
0x98, 0x05, 0xCA, 0xC4, 0x92, 0xBE, 0x2F, 0x5A,
|
||||
0x76, 0xE8, 0xCA, 0xF4, 0xAC, 0xA2, 0xB0, 0x32,
|
||||
0x8A, 0xB7, 0xBB, 0xEB, 0xB3, 0xF1, 0xC2, 0xB1,
|
||||
0x80, 0x9D, 0x17, 0xBA, 0x4F, 0xF6, 0x5B, 0x23,
|
||||
0xF6, 0x5D, 0xAD, 0x43, 0xA6, 0xF1, 0xE4, 0x47,
|
||||
0x7C, 0x4F, 0x93, 0x2E, 0x04, 0x75, 0xEE, 0x2E,
|
||||
0x09, 0x6E, 0xCA, 0x17, 0x0E, 0x58, 0x4C, 0x99,
|
||||
0x7C, 0x45, 0x07, 0xD8, 0x70, 0x91, 0xDE, 0x89,
|
||||
0x13, 0xB9, 0xBA, 0x47, 0x33, 0x4F, 0x4F, 0x79,
|
||||
0x58, 0x16, 0x3F, 0x86, 0x11, 0x35, 0x91, 0x48,
|
||||
0x9B, 0xA7, 0xF7, 0x77, 0xB0, 0xF0, 0x48, 0xE4,
|
||||
0x11, 0x41, 0xF4, 0x25, 0x7D, 0xE5, 0xAC, 0x71,
|
||||
0x6F, 0xCD, 0x9B, 0x6E, 0xD2, 0x30, 0xFF, 0x1D,
|
||||
0x38, 0xE9, 0x2F, 0xE0, 0xD9, 0xA9, 0x89, 0x68,
|
||||
0xB6, 0xAC, 0x45, 0xC8, 0x3B, 0x9F, 0x49, 0x30,
|
||||
0x93, 0x3B, 0x69, 0x6B, 0xBE, 0x20, 0x68, 0x4B,
|
||||
0x87, 0x1F, 0x7C, 0xEA, 0xBC, 0xC2, 0x77, 0xED,
|
||||
0xCC, 0x36, 0xCD, 0xA0, 0xC6, 0xAD, 0x46, 0xF2,
|
||||
0xFD, 0x2D, 0xB9, 0x55, 0x2F, 0x81, 0xD5, 0xA7,
|
||||
0xDF, 0x4E, 0x5B, 0xE3, 0xEA, 0x92, 0xB4, 0xBF,
|
||||
0x22, 0xAA, 0x05, 0xA2, 0x86, 0x7B, 0x1A, 0x06,
|
||||
0xFB, 0x58, 0x00, 0x64, 0xC0, 0xE0, 0xF8, 0x9E,
|
||||
0x1B, 0x1C, 0x3C, 0x23, 0x20, 0xA4, 0x03, 0xEC,
|
||||
0x27, 0x7A, 0x9D, 0x8B, 0xD2, 0x71, 0xAB, 0xFD
|
||||
.modulus = { 0xC3, 0xD9, 0xA5, 0xF3, 0xC2, 0x5D, 0x16, 0xD2, 0x64, 0xAD, 0x2C, 0x0C, 0xB7, 0xE6, 0x5C, 0x50, 0x6D, 0x07, 0x63, 0x05, 0x32, 0x6E, 0xD9, 0xCD, 0xEB, 0x3A, 0x5F, 0x23, 0xB0, 0x3F, 0x38, 0x80, 0x3F, 0x60, 0x96, 0xDC, 0xCC, 0xDB, 0xE3, 0xD4, 0x6E, 0x9A, 0x00, 0x7B, 0x25, 0xBE, 0xF9, 0x59, 0xE7, 0x90, 0x4A, 0xDD, 0x10, 0xF6, 0x12, 0x00, 0x99, 0xC6, 0xFD, 0x3C, 0x80, 0xBE, 0x9B, 0xDF, 0x74, 0x5A, 0x04, 0x59, 0xB2, 0x2A, 0x7C, 0x0C, 0xB4, 0xE7, 0x73, 0xD7, 0x04, 0xF4, 0x2B, 0x77, 0x9A, 0x69, 0xAC, 0x9F, 0xDA, 0x4E, 0x65, 0xF1, 0x3C, 0x30, 0x38, 0x98, 0x4E, 0x94, 0x67, 0xE3, 0xA9, 0x11, 0x2D, 0x81, 0x5E, 0x53, 0xF5, 0x75, 0xD9, 0x27, 0x52, 0x87, 0xFB, 0x98, 0x10, 0x98, 0x2F, 0x62, 0x30, 0x93, 0x5E, 0xAF, 0xEB, 0xC0, 0x3A, 0x64, 0x53, 0x6B, 0x60, 0x2E, 0x17, 0x22, 0x25, 0x97, 0x5F, 0x64, 0x8B, 0x10, 0x67, 0xC0, 0x14, 0x9C, 0xBE, 0x8F, 0x1E, 0x15, 0xF5, 0x73, 0xA7, 0x50, 0x04, 0x7F, 0x34, 0xEB, 0x02, 0x03, 0x32, 0x41, 0x75, 0x20, 0x4A, 0x40, 0x7C, 0x79, 0xDD, 0xE4, 0x29, 0xD6, 0x60, 0x73, 0x2E, 0x02, 0xD4, 0x79, 0x87, 0xF1, 0x33, 0x5A, 0xAA, 0x95, 0xFB, 0x55, 0x0D, 0x29, 0x0D, 0xA2, 0xCF, 0xC6, 0x04, 0xB7, 0x8A, 0x63, 0xCA, 0x64, 0x52, 0x87, 0xAA, 0xEB, 0xE0, 0x7D, 0x6F, 0x6C, 0xDF, 0x0E, 0x6F, 0xF1, 0xC4, 0xC2, 0x60, 0x6C, 0xC4, 0x77, 0x29, 0x03, 0x1E, 0x6B, 0x9C, 0x3C, 0xA3, 0xED, 0x2D, 0xB4, 0xF0, 0x58, 0x81, 0x50, 0xB2, 0x6E, 0x66, 0xDB, 0x99, 0xAC, 0x44, 0x77, 0xA6, 0xFE, 0x80, 0x6E, 0x08, 0xFA, 0xEA, 0xC5, 0x27, 0x92, 0x71, 0xFF, 0xCF, 0x29, 0xB1, 0x13, 0xEB, 0x14, 0x50, 0xD1, 0x81, 0xD8, 0xBF, 0x48, 0x05, 0xBD },
|
||||
.priv_exponent = { 0x32, 0xB5, 0xC3, 0x23, 0x67, 0x7B, 0x04, 0xF2, 0xBB, 0x00, 0x9F, 0xBC, 0x37, 0x4D, 0x9D, 0x2F, 0x71, 0xDB, 0x8C, 0xC7, 0x06, 0xB4, 0xEF, 0x0E, 0x43, 0x4E, 0xDC, 0xDD, 0x77, 0xC0, 0x16, 0xD8, 0x16, 0x10, 0xE3, 0x5F, 0x0E, 0x68, 0x0D, 0x08, 0xAF, 0x0E, 0x8E, 0xFB, 0x53, 0xDD, 0xAB, 0xE0, 0x9C, 0x75, 0x9E, 0xFC, 0xB8, 0x6C, 0x8E, 0x62, 0xBB, 0x6E, 0x6B, 0x99, 0x63, 0xD8, 0x76, 0xB1, 0x98, 0x05, 0xCA, 0xC4, 0x92, 0xBE, 0x2F, 0x5A, 0x76, 0xE8, 0xCA, 0xF4, 0xAC, 0xA2, 0xB0, 0x32, 0x8A, 0xB7, 0xBB, 0xEB, 0xB3, 0xF1, 0xC2, 0xB1, 0x80, 0x9D, 0x17, 0xBA, 0x4F, 0xF6, 0x5B, 0x23, 0xF6, 0x5D, 0xAD, 0x43, 0xA6, 0xF1, 0xE4, 0x47, 0x7C, 0x4F, 0x93, 0x2E, 0x04, 0x75, 0xEE, 0x2E, 0x09, 0x6E, 0xCA, 0x17, 0x0E, 0x58, 0x4C, 0x99, 0x7C, 0x45, 0x07, 0xD8, 0x70, 0x91, 0xDE, 0x89, 0x13, 0xB9, 0xBA, 0x47, 0x33, 0x4F, 0x4F, 0x79, 0x58, 0x16, 0x3F, 0x86, 0x11, 0x35, 0x91, 0x48, 0x9B, 0xA7, 0xF7, 0x77, 0xB0, 0xF0, 0x48, 0xE4, 0x11, 0x41, 0xF4, 0x25, 0x7D, 0xE5, 0xAC, 0x71, 0x6F, 0xCD, 0x9B, 0x6E, 0xD2, 0x30, 0xFF, 0x1D, 0x38, 0xE9, 0x2F, 0xE0, 0xD9, 0xA9, 0x89, 0x68, 0xB6, 0xAC, 0x45, 0xC8, 0x3B, 0x9F, 0x49, 0x30, 0x93, 0x3B, 0x69, 0x6B, 0xBE, 0x20, 0x68, 0x4B, 0x87, 0x1F, 0x7C, 0xEA, 0xBC, 0xC2, 0x77, 0xED, 0xCC, 0x36, 0xCD, 0xA0, 0xC6, 0xAD, 0x46, 0xF2, 0xFD, 0x2D, 0xB9, 0x55, 0x2F, 0x81, 0xD5, 0xA7, 0xDF, 0x4E, 0x5B, 0xE3, 0xEA, 0x92, 0xB4, 0xBF, 0x22, 0xAA, 0x05, 0xA2, 0x86, 0x7B, 0x1A, 0x06, 0xFB, 0x58, 0x00, 0x64, 0xC0, 0xE0, 0xF8, 0x9E, 0x1B, 0x1C, 0x3C, 0x23, 0x20, 0xA4, 0x03, 0xEC, 0x27, 0x7A, 0x9D, 0x8B, 0xD2, 0x71, 0xAB, 0xFD }
|
||||
};
|
||||
|
||||
static const unsigned char cp7_dpki_rsa_pub[256] =
|
||||
static const CtrRsa2048Key xs6_dpki_rsa =
|
||||
{
|
||||
0xC3, 0xD9, 0xA5, 0xF3, 0xC2, 0x5D, 0x16, 0xD2,
|
||||
0x64, 0xAD, 0x2C, 0x0C, 0xB7, 0xE6, 0x5C, 0x50,
|
||||
0x6D, 0x07, 0x63, 0x05, 0x32, 0x6E, 0xD9, 0xCD,
|
||||
0xEB, 0x3A, 0x5F, 0x23, 0xB0, 0x3F, 0x38, 0x80,
|
||||
0x3F, 0x60, 0x96, 0xDC, 0xCC, 0xDB, 0xE3, 0xD4,
|
||||
0x6E, 0x9A, 0x00, 0x7B, 0x25, 0xBE, 0xF9, 0x59,
|
||||
0xE7, 0x90, 0x4A, 0xDD, 0x10, 0xF6, 0x12, 0x00,
|
||||
0x99, 0xC6, 0xFD, 0x3C, 0x80, 0xBE, 0x9B, 0xDF,
|
||||
0x74, 0x5A, 0x04, 0x59, 0xB2, 0x2A, 0x7C, 0x0C,
|
||||
0xB4, 0xE7, 0x73, 0xD7, 0x04, 0xF4, 0x2B, 0x77,
|
||||
0x9A, 0x69, 0xAC, 0x9F, 0xDA, 0x4E, 0x65, 0xF1,
|
||||
0x3C, 0x30, 0x38, 0x98, 0x4E, 0x94, 0x67, 0xE3,
|
||||
0xA9, 0x11, 0x2D, 0x81, 0x5E, 0x53, 0xF5, 0x75,
|
||||
0xD9, 0x27, 0x52, 0x87, 0xFB, 0x98, 0x10, 0x98,
|
||||
0x2F, 0x62, 0x30, 0x93, 0x5E, 0xAF, 0xEB, 0xC0,
|
||||
0x3A, 0x64, 0x53, 0x6B, 0x60, 0x2E, 0x17, 0x22,
|
||||
0x25, 0x97, 0x5F, 0x64, 0x8B, 0x10, 0x67, 0xC0,
|
||||
0x14, 0x9C, 0xBE, 0x8F, 0x1E, 0x15, 0xF5, 0x73,
|
||||
0xA7, 0x50, 0x04, 0x7F, 0x34, 0xEB, 0x02, 0x03,
|
||||
0x32, 0x41, 0x75, 0x20, 0x4A, 0x40, 0x7C, 0x79,
|
||||
0xDD, 0xE4, 0x29, 0xD6, 0x60, 0x73, 0x2E, 0x02,
|
||||
0xD4, 0x79, 0x87, 0xF1, 0x33, 0x5A, 0xAA, 0x95,
|
||||
0xFB, 0x55, 0x0D, 0x29, 0x0D, 0xA2, 0xCF, 0xC6,
|
||||
0x04, 0xB7, 0x8A, 0x63, 0xCA, 0x64, 0x52, 0x87,
|
||||
0xAA, 0xEB, 0xE0, 0x7D, 0x6F, 0x6C, 0xDF, 0x0E,
|
||||
0x6F, 0xF1, 0xC4, 0xC2, 0x60, 0x6C, 0xC4, 0x77,
|
||||
0x29, 0x03, 0x1E, 0x6B, 0x9C, 0x3C, 0xA3, 0xED,
|
||||
0x2D, 0xB4, 0xF0, 0x58, 0x81, 0x50, 0xB2, 0x6E,
|
||||
0x66, 0xDB, 0x99, 0xAC, 0x44, 0x77, 0xA6, 0xFE,
|
||||
0x80, 0x6E, 0x08, 0xFA, 0xEA, 0xC5, 0x27, 0x92,
|
||||
0x71, 0xFF, 0xCF, 0x29, 0xB1, 0x13, 0xEB, 0x14,
|
||||
0x50, 0xD1, 0x81, 0xD8, 0xBF, 0x48, 0x05, 0xBD
|
||||
};
|
||||
|
||||
static const unsigned char xs6_dpki_rsa_priv[256] =
|
||||
{
|
||||
0x53, 0x00, 0x39, 0x3F, 0x1F, 0xA6, 0x21, 0xFA,
|
||||
0x9E, 0xB9, 0x0C, 0x94, 0xF8, 0xF3, 0x48, 0x5E,
|
||||
0x73, 0xAC, 0xEC, 0xFD, 0x34, 0x74, 0x46, 0x30,
|
||||
0x01, 0xD5, 0xEF, 0x1D, 0x39, 0x88, 0xB2, 0x26,
|
||||
0x51, 0xC7, 0xD1, 0x12, 0xC2, 0xAA, 0xAE, 0x3B,
|
||||
0x10, 0x12, 0x48, 0x18, 0x54, 0x60, 0xEA, 0xC6,
|
||||
0x63, 0x8F, 0xAE, 0x8E, 0x5E, 0x62, 0xAE, 0x7F,
|
||||
0x6C, 0x8A, 0x61, 0xB2, 0x7F, 0x25, 0x0D, 0xB5,
|
||||
0x62, 0x15, 0xAF, 0x56, 0x71, 0xBF, 0xC6, 0x8C,
|
||||
0x53, 0x1D, 0x70, 0xD3, 0x36, 0xE6, 0x37, 0x12,
|
||||
0x26, 0x0C, 0x61, 0xB6, 0x11, 0x25, 0x2C, 0x7C,
|
||||
0x49, 0x2A, 0x2E, 0xAE, 0xBF, 0x01, 0xBA, 0x7F,
|
||||
0x82, 0x43, 0xDE, 0xD6, 0x62, 0x7C, 0x61, 0x47,
|
||||
0xB8, 0xAD, 0xA7, 0x64, 0xD5, 0xE5, 0xAF, 0x1D,
|
||||
0xE6, 0xA9, 0x0D, 0x83, 0x2D, 0x74, 0x00, 0xD5,
|
||||
0x86, 0x45, 0xEA, 0xCA, 0x31, 0xF1, 0x0B, 0xFB,
|
||||
0xCF, 0x92, 0xFF, 0xB9, 0x95, 0x18, 0xB4, 0xBA,
|
||||
0xAC, 0x49, 0x5B, 0x04, 0x45, 0x39, 0x6A, 0x3E,
|
||||
0xB9, 0x52, 0xA9, 0x47, 0x18, 0xA4, 0x60, 0x18,
|
||||
0x3D, 0xFD, 0xE2, 0x43, 0x5E, 0x64, 0x2C, 0x48,
|
||||
0xC4, 0x65, 0xC5, 0x75, 0x81, 0xB4, 0xC9, 0x12,
|
||||
0x64, 0x7E, 0x7E, 0x9E, 0x6E, 0x3D, 0xA2, 0x82,
|
||||
0x47, 0xBD, 0xAB, 0x40, 0x76, 0x5F, 0x39, 0x50,
|
||||
0x3C, 0x93, 0x3A, 0x0D, 0xD7, 0x00, 0x9B, 0xCA,
|
||||
0x50, 0x63, 0xDD, 0x1C, 0x86, 0x69, 0xE1, 0x9D,
|
||||
0xD1, 0xFF, 0x99, 0x03, 0x70, 0x82, 0xCF, 0xE2,
|
||||
0xBB, 0x70, 0x9E, 0x51, 0xFC, 0x9C, 0x53, 0x3F,
|
||||
0x3F, 0x45, 0xA7, 0x2F, 0x9D, 0xEC, 0x05, 0x0B,
|
||||
0xE7, 0x5D, 0x89, 0xD4, 0xC4, 0x2F, 0x50, 0xB6,
|
||||
0x91, 0xF5, 0x81, 0xA5, 0x83, 0xC7, 0x07, 0x9C,
|
||||
0x82, 0x64, 0x9C, 0xD7, 0x66, 0x4A, 0x1B, 0x4F,
|
||||
0x34, 0x7E, 0x3C, 0xFC, 0x6B, 0x73, 0x01, 0x51
|
||||
};
|
||||
|
||||
static const unsigned char xs6_dpki_rsa_pub[256] =
|
||||
{
|
||||
0xCB, 0xDA, 0x82, 0x8B, 0xB1, 0x9C, 0x9F, 0xCD,
|
||||
0x0B, 0x6E, 0xBE, 0x65, 0xE6, 0x85, 0x7B, 0x29,
|
||||
0x85, 0xB1, 0x56, 0x67, 0x16, 0xD8, 0xEB, 0xD1,
|
||||
0x42, 0x68, 0x50, 0x01, 0x01, 0x04, 0x24, 0x37,
|
||||
0x73, 0x87, 0x87, 0x9A, 0x92, 0x7D, 0xCD, 0x52,
|
||||
0xC2, 0x3A, 0xA3, 0x80, 0xB6, 0xE8, 0x50, 0x81,
|
||||
0x13, 0xE5, 0xEC, 0xDE, 0xDA, 0x5D, 0x38, 0xB3,
|
||||
0x3D, 0x9B, 0xFA, 0x4A, 0x61, 0x02, 0x00, 0xF1,
|
||||
0xC2, 0xC8, 0x68, 0x7F, 0x1B, 0xCE, 0x09, 0xDD,
|
||||
0x04, 0x95, 0x64, 0xBD, 0xA5, 0x9A, 0x22, 0x14,
|
||||
0x9E, 0x3E, 0xA0, 0x33, 0x73, 0x31, 0xD3, 0x93,
|
||||
0x60, 0x44, 0xB0, 0x9C, 0x65, 0x01, 0xF8, 0xB8,
|
||||
0x79, 0xE9, 0x5E, 0x8A, 0x16, 0x0D, 0xC6, 0x3F,
|
||||
0x1B, 0x7D, 0x5F, 0x3B, 0x7E, 0x64, 0xAA, 0xE1,
|
||||
0x51, 0x27, 0x38, 0x91, 0x29, 0xB4, 0xB1, 0x13,
|
||||
0xC1, 0x2C, 0xB7, 0x96, 0x5C, 0x48, 0xE4, 0x89,
|
||||
0xE8, 0x58, 0xA5, 0x34, 0x86, 0xFE, 0x21, 0x11,
|
||||
0x76, 0x6E, 0x01, 0x24, 0xCB, 0x5F, 0x83, 0x36,
|
||||
0x99, 0x87, 0x32, 0xCB, 0xAC, 0xF5, 0x6E, 0x46,
|
||||
0x4A, 0x6C, 0xD2, 0xCD, 0x65, 0x27, 0x2C, 0xD1,
|
||||
0x46, 0x30, 0x3F, 0x31, 0xAA, 0x39, 0x9A, 0x44,
|
||||
0xBE, 0x5E, 0x91, 0x93, 0x51, 0x82, 0xF8, 0x65,
|
||||
0xF3, 0x66, 0x5D, 0x06, 0x10, 0x7C, 0x9E, 0xE3,
|
||||
0x8D, 0x91, 0x03, 0xEE, 0x58, 0x54, 0x8B, 0x30,
|
||||
0x1A, 0x9E, 0x01, 0xDB, 0x37, 0x6B, 0x89, 0x3D,
|
||||
0xC4, 0xE6, 0xC7, 0x4E, 0xBE, 0xA2, 0x5A, 0xCF,
|
||||
0x0D, 0x28, 0xE7, 0xC7, 0xB3, 0x12, 0x99, 0x8D,
|
||||
0xE7, 0x71, 0x93, 0x9D, 0xD1, 0xE3, 0xD6, 0x6B,
|
||||
0xD4, 0x37, 0xC0, 0xD5, 0x7D, 0x8B, 0xEF, 0x33,
|
||||
0xE5, 0x27, 0xBA, 0x04, 0xCF, 0xD0, 0x62, 0x61,
|
||||
0x9C, 0xD0, 0x7E, 0x38, 0xC1, 0xC7, 0xE6, 0x70,
|
||||
0x49, 0x20, 0x71, 0x5C, 0xC6, 0x35, 0x76, 0x15
|
||||
.modulus = { 0xCB, 0xDA, 0x82, 0x8B, 0xB1, 0x9C, 0x9F, 0xCD, 0x0B, 0x6E, 0xBE, 0x65, 0xE6, 0x85, 0x7B, 0x29, 0x85, 0xB1, 0x56, 0x67, 0x16, 0xD8, 0xEB, 0xD1, 0x42, 0x68, 0x50, 0x01, 0x01, 0x04, 0x24, 0x37, 0x73, 0x87, 0x87, 0x9A, 0x92, 0x7D, 0xCD, 0x52, 0xC2, 0x3A, 0xA3, 0x80, 0xB6, 0xE8, 0x50, 0x81, 0x13, 0xE5, 0xEC, 0xDE, 0xDA, 0x5D, 0x38, 0xB3, 0x3D, 0x9B, 0xFA, 0x4A, 0x61, 0x02, 0x00, 0xF1, 0xC2, 0xC8, 0x68, 0x7F, 0x1B, 0xCE, 0x09, 0xDD, 0x04, 0x95, 0x64, 0xBD, 0xA5, 0x9A, 0x22, 0x14, 0x9E, 0x3E, 0xA0, 0x33, 0x73, 0x31, 0xD3, 0x93, 0x60, 0x44, 0xB0, 0x9C, 0x65, 0x01, 0xF8, 0xB8, 0x79, 0xE9, 0x5E, 0x8A, 0x16, 0x0D, 0xC6, 0x3F, 0x1B, 0x7D, 0x5F, 0x3B, 0x7E, 0x64, 0xAA, 0xE1, 0x51, 0x27, 0x38, 0x91, 0x29, 0xB4, 0xB1, 0x13, 0xC1, 0x2C, 0xB7, 0x96, 0x5C, 0x48, 0xE4, 0x89, 0xE8, 0x58, 0xA5, 0x34, 0x86, 0xFE, 0x21, 0x11, 0x76, 0x6E, 0x01, 0x24, 0xCB, 0x5F, 0x83, 0x36, 0x99, 0x87, 0x32, 0xCB, 0xAC, 0xF5, 0x6E, 0x46, 0x4A, 0x6C, 0xD2, 0xCD, 0x65, 0x27, 0x2C, 0xD1, 0x46, 0x30, 0x3F, 0x31, 0xAA, 0x39, 0x9A, 0x44, 0xBE, 0x5E, 0x91, 0x93, 0x51, 0x82, 0xF8, 0x65, 0xF3, 0x66, 0x5D, 0x06, 0x10, 0x7C, 0x9E, 0xE3, 0x8D, 0x91, 0x03, 0xEE, 0x58, 0x54, 0x8B, 0x30, 0x1A, 0x9E, 0x01, 0xDB, 0x37, 0x6B, 0x89, 0x3D, 0xC4, 0xE6, 0xC7, 0x4E, 0xBE, 0xA2, 0x5A, 0xCF, 0x0D, 0x28, 0xE7, 0xC7, 0xB3, 0x12, 0x99, 0x8D, 0xE7, 0x71, 0x93, 0x9D, 0xD1, 0xE3, 0xD6, 0x6B, 0xD4, 0x37, 0xC0, 0xD5, 0x7D, 0x8B, 0xEF, 0x33, 0xE5, 0x27, 0xBA, 0x04, 0xCF, 0xD0, 0x62, 0x61, 0x9C, 0xD0, 0x7E, 0x38, 0xC1, 0xC7, 0xE6, 0x70, 0x49, 0x20, 0x71, 0x5C, 0xC6, 0x35, 0x76, 0x15 },
|
||||
.priv_exponent = {0x53, 0x00, 0x39, 0x3F, 0x1F, 0xA6, 0x21, 0xFA, 0x9E, 0xB9, 0x0C, 0x94, 0xF8, 0xF3, 0x48, 0x5E, 0x73, 0xAC, 0xEC, 0xFD, 0x34, 0x74, 0x46, 0x30, 0x01, 0xD5, 0xEF, 0x1D, 0x39, 0x88, 0xB2, 0x26, 0x51, 0xC7, 0xD1, 0x12, 0xC2, 0xAA, 0xAE, 0x3B, 0x10, 0x12, 0x48, 0x18, 0x54, 0x60, 0xEA, 0xC6, 0x63, 0x8F, 0xAE, 0x8E, 0x5E, 0x62, 0xAE, 0x7F, 0x6C, 0x8A, 0x61, 0xB2, 0x7F, 0x25, 0x0D, 0xB5, 0x62, 0x15, 0xAF, 0x56, 0x71, 0xBF, 0xC6, 0x8C, 0x53, 0x1D, 0x70, 0xD3, 0x36, 0xE6, 0x37, 0x12, 0x26, 0x0C, 0x61, 0xB6, 0x11, 0x25, 0x2C, 0x7C, 0x49, 0x2A, 0x2E, 0xAE, 0xBF, 0x01, 0xBA, 0x7F, 0x82, 0x43, 0xDE, 0xD6, 0x62, 0x7C, 0x61, 0x47, 0xB8, 0xAD, 0xA7, 0x64, 0xD5, 0xE5, 0xAF, 0x1D, 0xE6, 0xA9, 0x0D, 0x83, 0x2D, 0x74, 0x00, 0xD5, 0x86, 0x45, 0xEA, 0xCA, 0x31, 0xF1, 0x0B, 0xFB, 0xCF, 0x92, 0xFF, 0xB9, 0x95, 0x18, 0xB4, 0xBA, 0xAC, 0x49, 0x5B, 0x04, 0x45, 0x39, 0x6A, 0x3E, 0xB9, 0x52, 0xA9, 0x47, 0x18, 0xA4, 0x60, 0x18, 0x3D, 0xFD, 0xE2, 0x43, 0x5E, 0x64, 0x2C, 0x48, 0xC4, 0x65, 0xC5, 0x75, 0x81, 0xB4, 0xC9, 0x12, 0x64, 0x7E, 0x7E, 0x9E, 0x6E, 0x3D, 0xA2, 0x82, 0x47, 0xBD, 0xAB, 0x40, 0x76, 0x5F, 0x39, 0x50, 0x3C, 0x93, 0x3A, 0x0D, 0xD7, 0x00, 0x9B, 0xCA, 0x50, 0x63, 0xDD, 0x1C, 0x86, 0x69, 0xE1, 0x9D, 0xD1, 0xFF, 0x99, 0x03, 0x70, 0x82, 0xCF, 0xE2, 0xBB, 0x70, 0x9E, 0x51, 0xFC, 0x9C, 0x53, 0x3F, 0x3F, 0x45, 0xA7, 0x2F, 0x9D, 0xEC, 0x05, 0x0B, 0xE7, 0x5D, 0x89, 0xD4, 0xC4, 0x2F, 0x50, 0xB6, 0x91, 0xF5, 0x81, 0xA5, 0x83, 0xC7, 0x07, 0x9C, 0x82, 0x64, 0x9C, 0xD7, 0x66, 0x4A, 0x1B, 0x4F, 0x34, 0x7E, 0x3C, 0xFC, 0x6B, 0x73, 0x01, 0x51}
|
||||
};
|
||||
|
||||
// Certificates
|
||||
|
||||
+21
-694
File diff suppressed because one or more lines are too long
@@ -0,0 +1,14 @@
|
||||
#pragma once
|
||||
#include <stdint.h>
|
||||
|
||||
typedef struct CtrRsa2048Key {
|
||||
uint8_t modulus[0x100];
|
||||
uint8_t priv_exponent[0x100];
|
||||
//uint8_t pub_exponent[0x3];
|
||||
} CtrRsa2048Key;
|
||||
|
||||
typedef struct CtrRsa4096Key {
|
||||
uint8_t modulus[0x200];
|
||||
uint8_t priv_exponent[0x200];
|
||||
//uint8_t pub_exponent[0x3];
|
||||
} CtrRsa4096Key;
|
||||
+4
-7
@@ -1,4 +1,5 @@
|
||||
#pragma once
|
||||
#include "rsa_key.h"
|
||||
|
||||
// AES KEYS
|
||||
static const unsigned char zeros_aesKey[16] =
|
||||
@@ -8,14 +9,10 @@ static const unsigned char zeros_aesKey[16] =
|
||||
};
|
||||
|
||||
// RSA KEYS
|
||||
static const unsigned char tpki_rsa_privExp[256] =
|
||||
static const CtrRsa2048Key tpki_rsa =
|
||||
{
|
||||
0x3E, 0x2B, 0xBE, 0xBA, 0x7F, 0x29, 0x02, 0x52, 0xBF, 0x1B, 0xF1, 0xE4, 0x21, 0x2F, 0xD9, 0x76, 0x1E, 0x39, 0x23, 0x4A, 0x6D, 0xFF, 0x99, 0xF6, 0x33, 0xAA, 0x2B, 0x62, 0x03, 0x0A, 0x0E, 0x15, 0xAC, 0x16, 0xB9, 0x85, 0x63, 0x77, 0xF5, 0x74, 0x24, 0x61, 0xB1, 0x01, 0x6E, 0xEB, 0x72, 0x24, 0x1E, 0x5D, 0xFA, 0x8F, 0xA8, 0x5A, 0x10, 0x14, 0x47, 0xBD, 0x05, 0xA0, 0x7E, 0xE5, 0xFF, 0x60, 0x87, 0x2A, 0x18, 0x31, 0xC1, 0x39, 0x6C, 0xD5, 0x45, 0xBB, 0x29, 0x05, 0x04, 0xFB, 0x7A, 0xA2, 0x68, 0x21, 0x5F, 0xED, 0x4E, 0xFE, 0x64, 0x60, 0x69, 0xBD, 0x96, 0xD0, 0xA7, 0x06, 0x3D, 0x53, 0x7B, 0x68, 0x92, 0x88, 0x50, 0x86, 0xEE, 0x06, 0x5D, 0x72, 0x73, 0x9A, 0x39, 0xB6, 0x72, 0x3B, 0x20, 0x01, 0x39, 0xDF, 0x37, 0x28, 0x1E, 0xF5, 0x39, 0x63, 0xBC, 0x2A, 0xF2, 0x5E, 0xAB, 0x1A, 0x99, 0xE4, 0x5B, 0xEB, 0xE6, 0x36, 0x30, 0x6C, 0x40, 0x01, 0x61, 0x60, 0xCC, 0x55, 0x89, 0x6D, 0xCA, 0x7E, 0xE0, 0x64, 0x78, 0x7F, 0x7B, 0x26, 0xAE, 0x3E, 0xA3, 0x12, 0x45, 0x16, 0xF6, 0xC8, 0xD0, 0xB9, 0x4F, 0x91, 0x11, 0x12, 0x11, 0xBB, 0xBB, 0x7F, 0xAB, 0xC7, 0x82, 0xDC, 0x4A, 0x61, 0x9C, 0x14, 0xAE, 0x29, 0xFD, 0x3A, 0x60, 0x13, 0x93, 0x19, 0x2F, 0x54, 0x49, 0xB2, 0x44, 0x34, 0x58, 0x14, 0xD7, 0x2F, 0x70, 0x25, 0xA0, 0x48, 0x66, 0x76, 0x55, 0x87, 0x9B, 0x25, 0x77, 0x6D, 0x0B, 0x75, 0x98, 0x8B, 0xA6, 0x39, 0x40, 0x3C, 0x21, 0x7F, 0x2A, 0x24, 0xC1, 0xA5, 0xC1, 0xDC, 0x5A, 0x57, 0x54, 0xF6, 0x03, 0xF6, 0xAD, 0x51, 0x33, 0x40, 0x6D, 0x5C, 0x26, 0x5E, 0x29, 0x92, 0x82, 0xE5, 0x29, 0x13, 0x7D, 0x7D, 0xFE, 0x08, 0x73, 0xBC, 0x5D, 0xC4, 0xE9, 0x2B, 0xD6, 0x71
|
||||
};
|
||||
|
||||
static const unsigned char tpki_rsa_pubMod[256] =
|
||||
{
|
||||
0xCA, 0xC5, 0x88, 0xC7, 0xF1, 0x2A, 0x09, 0x2B, 0x76, 0x49, 0xC0, 0xA8, 0x35, 0x75, 0x10, 0x82, 0xC2, 0xB5, 0xE5, 0xB2, 0xE9, 0xC8, 0x18, 0x88, 0xF3, 0x98, 0x89, 0xBF, 0x9D, 0xE6, 0xE4, 0x0B, 0x71, 0x5D, 0xDD, 0x3F, 0x13, 0x82, 0x71, 0xF2, 0xED, 0x31, 0x86, 0x99, 0xD9, 0x47, 0xFE, 0xC5, 0x7A, 0x75, 0x93, 0xE1, 0xF8, 0x6D, 0xC6, 0x3D, 0x9B, 0xE1, 0x15, 0x99, 0xE1, 0xC2, 0xE0, 0x5C, 0x38, 0x4B, 0x35, 0xA2, 0x4D, 0x3E, 0xE2, 0xCE, 0xFB, 0xB3, 0x08, 0xA3, 0xDD, 0x0C, 0x26, 0x31, 0x84, 0x92, 0x27, 0xC8, 0x8A, 0x8E, 0xC8, 0x83, 0xA8, 0x6C, 0xA7, 0xA3, 0x39, 0x71, 0x9E, 0xF1, 0x34, 0x91, 0x01, 0xDF, 0x11, 0x4A, 0x9C, 0xF9, 0x8B, 0xF9, 0x2F, 0x46, 0x44, 0x0A, 0x72, 0x38, 0xF3, 0x8B, 0x6D, 0x23, 0x33, 0x89, 0xBF, 0x66, 0x34, 0xA7, 0x86, 0xE6, 0xAD, 0xF2, 0xDE, 0xF9, 0xAB, 0x16, 0xA1, 0x40, 0xEE, 0xD8, 0xF7, 0x6C, 0xDC, 0x00, 0x92, 0xCB, 0x31, 0x49, 0xFC, 0x26, 0x64, 0x24, 0x08, 0x8F, 0xC6, 0x60, 0xFF, 0x1E, 0xE3, 0xF0, 0xDD, 0xFB, 0x6D, 0x0D, 0x0F, 0x49, 0x7C, 0xAD, 0x03, 0xEC, 0x9F, 0x63, 0x58, 0xFA, 0x46, 0xDF, 0xA2, 0x64, 0x0E, 0xCC, 0x85, 0x57, 0xE7, 0x2C, 0x61, 0x7F, 0x59, 0xB8, 0x62, 0x7D, 0x59, 0x0E, 0xF6, 0x84, 0x96, 0x99, 0x42, 0xB0, 0x39, 0x83, 0x80, 0xB5, 0x52, 0x2E, 0x07, 0x3F, 0x92, 0xE3, 0x9E, 0xF5, 0x47, 0xEB, 0xA7, 0xD7, 0xD4, 0x15, 0xF1, 0x22, 0x82, 0x32, 0xBE, 0x2A, 0xD0, 0x8C, 0x01, 0xCC, 0x30, 0xA9, 0x11, 0x96, 0xF6, 0xE9, 0x2B, 0xEA, 0x0E, 0xF8, 0x2D, 0x0D, 0xB1, 0x91, 0xD5, 0x1A, 0x94, 0x51, 0xB9, 0x85, 0x39, 0xB0, 0xAF, 0x9F, 0x54, 0x9E, 0x99, 0xE1, 0x46, 0xE5, 0x6F, 0xE2, 0x5F, 0x4B, 0x4E, 0x23
|
||||
.modulus = { 0xCA, 0xC5, 0x88, 0xC7, 0xF1, 0x2A, 0x09, 0x2B, 0x76, 0x49, 0xC0, 0xA8, 0x35, 0x75, 0x10, 0x82, 0xC2, 0xB5, 0xE5, 0xB2, 0xE9, 0xC8, 0x18, 0x88, 0xF3, 0x98, 0x89, 0xBF, 0x9D, 0xE6, 0xE4, 0x0B, 0x71, 0x5D, 0xDD, 0x3F, 0x13, 0x82, 0x71, 0xF2, 0xED, 0x31, 0x86, 0x99, 0xD9, 0x47, 0xFE, 0xC5, 0x7A, 0x75, 0x93, 0xE1, 0xF8, 0x6D, 0xC6, 0x3D, 0x9B, 0xE1, 0x15, 0x99, 0xE1, 0xC2, 0xE0, 0x5C, 0x38, 0x4B, 0x35, 0xA2, 0x4D, 0x3E, 0xE2, 0xCE, 0xFB, 0xB3, 0x08, 0xA3, 0xDD, 0x0C, 0x26, 0x31, 0x84, 0x92, 0x27, 0xC8, 0x8A, 0x8E, 0xC8, 0x83, 0xA8, 0x6C, 0xA7, 0xA3, 0x39, 0x71, 0x9E, 0xF1, 0x34, 0x91, 0x01, 0xDF, 0x11, 0x4A, 0x9C, 0xF9, 0x8B, 0xF9, 0x2F, 0x46, 0x44, 0x0A, 0x72, 0x38, 0xF3, 0x8B, 0x6D, 0x23, 0x33, 0x89, 0xBF, 0x66, 0x34, 0xA7, 0x86, 0xE6, 0xAD, 0xF2, 0xDE, 0xF9, 0xAB, 0x16, 0xA1, 0x40, 0xEE, 0xD8, 0xF7, 0x6C, 0xDC, 0x00, 0x92, 0xCB, 0x31, 0x49, 0xFC, 0x26, 0x64, 0x24, 0x08, 0x8F, 0xC6, 0x60, 0xFF, 0x1E, 0xE3, 0xF0, 0xDD, 0xFB, 0x6D, 0x0D, 0x0F, 0x49, 0x7C, 0xAD, 0x03, 0xEC, 0x9F, 0x63, 0x58, 0xFA, 0x46, 0xDF, 0xA2, 0x64, 0x0E, 0xCC, 0x85, 0x57, 0xE7, 0x2C, 0x61, 0x7F, 0x59, 0xB8, 0x62, 0x7D, 0x59, 0x0E, 0xF6, 0x84, 0x96, 0x99, 0x42, 0xB0, 0x39, 0x83, 0x80, 0xB5, 0x52, 0x2E, 0x07, 0x3F, 0x92, 0xE3, 0x9E, 0xF5, 0x47, 0xEB, 0xA7, 0xD7, 0xD4, 0x15, 0xF1, 0x22, 0x82, 0x32, 0xBE, 0x2A, 0xD0, 0x8C, 0x01, 0xCC, 0x30, 0xA9, 0x11, 0x96, 0xF6, 0xE9, 0x2B, 0xEA, 0x0E, 0xF8, 0x2D, 0x0D, 0xB1, 0x91, 0xD5, 0x1A, 0x94, 0x51, 0xB9, 0x85, 0x39, 0xB0, 0xAF, 0x9F, 0x54, 0x9E, 0x99, 0xE1, 0x46, 0xE5, 0x6F, 0xE2, 0x5F, 0x4B, 0x4E, 0x23 },
|
||||
.priv_exponent = { 0x3E, 0x2B, 0xBE, 0xBA, 0x7F, 0x29, 0x02, 0x52, 0xBF, 0x1B, 0xF1, 0xE4, 0x21, 0x2F, 0xD9, 0x76, 0x1E, 0x39, 0x23, 0x4A, 0x6D, 0xFF, 0x99, 0xF6, 0x33, 0xAA, 0x2B, 0x62, 0x03, 0x0A, 0x0E, 0x15, 0xAC, 0x16, 0xB9, 0x85, 0x63, 0x77, 0xF5, 0x74, 0x24, 0x61, 0xB1, 0x01, 0x6E, 0xEB, 0x72, 0x24, 0x1E, 0x5D, 0xFA, 0x8F, 0xA8, 0x5A, 0x10, 0x14, 0x47, 0xBD, 0x05, 0xA0, 0x7E, 0xE5, 0xFF, 0x60, 0x87, 0x2A, 0x18, 0x31, 0xC1, 0x39, 0x6C, 0xD5, 0x45, 0xBB, 0x29, 0x05, 0x04, 0xFB, 0x7A, 0xA2, 0x68, 0x21, 0x5F, 0xED, 0x4E, 0xFE, 0x64, 0x60, 0x69, 0xBD, 0x96, 0xD0, 0xA7, 0x06, 0x3D, 0x53, 0x7B, 0x68, 0x92, 0x88, 0x50, 0x86, 0xEE, 0x06, 0x5D, 0x72, 0x73, 0x9A, 0x39, 0xB6, 0x72, 0x3B, 0x20, 0x01, 0x39, 0xDF, 0x37, 0x28, 0x1E, 0xF5, 0x39, 0x63, 0xBC, 0x2A, 0xF2, 0x5E, 0xAB, 0x1A, 0x99, 0xE4, 0x5B, 0xEB, 0xE6, 0x36, 0x30, 0x6C, 0x40, 0x01, 0x61, 0x60, 0xCC, 0x55, 0x89, 0x6D, 0xCA, 0x7E, 0xE0, 0x64, 0x78, 0x7F, 0x7B, 0x26, 0xAE, 0x3E, 0xA3, 0x12, 0x45, 0x16, 0xF6, 0xC8, 0xD0, 0xB9, 0x4F, 0x91, 0x11, 0x12, 0x11, 0xBB, 0xBB, 0x7F, 0xAB, 0xC7, 0x82, 0xDC, 0x4A, 0x61, 0x9C, 0x14, 0xAE, 0x29, 0xFD, 0x3A, 0x60, 0x13, 0x93, 0x19, 0x2F, 0x54, 0x49, 0xB2, 0x44, 0x34, 0x58, 0x14, 0xD7, 0x2F, 0x70, 0x25, 0xA0, 0x48, 0x66, 0x76, 0x55, 0x87, 0x9B, 0x25, 0x77, 0x6D, 0x0B, 0x75, 0x98, 0x8B, 0xA6, 0x39, 0x40, 0x3C, 0x21, 0x7F, 0x2A, 0x24, 0xC1, 0xA5, 0xC1, 0xDC, 0x5A, 0x57, 0x54, 0xF6, 0x03, 0xF6, 0xAD, 0x51, 0x33, 0x40, 0x6D, 0x5C, 0x26, 0x5E, 0x29, 0x92, 0x82, 0xE5, 0x29, 0x13, 0x7D, 0x7D, 0xFE, 0x08, 0x73, 0xBC, 0x5D, 0xC4, 0xE9, 0x2B, 0xD6, 0x71 }
|
||||
};
|
||||
|
||||
//Certificates
|
||||
|
||||
@@ -96,7 +96,7 @@ void SetDefaults(user_settings *set)
|
||||
// RSF Settings
|
||||
clrmem(&set->common.rsfSet, sizeof(rsf_settings));
|
||||
set->common.rsfSet.Option.EnableCompress = true;
|
||||
set->common.rsfSet.Option.EnableCrypt = true;
|
||||
set->common.rsfSet.Option.EnableCrypt = false;
|
||||
set->common.rsfSet.Option.UseOnSD = false;
|
||||
set->common.rsfSet.Option.FreeProductCode = false;
|
||||
|
||||
@@ -175,18 +175,15 @@ int SetArgument(int argc, int i, char *argv[], user_settings *set)
|
||||
}
|
||||
if (strcasecmp(argv[i + 1], "test") == 0 || strcasecmp(argv[i + 1], "t") == 0) {
|
||||
set->common.keys.keyset = pki_TEST;
|
||||
set->common.rsfSet.Option.EnableCrypt = false; // prefer unencrypted output
|
||||
}
|
||||
//else if(strcasecmp(argv[i+1],"beta") == 0 || strcasecmp(argv[i+1],"b") == 0) {
|
||||
// set->common.keys.keyset = pki_BETA;
|
||||
//}
|
||||
else if (strcasecmp(argv[i + 1], "debug") == 0 || strcasecmp(argv[i + 1], "development") == 0 || strcasecmp(argv[i + 1], "d") == 0) {
|
||||
set->common.keys.keyset = pki_DEVELOPMENT;
|
||||
set->common.rsfSet.Option.EnableCrypt = true; // prefer encrypted output
|
||||
}
|
||||
else if (strcasecmp(argv[i + 1], "retail") == 0 || strcasecmp(argv[i + 1], "production") == 0 || strcasecmp(argv[i + 1], "p") == 0) {
|
||||
set->common.keys.keyset = pki_PRODUCTION;
|
||||
set->common.rsfSet.Option.EnableCrypt = true; // prefer encrypted output
|
||||
}
|
||||
//else if(strcasecmp(argv[i+1],"custom") == 0 || strcasecmp(argv[i+1],"c") == 0) {
|
||||
// set->common.keys.keyset = pki_CUSTOM;
|
||||
@@ -883,7 +880,7 @@ void PrintNoNeedParam(char *arg)
|
||||
|
||||
void DisplayBanner(void)
|
||||
{
|
||||
printf("CTR MAKEROM v0.14 (C) 3DSGuy 2014\n");
|
||||
printf("CTR MAKEROM v0.15 (C) 3DSGuy 2014\n");
|
||||
printf("Built: %s %s\n\n", __TIME__, __DATE__);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user