Merge branch 'master' of github.com:alex34567/Project_CTR

This commit is contained in:
Alex Eckhart
2016-01-25 22:34:22 -07:00
16 changed files with 146 additions and 1724 deletions
+22
View File
@@ -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 -6
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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);
+1
View File
@@ -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" />
+3
View File
@@ -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
View File
@@ -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
View File
File diff suppressed because one or more lines are too long
+7 -138
View File
@@ -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
View File
File diff suppressed because one or more lines are too long
+14
View File
@@ -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
View File
@@ -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
+2 -5
View File
@@ -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__);
}