Commit Graph

179 Commits

Author SHA1 Message Date
Maschell
010e349af9 Optimize the check for Exceptions on the PipedInputStreamWithException. Now everything is checked (properly) on every action do try to do on the stream. 2019-04-30 15:45:38 +02:00
Maschell
62b87fe925 Revert commit [4b9ef5d]. We need that kind of hashing. 2019-04-30 15:43:37 +02:00
Maschell
b432537af7 Refactor FSTEntry decrypting 2019-04-30 15:43:04 +02:00
Maschell
8dc4c8cf4d Moved the IV creation into another function, the hash function don't really need the contentIndex. 2019-04-30 14:35:32 +02:00
Maschell
5ccc8c1763 Fix the size alignment wehne decrypting non hashed files 2019-04-30 14:32:34 +02:00
Maschell
4b9ef5da70 Optimize the hash checks when decrypting a non hash file 2019-04-30 14:31:53 +02:00
Maschell
da196e845f Force an 0x10 alignment of the offset when trying to decrypt a file 2019-04-30 14:26:02 +02:00
Maschell
fc3a604cd4 Optimize the random access of the non hashed files 2019-04-30 14:25:29 +02:00
Maschell
79365a9fe6 Caclulate how much of the stream actually is needed 2019-04-30 12:04:49 +02:00
Maschell
e461e78313 Throw an exception if the inputstream couldn't deliver all the needed bytes 2019-04-30 12:04:09 +02:00
Maschell
3296b1befe Add caching for the h3 values on remote accesses 2019-04-30 12:03:39 +02:00
Maschell
532501f3a5 Remove unused attribute of the NUSTitle class 2019-04-30 09:31:50 +02:00
Maschell
95a25c4bcf Fix the Range attribute for downloading 2019-04-30 09:31:31 +02:00
Maschell
3eb299d3a1 Formatting and organizing imports 2019-04-26 16:44:57 +02:00
Maschell
c1f6272476 Rename functions 2019-04-26 16:42:41 +02:00
Maschell
a48f2c7547 Remove redundant code 2019-04-26 13:45:24 +02:00
Maschell
69e0c8b36a The size in the FSTDataProvider and NUSDataProvider functions are not Optional anymore 2019-04-26 13:44:24 +02:00
Maschell
9cb2eaf3be Cache h3 content 2019-04-26 13:33:13 +02:00
Maschell
c3f4f96344 Fix the partial argument for the decryption 2019-04-26 10:55:13 +02:00
Maschell
dd4219423f Refactor the readFileToStream function of the FSTDataProviderNUSTitle 2019-04-26 10:10:10 +02:00
Maschell
c57cee987a Use the default readFile implementation for the FSTDataProviderNUSTitle 2019-04-26 10:08:53 +02:00
Maschell
ddee4b9f5d Refactor and fix FST parsing.
- Fix a bug when parsing certain FST of system titles.
- Remove the Content reference on the FSTEntry. The Content can get be get via the TMD using getContentByIndex. To get the FSTInfo for the content use FSTUtils.getFSTInfoForContent.
- Children are added manually to a FSTEntry (getting ride of side effects).
- The NUSTitleLoader sets the FST to the dataprovider. The WUDDataProvider needs the FST to get access to the FSTContentInfo (=> calculating the offsets of the content files).
- Remove some unused functions from the FSTEntry class
- To get the FSTEntries for the certain content use getFSTEntriesByContentIndex
2019-04-26 10:08:09 +02:00
Maschell
157957f3ee Add default implementiation for the readFile function of the FSTDataProvider interface 2019-04-26 09:57:05 +02:00
Maschell
794d4b5146 Remove "abstract" keywords from interface 2019-04-26 09:56:27 +02:00
Maschell
448eea1092 Clean up NUSTitle class, move functions to FSTUtils class 2019-04-26 09:55:52 +02:00
Maschell
5a57d42c52 Check partial file reads on a different location 2019-04-26 09:51:28 +02:00
Maschell
995d548c11 Swap offset and size arguments in decrypt functions 2019-04-26 09:49:50 +02:00
Maschell
6981345467 Force the use "/" as the path separator internally 2019-04-24 13:53:07 +02:00
Maschell
c1a1961e03 Minor formatting 2019-04-24 13:28:59 +02:00
Maschell
0d39c037ad Increase the size of the PipedStream buffers. This increases the performance. 2019-04-24 13:28:47 +02:00
Maschell
1f02e9d41d Give the NUSDataProvider implementation a hint to limit the length of the content stream 2019-04-24 13:27:54 +02:00
Maschell
a58c1c5b77 Make sure to always read the expected Blocksize from a stream of a hashed content. 2019-04-24 13:27:02 +02:00
Maschell
06184da8d3 Only throw an exception in the FSTService when a content for a given wasn't found if the Map is emtpy 2019-04-24 13:26:25 +02:00
Maschell
03181f6078 Close file properly on compressWUDToWUX function 2019-04-24 13:25:22 +02:00
Maschell
254d16a584 Simplify the ByteArrayWrapper constructor 2019-04-24 13:24:08 +02:00
Maschell
59411e4c7d Throw proper exception while hashing 2019-04-19 14:47:39 +02:00
Maschell
9f6f9aaabe Make sure all streams are really closed via try/finally block. Added a "closeAll" function in StreamUtils which helps to close a list of closeables 2019-04-19 11:41:12 +02:00
Maschell
fccd8f8bf4 Throw an Exception when a FSTDataProviderNUSTitle has no FSTEntry root 2019-04-19 11:39:09 +02:00
Maschell
a5929f346d Replace System.exit with throwing an Exception 2019-04-19 11:38:02 +02:00
Maschell
39d10291a2 Fix the warning when you try to decrypt a FSTEntry where the content is empty. 2019-04-19 11:37:22 +02:00
Maschell
dbad684549 Check for execptions when reading an inputstream 2019-04-19 11:36:49 +02:00
Maschell
ef878f7e41 Return an empty HashMap instead of null. 2019-04-19 10:57:18 +02:00
Maschell
1ebe37b77e Adjust log levels 2019-04-19 10:56:59 +02:00
Maschell
4aa6f532f0 Organize imports 2019-04-19 10:56:43 +02:00
Maschell
9b38f9c8c6 The readToFile function of the FSTDataProvider Interface now does return a value value to indicate success 2019-04-19 10:56:24 +02:00
Maschell
194b3084ae Add a missing input.close() when an exception happens. 2019-04-19 10:45:01 +02:00
Maschell
d3f2361803 Throw an exception instead of doing a System.exit when the offset is too big. 2019-04-19 10:44:08 +02:00
Maschell
3a6f592294 Use break on reading error instead of return, this way the streams will be closed properly. 2019-04-19 10:43:32 +02:00
Maschell
c47c9913ac Change the content and parent attribute of a FSTEntry to an Optional 2019-04-19 10:42:33 +02:00
Maschell
75e28a733b Some minor code cleanup for the WUDInfoParser 2019-04-18 23:28:01 +02:00