Commit graph

246 commits

Author SHA1 Message Date
jakcron
c59f209b72 [nx|nstool] Refactor ELF Symbol Processing and NSO/NRO ro metadata processing. 2018-06-19 18:37:27 +08:00
jakcron
2de0fbb19f Add VS2017 Project Files. 2018-06-11 23:08:46 +08:00
jakcron
f312712ad0 [nx] Create ApplicationControlPropertyBinary and ApplicationControlPropertyUtils 2018-06-11 23:00:47 +08:00
jakcron
190097e621 [nx] Update nacp.h 2018-06-11 23:00:11 +08:00
jakcron
4b273cccaa [nx] Removed unneeded includes. 2018-06-11 15:43:04 +08:00
jakcron
0eb0ba5fa4 [nx] Add nacp.h 2018-06-11 15:40:37 +08:00
Jack
c50e93d181
Merge pull request #20 from jakcron/nro-development
Improved NRO Support.
2018-06-11 14:15:11 +08:00
jakcron
945477c223 Update VS2017 Project Files. 2018-06-11 13:31:43 +08:00
jakcron
8924222c55 [nx-hb|nstool]Added better HB Asset support. 2018-06-10 23:48:04 +08:00
Jack
833a6d4213
Merge pull request #19 from jakcron/xci-development
[nx] Clean up definitions in xci.h
2018-06-10 15:00:45 +08:00
jakcron
b7b267b1ee [nx] Clean up definitions in xci.h 2018-06-10 15:00:03 +08:00
jakcron
bc164c8231 [nx-hb] Add NX homebrew extension library. 2018-06-10 14:57:00 +08:00
jakcron
fd06314b8f [nx] Add _MAKE_STRUCT_SIGNATURE_U64
For le_uint64_t struct signatures.
2018-06-10 14:56:18 +08:00
jakcron
0a735d4bd0 [nx] Implement NroHeader::exportBinary() 2018-06-10 14:53:53 +08:00
jakcron
926e494fd7 [nx] Update nx::dynsym::SpecialSectionIndex 2018-06-09 23:31:29 +08:00
jakcron
d169f854cc [nx] Fixed bug in NsoHeader:copyFrom()
Ensure variables are cleared.
2018-06-09 23:30:53 +08:00
jakcron
a7b0d8fdd1 [nx] Add NroHeader. 2018-06-09 23:30:08 +08:00
jakcron
15ef72b4fe [libes]
Initial commit.
2018-06-06 20:38:42 +08:00
jakcron
aaffe12e8a [nx|nstool] Add nro.h and nrr.h. 2018-06-04 12:00:28 +08:00
jakcron
97cdaf36ac [fnd] Add open constructor to fnd::SimpleFile 2018-06-03 16:47:28 +08:00
jakcron
782811da47 [nx|nstool] Changed struct magic from strings to words. 2018-06-03 15:41:56 +08:00
jakcron
a8f39b721d [nx|nstool] Added support for xci logo partition. 2018-06-03 15:10:47 +08:00
jakcron
d165243231 [nx] Add defines for NSO/NRO dynamic symbols. 2018-06-02 20:13:29 +08:00
jakcron
f7e49c50f3 Update VS project files. 2018-06-02 11:17:53 +08:00
jakcron
915bd80f6f [nx|nstool] Encapsulated NsoHeader parsing into nx::NsoHeader 2018-06-01 21:35:36 +08:00
jakcron
3363d9152a [fnd] Fix SimpleTextOutput::hxdStyleOutput() 2018-06-01 20:22:09 +08:00
jakcron
556434b0d5 [libcompress] Add libcompress with LZ4 implemented. 2018-06-01 20:18:36 +08:00
jakcron
a8863ca9c3 [nx] Fix nso.h typos 2018-05-27 20:33:39 +08:00
jakcron
aad9f75239 [nx] Add stubbed NsoHeader 2018-05-27 20:33:21 +08:00
jakcron
a930e0e04c [nx] Add nx/nso.h 2018-05-27 19:25:28 +08:00
jakcron
76ce22dc69 [nx|nstool] Silence format warnings. Cleanup string resource processing. 2018-05-26 12:07:42 +08:00
jakcron
8b37665be6 [nx|nstool] Changed Romfs FileNode and DirNode to not include an empty name[] variable. 2018-05-26 11:26:56 +08:00
jakcron
93509fac5a [fnd] Implement Windows 64bit size_t support in SimpleFile. 2018-05-25 22:54:30 +08:00
jakcron
ab1f092d75 [fnd] unstub Exception::error() 2018-05-22 14:37:38 +08:00
jakcron
446927b53e [libnx|nstool] Added HierarchicalSha256Header and HierarchicalIntegrityHeader 2018-05-20 21:57:38 +08:00
jakcron
d93116863e [nx] Add implement importBinary for HierarchicalSha256Header and stubbed HierarchicalIntegrityHeader. 2018-05-20 09:19:41 +08:00
jakcron
e64f309c31 [nx] Rename because of typo 2018-05-20 09:18:38 +08:00
jakcron
aa1ed007eb Start moving towards a more generatlised hash tree system. 2018-05-19 11:57:40 +08:00
jakcron
4d537956f0 [nx] Add proper padding to nx::sKeyDataArea (xci) 2018-05-15 21:26:40 +08:00
jakcron
7da6aee09d [nx|nstool] Update VS project files. 2018-05-15 18:13:10 +08:00
jakcron
79c24153bb [nx|nstool] Added support for reading ContentMeta (.cnmt). 2018-05-12 23:02:53 +08:00
jakcron
a02ba43292 [nx] Add ContentMetaBinary 2018-05-12 17:36:50 +08:00
jakcron
480a6225cc [nx] Updated VS project files. 2018-05-12 11:53:42 +08:00
jakcron
a4d52b3495 [crypto] Removed AesCtrStream 2018-05-12 11:51:13 +08:00
jakcron
8904b6e46c [fnd] Changed IFile so that a deleted IFile will trigger any layered destructors. 2018-05-11 21:47:23 +08:00
jakcron
d5da5afaae [fnd] Add pure virtual destructor to IFile to prevent pointers of it being deleted. 2018-05-11 21:10:04 +08:00
Jack
c7d78d0f1e
Merge pull request #10 from jakcron/nca-development
[nx|nstool] Nca development
2018-05-11 17:54:25 +08:00
jakcron
2fef609bbd [nx] Update structures. 2018-05-11 17:44:41 +08:00
jakcron
3291d06082 [nx] Add getNcaPartititionAesCtr() 2018-05-01 13:21:28 +08:00
jakcron
3cbcba2bde [nx] Add hasRightsId() to NcaHeader 2018-05-01 13:17:25 +08:00
jakcron
1f24d0e3e1 [nx] Fixed typo in AciHeader 2018-04-29 11:22:43 +08:00
jakcron
aee573f5ce [nx|nstool] Updated npdm->aci flag information. Also corrected some bugs 2018-04-28 00:13:35 +08:00
jakcron
c64e9e2f42 [nx] Added missing include. 2018-04-25 23:20:20 +08:00
jakcron
97ccc628ce [nx] Define sNcaHeaderBlock 2018-04-25 22:58:45 +08:00
jakcron
b3d5cd6976 [fnd] Fix typecast typo. 2018-04-25 22:22:19 +08:00
jakcron
d017a95a3a [fnd|nstool] Replaced io::makePath() with io::appendToPath(). Enabled utf-8 support to io::makeDirectory. 2018-04-25 20:27:18 +08:00
jakcron
167a343937 [fnd] Fix/Enhance fnd::SimpleTextOutput::hxdStyleDump(). 2018-04-25 19:36:21 +08:00
jakcron
7e81d04fac [nx] Fix mistake in sRomfsDirEntry and add romfs::kInvalidAddr 2018-04-25 19:34:40 +08:00
jakcron
dd1297fbed [nx] Add romfs header constant. 2018-04-25 16:34:52 +08:00
jakcron
12e535317a [nx] Add other RomFs structures 2018-04-25 14:28:43 +08:00
jakcron
27347214f7 Add Visual Studio (2017) support. 2018-04-25 12:59:42 +08:00
jakcron
e1e6346628 [nx] Fix typo. 2018-04-25 12:59:13 +08:00
jakcron
8ef9f478b0 [programs] Remove xcitool, npdmtool, pfstool. Add nstool. 2018-04-24 13:24:20 +08:00
jakcron
c42b498e19 [nx] Fix indent. 2018-04-21 17:41:49 +08:00
jakcron
e9d24e4297 [nx] misc 2018-04-21 17:38:26 +08:00
jakcron
17c16cfa7a [nx] Add XciHeader 2018-04-21 17:37:30 +08:00
jakcron
fac2753afd [nx] Move structs and consts from NpdmHeader to npdm.h 2018-04-21 17:36:09 +08:00
jakcron
c02c5650c0 [nx] NcaHeader signature bytes validation change. 2018-04-21 17:27:29 +08:00
jakcron
02514cf72b [nx] Rename and move location of NCA embedded FS structs and consts. 2018-04-21 17:23:55 +08:00
jakcron
b81c742e18 [nx] Extract structures and consts from AciHeader.h to aci.h 2018-04-21 17:20:37 +08:00
jakcron
69c558923d [nx] Fix ACID RSA verification. 2018-04-21 17:19:41 +08:00
jakcron
953a181180 [nx] Fix ACID RSA verification. 2018-04-21 17:19:12 +08:00
jakcron
f542b54154 [crypto] Add operators to sAesIvCtr 2018-04-21 17:17:54 +08:00
jakcron
cdd11d58c6 [nx] Removed unused file. 2018-04-15 14:01:41 +08:00
jakcron
949bc4ba27 [fnd] Added read/write methods to IFile that didn't require an offset. 2018-04-15 14:01:24 +08:00
jakcron
45954d837d Add makeDirectory() to fnd::io 2018-04-15 14:00:46 +08:00
jakcron
886d51f63c [nx] pfs::kAlignLen renamed to pfs::kHeaderAlign 2018-04-15 10:41:29 +08:00
jakcron
ee04bcdc8d [nx] Add NcaUtils 2018-04-15 10:40:22 +08:00
jakcron
2573ad4b47 [nx] Add AesKegen class for generating Keks and Keys. 2018-04-15 10:40:03 +08:00
jakcron
bfb9d87c95 [fnd] Add ResourceFileReader. This reads simple <key>=<value> files. 2018-04-15 10:38:58 +08:00
jakcron
88bcc8ce6d [fnd] Add fnd::io::getFileSize() 2018-04-15 10:36:43 +08:00
jakcron
8a8fe7b0e8 [fnd] Added IFile interface and SimpleFile implementation. 2018-04-15 10:36:23 +08:00
jakcron
cca4a29fd6 [nx] Made kMaxSystemCall public. 2018-04-15 10:35:20 +08:00
jakcron
81e4f06048 [crypto] Add RSA-2048-PSS verification. 2018-04-15 10:33:00 +08:00
jakcron
bd493acd3d Update VS2017 project files. 2018-04-07 16:49:45 +08:00
jakcron
2ad3c13596 [fnd] Update Endian.h 2018-04-07 16:05:54 +08:00
jakcron
57414aab1c [nx] Define XCI consts and structs. 2018-04-07 16:04:45 +08:00
jakcron
c9c515903e [nx] Delete unfinished XciHeader class. 2018-04-07 16:04:27 +08:00
jakcron
109b64be52 [nx|pfstool] Add support for HFS0. Take out PFS consts and structs to a separate file. 2018-04-07 16:03:01 +08:00
jakcron
fd9261b789 [nx|ncatool] Take out NCA constants and structures to separate file. Add support for NCA key area index 5. 2018-04-07 16:01:11 +08:00
jakcron
dec7c50cc4 [crypto] Properly define sAesXts128Key 2018-04-07 15:58:07 +08:00
jakcron
2ff4ea8037 [fnd] Add SimpleTextOutput utility class. 2018-04-07 15:57:33 +08:00
jakcron
bafdaffe13 Update Makefiles 2018-04-07 15:57:04 +08:00
jakcron
eb04a4341f Reorganise NXCrypto 2018-03-31 08:08:10 +08:00
jakcron
427cdbb059 [nx] Update XciHeader 2018-03-31 08:07:53 +08:00
jakcron
7167477874 [fnd] overloaded fnd::io::readFile to allow specifying an offset and size. 2018-03-25 19:52:56 +08:00
jakcron
08de2c4abc Fix bug in BitMath.h 2018-03-25 19:08:34 +08:00
jakcron
5f91ea9c8b [es] Converted endian sensitive primatives to wrapped types. 2018-03-22 14:21:40 +08:00
jakcron
1c60c86803 Removed u8,u16,u32,u64 typedef 2018-03-22 13:26:22 +08:00
jakcron
a44a0257fe [nx] Add Production keys
MasterKey[0], NCAHeaderKey, XCIHeaderKey.
2018-03-21 20:30:35 +08:00
jakcron
cf2dc0f7d0 [nx::NcaHeader] Fix comparison typo 2018-03-21 20:29:08 +08:00
jakcron
ed2e0f462d Update NCA code 2018-03-18 17:08:42 +08:00
jakcron
e293b322c0 Use ISerialiseablePrimative types in NcaHeader 2018-03-17 20:01:19 +08:00
jakcron
c5c71873b9 Fix uninitialisation bug in MiscFlagsHandler 2018-03-17 20:00:16 +08:00
jakcron
4cfcf6bae9 Split fnd/types.h into separate files 2018-03-17 19:59:53 +08:00
jakcron
6630e108b2 Support Compiling on MacOS 2018-03-17 15:59:38 +08:00
jakcron
e74f214a3b change directory structure, and add support for VS compile, and fix aes-xts bug. 2017-08-05 21:09:50 +08:00
jakcron
e8c39ace04 [es/tiktool] start eticket. 2017-07-22 16:59:06 +08:00
jakcron
bf811f1107 [fnd/nx] Moved ISerialiseableBinary from nx to fnd. AciHeader corrected specification. 2017-07-21 18:30:16 +08:00
jakcron
05b8856ee3 [crypto] Fixed AesEcb 2017-07-21 18:26:52 +08:00
jakcron
d730c1e3b8 final commit 2017-07-19 00:17:32 +10:00
jakcron
2e9af1b0f7 [crypto] Made rsakey comparisions const. 2017-07-17 18:25:41 +10:00
jakcron
99151507c6 [nx] Implemented NpdmBinary and associated child classes. 2017-07-17 18:21:39 +10:00
jakcron
7dd27fd5c8 [nx] Unbroke MemoryMappingHandler forloop bugfix. Fixed typo in KcBinary::importBinary(). 2017-07-15 18:59:15 +10:00
jakcron
5af8ec72ae [nx] Add AciBinary. 2017-07-15 18:28:41 +10:00
jakcron
20b4984ae3 [nx] Removed importBinary(const u8* bytes) from ISerialisableBinary and all children. AciHeader supports ACID version 1. Size bug in SacEntry fixed(?). Bitlength typo in SystemCallEntry fixed(?). MiscFlagsHandler now returns a fnd::List of flags, not the raw word. Forloop in MemoryMappingHandler fixed. 2017-07-15 18:28:01 +10:00
jakcron
cb91fea97f [fnd] Add hasElement() to List<T>. 2017-07-13 00:03:56 +10:00
jakcron
30b3dd6063 [nx] Implement KcBinary and supporting classes. 2017-07-13 00:02:10 +10:00
jakcron
076fba9bcb [fnd] Changed internal behavior of fnd::Exception. 2017-07-07 19:57:38 +10:00
jakcron
0c256db560 [nx] Add ACI kernel capability Classes. 2017-07-07 17:09:03 +10:00
jakcron
60e1b8a328 [nx] Add NpdmHeader. 2017-07-07 10:18:33 +10:00
jakcron
7b0dbc753f [nx] Fix namespace collision in NXCrypto.h 2017-07-07 10:18:08 +10:00
jakcron
5bd5178a7d [nx] Safer FacBinary size calculation in FacHeader. 2017-07-07 09:57:50 +10:00
jakcron
64035225d8 [fnd] Added MIN(x,y), MAX(x,y) macros. 2017-07-07 09:57:21 +10:00
jakcron
544d484690 [nx] Added operators to AciHeader::sSection. 2017-07-07 09:56:49 +10:00
jakcron
7b34bd404d [nx] Added nx namespace. 2017-07-06 21:17:21 +10:00
jakcron
01162b8187 [crypto] Added more operators to sRsa*Key, current rsaSign/rsaVerify functions moved to rsa::pkcs namespace, rsa::pss and rsa::oaep to be added in future. 2017-07-06 21:11:03 +10:00
jakcron
724fc26349 [nx] Added SacBinary, FacHeader, FacBinary. 2017-07-06 20:57:33 +10:00
jakcron
844a46c83a [nx] AciHeader updated to inherit from ISerialisableBinary. 2017-07-06 20:56:52 +10:00
jakcron
e7172949da [nx/ncatool] Update SacEntry and NcaHeader to inherit from ISerialiseableBinary. ncatool is updated accordingly. 2017-07-06 20:55:58 +10:00
jakcron
74820d9274 [nx] Add ISerialisedBinary. 2017-07-06 20:54:07 +10:00
jakcron
1515c56d2f [fnd] Add List<T> template class. 2017-07-06 20:48:46 +10:00
jakcron
f59068088d [fnd] Added more operators and clear() to MemoryBlob. 2017-07-06 20:48:06 +10:00
jakcron
7d8fb6e3a5 [crypto] Added more operators to sAes128Key, sSha256Hash, sSha1Hash. 2017-07-06 20:46:36 +10:00
jakcron
337a5eff25 [nx] Add ISerialiseableInterface, which AciHeader and NcaHeader inherit from. Also added SacEntry. 2017-07-06 13:30:27 +10:00
jakcron
fa4bdd7143 [fnd] Replace FileIO singleton with io namespace. Changed style of MemoryBlob, gave it exceptions. 2017-07-06 13:27:25 +10:00
jakcron
61b4997b74 Delete object files. 2017-07-06 12:54:31 +10:00
jakcron
57e45278da Update VS include directory project configuration. 2017-07-06 01:41:25 +10:00
jakcron
32cc4b4d0d [nx] Add AciHeader. 2017-07-06 01:39:41 +10:00
jakcron
fad0cb828f [nx] Style change in NcaHeader, also exportBinary() implemented in NcaHeader. 2017-07-06 01:38:14 +10:00
jakcron
70145ce354 [fnd] Fix type in WriteFile(). 2017-07-06 01:36:59 +10:00
jakcron
79e2ef5fd2 [fnd] Implemented fnd::WriteFile() 2017-07-05 19:17:04 +10:00
jakcron
9dfa69446d [nx] Add mined keys and NcaHeader 2017-07-05 18:57:14 +10:00
jakcron
e8e9fbd907 [crypto] Split code in crypto to rsa, aes, sha files. Also namespaces. 2017-07-05 18:54:49 +10:00
jakcron
600eccaeed Remove unneeded files. 2017-07-03 01:22:14 +10:00
jakcron
e888fedd6e Initial commit of support libraries. 2017-07-03 01:18:59 +10:00