From 0d53596107efda4964617340b116e168e20d801a Mon Sep 17 00:00:00 2001 From: George Hotz Date: Mon, 10 Jan 2011 23:27:48 -0500 Subject: added make_self support --- make_self.c | 26 ++++++++------------------ 1 file changed, 8 insertions(+), 18 deletions(-) mode change 100644 => 100755 make_self.c (limited to 'make_self.c') diff --git a/make_self.c b/make_self.c old mode 100644 new mode 100755 index f0d0805..e1ee534 --- a/make_self.c +++ b/make_self.c @@ -24,7 +24,7 @@ #include "include/aes_omac.h" //#define NO_CRYPT -#define NPDRM +//#define NPDRM //#define SPRX #ifdef NPDRM @@ -441,18 +441,16 @@ int main(int argc, char* argv[]) { // generate metadata encryption keys metadata_crypt_header md_header; memset(&md_header, 0, sizeof(md_header)); + memcpy(&md_header, KEY(keypair_d), sizeof(md_header)); -#ifdef NPDRM - memcpy(&md_header, npdrm_keypair_d, sizeof(md_header)); -#else - mpz_t bigriv, bigerk; +// can't generate random without symmetric keys +/*mpz_t bigriv, bigerk; mpz_init(bigriv); mpz_init(bigerk); mpz_urandomb(bigerk, r_state, 128); mpz_urandomb(bigriv, r_state, 128); mpz_export(md_header.erk, &countp, 1, 0x10, 1, 0, bigerk); - mpz_export(md_header.riv, &countp, 1, 0x10, 1, 0, bigriv); -#endif + mpz_export(md_header.riv, &countp, 1, 0x10, 1, 0, bigriv);*/ // init signing shit mpz_t n,k,da,kinv,r,cs,z; @@ -578,17 +576,9 @@ int main(int argc, char* argv[]) { AES_set_encrypt_key(&output_self_data[metadata_offset], 128, &aes_key); memcpy(iv, &output_self_data[metadata_offset+0x20], 16); AES_ctr128_encrypt(&output_self_data[0x40+metadata_offset], &output_self_data[0x40+metadata_offset], get_u64(&(output_self_header.s_shsize))-metadata_offset-0x40, &aes_key, iv, ecount_buf, &num); - printf("encrypted metadata\n"); - -#ifdef NPDRM - memcpy(&output_self_data[metadata_offset], npdrm_keypair_e, sizeof(md_header)); -#else - AES_set_encrypt_key(KEY(erk), 256, &aes_key); - memcpy(iv, KEY(riv), 16); - AES_cbc_encrypt(&output_self_data[metadata_offset], &output_self_data[metadata_offset], 0x40, &aes_key, iv, AES_ENCRYPT); - printf("encrypted keys\n"); -#endif - + memcpy(&output_self_data[metadata_offset], KEY(keypair_e), sizeof(md_header)); + /*AES_set_encrypt_key(KEY(erk), 256, &aes_key); + AES_cbc_encrypt(&output_self_data[metadata_offset], &output_self_data[metadata_offset], 0x40, &aes_key, iv, AES_ENCRYPT);*/ #else printf("NO_CRYPT is enabled...self is broken\n"); #endif -- cgit v1.2.3