Correct application to be in line with  libKonogonka
	
		
			
	
		
	
	
		
	
		
			All checks were successful
		
		
	
	
		
			
				
	
				continuous-integration/drone/push Build is passing
				
			
		
		
	
	
				
					
				
			
		
			All checks were successful
		
		
	
	continuous-integration/drone/push Build is passing
				
			This commit is contained in:
		
							parent
							
								
									f7d3317bf5
								
							
						
					
					
						commit
						8f5481ab3e
					
				
					 11 changed files with 105 additions and 105 deletions
				
			
		|  | @ -34,7 +34,7 @@ import java.net.URL; | ||||||
| import java.util.HashMap; | import java.util.HashMap; | ||||||
| import java.util.ResourceBundle; | import java.util.ResourceBundle; | ||||||
| 
 | 
 | ||||||
| import static libKonogonka.Converter.byteArrToHexString; | import static libKonogonka.Converter.byteArrToHexStringAsLE; | ||||||
| 
 | 
 | ||||||
| public class NCAController implements ITabController { | public class NCAController implements ITabController { | ||||||
| 
 | 
 | ||||||
|  | @ -182,37 +182,37 @@ public class NCAController implements ITabController { | ||||||
|     private void populateFields(NCAProvider ncaProvider) { |     private void populateFields(NCAProvider ncaProvider) { | ||||||
|         if (ncaProvider == null) |         if (ncaProvider == null) | ||||||
|             return; |             return; | ||||||
|         rsa2048oneTF.setText(byteArrToHexString(ncaProvider.getRsa2048one())); |         rsa2048oneTF.setText(byteArrToHexStringAsLE(ncaProvider.getRsa2048one())); | ||||||
|         rsa2048twoTF.setText(byteArrToHexString(ncaProvider.getRsa2048two())); |         rsa2048twoTF.setText(byteArrToHexStringAsLE(ncaProvider.getRsa2048two())); | ||||||
|         magicnumLbl.setText(ncaProvider.getMagicnum()); |         magicnumLbl.setText(ncaProvider.getMagicnum()); | ||||||
|         systemOrGcIndLbl.setText(Byte.toString(ncaProvider.getSystemOrGcIndicator())); |         systemOrGcIndLbl.setText(Byte.toString(ncaProvider.getSystemOrGcIndicator())); | ||||||
|         contentTypeLbl.setText(Byte.toString(ncaProvider.getContentType())); |         contentTypeLbl.setText(Byte.toString(ncaProvider.getContentType())); | ||||||
|         cryptoType1Lbl.setText(Byte.toString(ncaProvider.getCryptoType1())); |         cryptoType1Lbl.setText(Byte.toString(ncaProvider.getCryptoType1())); | ||||||
|         keyIndexLbl.setText(Byte.toString(ncaProvider.getKeyIndex())); |         keyIndexLbl.setText(Byte.toString(ncaProvider.getKeyIndex())); | ||||||
|         ncaSizeLbl.setText(Long.toString(ncaProvider.getNcaSize())); |         ncaSizeLbl.setText(Long.toString(ncaProvider.getNcaSize())); | ||||||
|         titleIdLbl.setText(byteArrToHexString(ncaProvider.getTitleId())); |         titleIdLbl.setText(byteArrToHexStringAsLE(ncaProvider.getTitleId())); | ||||||
|         contentIndexLbl.setText(byteArrToHexString(ncaProvider.getContentIndx()));   // |         contentIndexLbl.setText(byteArrToHexStringAsLE(ncaProvider.getContentIndx()));   // | ||||||
|         sdkVersionLbl.setText(ncaProvider.getSdkVersion()[3] |         sdkVersionLbl.setText(ncaProvider.getSdkVersion()[3] | ||||||
|                 +"."+ncaProvider.getSdkVersion()[2] |                 +"."+ncaProvider.getSdkVersion()[2] | ||||||
|                 +"."+ncaProvider.getSdkVersion()[1] |                 +"."+ncaProvider.getSdkVersion()[1] | ||||||
|                 +"."+ncaProvider.getSdkVersion()[0]); |                 +"."+ncaProvider.getSdkVersion()[0]); | ||||||
|         cryptoType2Lbl.setText(Byte.toString(ncaProvider.getCryptoType2())); |         cryptoType2Lbl.setText(Byte.toString(ncaProvider.getCryptoType2())); | ||||||
|         header1SignatureKeyGenerationLbl.setText(Byte.toString(ncaProvider.getHeader1SignatureKeyGeneration())); |         header1SignatureKeyGenerationLbl.setText(Byte.toString(ncaProvider.getHeader1SignatureKeyGeneration())); | ||||||
|         keyGenerationReservedLbl.setText(byteArrToHexString(ncaProvider.getKeyGenerationReserved())); |         keyGenerationReservedLbl.setText(byteArrToHexStringAsLE(ncaProvider.getKeyGenerationReserved())); | ||||||
|         ticketLbl.setText(byteArrToHexString(ncaProvider.getRightsId())); |         ticketLbl.setText(byteArrToHexStringAsLE(ncaProvider.getRightsId())); | ||||||
|         sha256section1TF.setText(byteArrToHexString(ncaProvider.getSha256hash0())); |         sha256section1TF.setText(byteArrToHexStringAsLE(ncaProvider.getSha256hash0())); | ||||||
|         sha256section2TF.setText(byteArrToHexString(ncaProvider.getSha256hash1())); |         sha256section2TF.setText(byteArrToHexStringAsLE(ncaProvider.getSha256hash1())); | ||||||
|         sha256section3TF.setText(byteArrToHexString(ncaProvider.getSha256hash2())); |         sha256section3TF.setText(byteArrToHexStringAsLE(ncaProvider.getSha256hash2())); | ||||||
|         sha256section4TF.setText(byteArrToHexString(ncaProvider.getSha256hash3())); |         sha256section4TF.setText(byteArrToHexStringAsLE(ncaProvider.getSha256hash3())); | ||||||
|         keyAreaEnKey0TF.setText(byteArrToHexString(ncaProvider.getEncryptedKey0())); |         keyAreaEnKey0TF.setText(byteArrToHexStringAsLE(ncaProvider.getEncryptedKey0())); | ||||||
|         keyAreaEnKey1TF.setText(byteArrToHexString(ncaProvider.getEncryptedKey1())); |         keyAreaEnKey1TF.setText(byteArrToHexStringAsLE(ncaProvider.getEncryptedKey1())); | ||||||
|         keyAreaEnKey2TF.setText(byteArrToHexString(ncaProvider.getEncryptedKey2())); |         keyAreaEnKey2TF.setText(byteArrToHexStringAsLE(ncaProvider.getEncryptedKey2())); | ||||||
|         keyAreaEnKey3TF.setText(byteArrToHexString(ncaProvider.getEncryptedKey3())); |         keyAreaEnKey3TF.setText(byteArrToHexStringAsLE(ncaProvider.getEncryptedKey3())); | ||||||
| 
 | 
 | ||||||
|         keyAreaDecKey0TF.setText(byteArrToHexString(ncaProvider.getDecryptedKey0())); |         keyAreaDecKey0TF.setText(byteArrToHexStringAsLE(ncaProvider.getDecryptedKey0())); | ||||||
|         keyAreaDecKey1TF.setText(byteArrToHexString(ncaProvider.getDecryptedKey1())); |         keyAreaDecKey1TF.setText(byteArrToHexStringAsLE(ncaProvider.getDecryptedKey1())); | ||||||
|         keyAreaDecKey2TF.setText(byteArrToHexString(ncaProvider.getDecryptedKey2())); |         keyAreaDecKey2TF.setText(byteArrToHexStringAsLE(ncaProvider.getDecryptedKey2())); | ||||||
|         keyAreaDecKey3TF.setText(byteArrToHexString(ncaProvider.getDecryptedKey3())); |         keyAreaDecKey3TF.setText(byteArrToHexStringAsLE(ncaProvider.getDecryptedKey3())); | ||||||
|         // Tables |         // Tables | ||||||
|         NCATable1Controller.populateTab(ncaProvider.getTableEntry0()); |         NCATable1Controller.populateTab(ncaProvider.getTableEntry0()); | ||||||
|         NCATable2Controller.populateTab(ncaProvider.getTableEntry1()); |         NCATable2Controller.populateTab(ncaProvider.getTableEntry1()); | ||||||
|  |  | ||||||
|  | @ -27,7 +27,7 @@ import libKonogonka.Tools.NCA.NCASectionTableBlock.MetaDataHashDataInfo; | ||||||
| import libKonogonka.Tools.NCA.NCASectionTableBlock.NcaFsHeader; | import libKonogonka.Tools.NCA.NCASectionTableBlock.NcaFsHeader; | ||||||
| import libKonogonka.Tools.NCA.NCASectionTableBlock.SparseInfo; | import libKonogonka.Tools.NCA.NCASectionTableBlock.SparseInfo; | ||||||
| 
 | 
 | ||||||
| import static libKonogonka.Converter.byteArrToHexString; | import static libKonogonka.Converter.byteArrToHexStringAsLE; | ||||||
| 
 | 
 | ||||||
| public class NCAFsHeaderController { | public class NCAFsHeaderController { | ||||||
|     @FXML |     @FXML | ||||||
|  | @ -234,7 +234,7 @@ public class NCAFsHeaderController { | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     public void populateTab(NcaFsHeader ncaFsHeader){ |     public void populateTab(NcaFsHeader ncaFsHeader){ | ||||||
|         versionLbl.setText(byteArrToHexString(ncaFsHeader.getVersion())); |         versionLbl.setText(byteArrToHexStringAsLE(ncaFsHeader.getVersion())); | ||||||
|         StringBuilder sb = new StringBuilder(); |         StringBuilder sb = new StringBuilder(); | ||||||
|         sb.append(String.format("0x%02x ", ncaFsHeader.getFsType())); |         sb.append(String.format("0x%02x ", ncaFsHeader.getFsType())); | ||||||
|         if (ncaFsHeader.getFsType() == 0) |         if (ncaFsHeader.getFsType() == 0) | ||||||
|  | @ -277,7 +277,7 @@ public class NCAFsHeaderController { | ||||||
|                 metaDataHashTypeLbl.setText(String.format("%d", ncaFsHeader.getMetaDataHashType())); |                 metaDataHashTypeLbl.setText(String.format("%d", ncaFsHeader.getMetaDataHashType())); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         paddingLbl.setText(byteArrToHexString(ncaFsHeader.getPadding())); |         paddingLbl.setText(byteArrToHexStringAsLE(ncaFsHeader.getPadding())); | ||||||
|         if ((ncaFsHeader.getFsType() == 0) && (ncaFsHeader.getHashType() == 0x3)){ |         if ((ncaFsHeader.getFsType() == 0) && (ncaFsHeader.getHashType() == 0x3)){ | ||||||
|             romFsMagicLbl.setText(ncaFsHeader.getSuperBlockIVFC().getMagic()); |             romFsMagicLbl.setText(ncaFsHeader.getSuperBlockIVFC().getMagic()); | ||||||
|             romFsMagicNumberLbl.setText(ncaFsHeader.getSuperBlockIVFC().getMagic() |             romFsMagicNumberLbl.setText(ncaFsHeader.getSuperBlockIVFC().getMagic() | ||||||
|  | @ -287,48 +287,48 @@ public class NCAFsHeaderController { | ||||||
|             romFsLvl1OffsetLbl.setText(getCuteDecHexRepresentation(ncaFsHeader.getSuperBlockIVFC().getLvl1Offset())); |             romFsLvl1OffsetLbl.setText(getCuteDecHexRepresentation(ncaFsHeader.getSuperBlockIVFC().getLvl1Offset())); | ||||||
|             romFsLvl1SizeLbl.setText(getCuteDecHexRepresentation(ncaFsHeader.getSuperBlockIVFC().getLvl1Size())); |             romFsLvl1SizeLbl.setText(getCuteDecHexRepresentation(ncaFsHeader.getSuperBlockIVFC().getLvl1Size())); | ||||||
|             romFsLvl1SBlockSizeLbl.setText(Integer.toString(ncaFsHeader.getSuperBlockIVFC().getLvl1SBlockSize())); |             romFsLvl1SBlockSizeLbl.setText(Integer.toString(ncaFsHeader.getSuperBlockIVFC().getLvl1SBlockSize())); | ||||||
|             romFsReserved1Lbl.setText(byteArrToHexString(ncaFsHeader.getSuperBlockIVFC().getReserved1())); |             romFsReserved1Lbl.setText(byteArrToHexStringAsLE(ncaFsHeader.getSuperBlockIVFC().getReserved1())); | ||||||
| 
 | 
 | ||||||
|             romFsLvl2OffsetLbl.setText(getCuteDecHexRepresentation(ncaFsHeader.getSuperBlockIVFC().getLvl2Offset())); |             romFsLvl2OffsetLbl.setText(getCuteDecHexRepresentation(ncaFsHeader.getSuperBlockIVFC().getLvl2Offset())); | ||||||
|             romFsLvl2SizeLbl.setText(getCuteDecHexRepresentation(ncaFsHeader.getSuperBlockIVFC().getLvl2Size())); |             romFsLvl2SizeLbl.setText(getCuteDecHexRepresentation(ncaFsHeader.getSuperBlockIVFC().getLvl2Size())); | ||||||
|             romFsLvl2SBlockSizeLbl.setText(Integer.toString(ncaFsHeader.getSuperBlockIVFC().getLvl2SBlockSize())); |             romFsLvl2SBlockSizeLbl.setText(Integer.toString(ncaFsHeader.getSuperBlockIVFC().getLvl2SBlockSize())); | ||||||
|             romFsReserved2Lbl.setText(byteArrToHexString(ncaFsHeader.getSuperBlockIVFC().getReserved2())); |             romFsReserved2Lbl.setText(byteArrToHexStringAsLE(ncaFsHeader.getSuperBlockIVFC().getReserved2())); | ||||||
|              |              | ||||||
|             romFsLvl3OffsetLbl.setText(getCuteDecHexRepresentation(ncaFsHeader.getSuperBlockIVFC().getLvl3Offset())); |             romFsLvl3OffsetLbl.setText(getCuteDecHexRepresentation(ncaFsHeader.getSuperBlockIVFC().getLvl3Offset())); | ||||||
|             romFsLvl3SizeLbl.setText(getCuteDecHexRepresentation(ncaFsHeader.getSuperBlockIVFC().getLvl3Size())); |             romFsLvl3SizeLbl.setText(getCuteDecHexRepresentation(ncaFsHeader.getSuperBlockIVFC().getLvl3Size())); | ||||||
|             romFsLvl3SBlockSizeLbl.setText(Integer.toString(ncaFsHeader.getSuperBlockIVFC().getLvl3SBlockSize())); |             romFsLvl3SBlockSizeLbl.setText(Integer.toString(ncaFsHeader.getSuperBlockIVFC().getLvl3SBlockSize())); | ||||||
|             romFsReserved3Lbl.setText(byteArrToHexString(ncaFsHeader.getSuperBlockIVFC().getReserved3())); |             romFsReserved3Lbl.setText(byteArrToHexStringAsLE(ncaFsHeader.getSuperBlockIVFC().getReserved3())); | ||||||
| 
 | 
 | ||||||
|             romFsLvl4OffsetLbl.setText(getCuteDecHexRepresentation(ncaFsHeader.getSuperBlockIVFC().getLvl4Offset())); |             romFsLvl4OffsetLbl.setText(getCuteDecHexRepresentation(ncaFsHeader.getSuperBlockIVFC().getLvl4Offset())); | ||||||
|             romFsLvl4SizeLbl.setText(getCuteDecHexRepresentation(ncaFsHeader.getSuperBlockIVFC().getLvl4Size())); |             romFsLvl4SizeLbl.setText(getCuteDecHexRepresentation(ncaFsHeader.getSuperBlockIVFC().getLvl4Size())); | ||||||
|             romFsLvl4SBlockSizeLbl.setText(Integer.toString(ncaFsHeader.getSuperBlockIVFC().getLvl4SBlockSize())); |             romFsLvl4SBlockSizeLbl.setText(Integer.toString(ncaFsHeader.getSuperBlockIVFC().getLvl4SBlockSize())); | ||||||
|             romFsReserved4Lbl.setText(byteArrToHexString(ncaFsHeader.getSuperBlockIVFC().getReserved4())); |             romFsReserved4Lbl.setText(byteArrToHexStringAsLE(ncaFsHeader.getSuperBlockIVFC().getReserved4())); | ||||||
| 
 | 
 | ||||||
|             romFsLvl5OffsetLbl.setText(getCuteDecHexRepresentation(ncaFsHeader.getSuperBlockIVFC().getLvl5Offset())); |             romFsLvl5OffsetLbl.setText(getCuteDecHexRepresentation(ncaFsHeader.getSuperBlockIVFC().getLvl5Offset())); | ||||||
|             romFsLvl5SizeLbl.setText(getCuteDecHexRepresentation(ncaFsHeader.getSuperBlockIVFC().getLvl5Size())); |             romFsLvl5SizeLbl.setText(getCuteDecHexRepresentation(ncaFsHeader.getSuperBlockIVFC().getLvl5Size())); | ||||||
|             romFsLvl5SBlockSizeLbl.setText(Integer.toString(ncaFsHeader.getSuperBlockIVFC().getLvl5SBlockSize())); |             romFsLvl5SBlockSizeLbl.setText(Integer.toString(ncaFsHeader.getSuperBlockIVFC().getLvl5SBlockSize())); | ||||||
|             romFsReserved5Lbl.setText(byteArrToHexString(ncaFsHeader.getSuperBlockIVFC().getReserved5())); |             romFsReserved5Lbl.setText(byteArrToHexStringAsLE(ncaFsHeader.getSuperBlockIVFC().getReserved5())); | ||||||
| 
 | 
 | ||||||
|             romFsLvl6OffsetLbl.setText(getCuteDecHexRepresentation(ncaFsHeader.getSuperBlockIVFC().getLvl6Offset())); |             romFsLvl6OffsetLbl.setText(getCuteDecHexRepresentation(ncaFsHeader.getSuperBlockIVFC().getLvl6Offset())); | ||||||
|             romFsLvl6SizeLbl.setText(getCuteDecHexRepresentation(ncaFsHeader.getSuperBlockIVFC().getLvl6Size())); |             romFsLvl6SizeLbl.setText(getCuteDecHexRepresentation(ncaFsHeader.getSuperBlockIVFC().getLvl6Size())); | ||||||
|             romFsLvl6SBlockSizeLbl.setText(Integer.toString(ncaFsHeader.getSuperBlockIVFC().getLvl6SBlockSize())); |             romFsLvl6SBlockSizeLbl.setText(Integer.toString(ncaFsHeader.getSuperBlockIVFC().getLvl6SBlockSize())); | ||||||
|             romFsReserved6Lbl.setText(byteArrToHexString(ncaFsHeader.getSuperBlockIVFC().getReserved6())); |             romFsReserved6Lbl.setText(byteArrToHexStringAsLE(ncaFsHeader.getSuperBlockIVFC().getReserved6())); | ||||||
| 
 | 
 | ||||||
|             signatureSaltTf.setText(byteArrToHexString(ncaFsHeader.getSuperBlockIVFC().getSignatureSalt())); |             signatureSaltTf.setText(byteArrToHexStringAsLE(ncaFsHeader.getSuperBlockIVFC().getSignatureSalt())); | ||||||
|             romFsMasterHashTf.setText(byteArrToHexString(ncaFsHeader.getSuperBlockIVFC().getMasterHash())); |             romFsMasterHashTf.setText(byteArrToHexStringAsLE(ncaFsHeader.getSuperBlockIVFC().getMasterHash())); | ||||||
|             romFsReservedTailLbl.setText(byteArrToHexString(ncaFsHeader.getSuperBlockIVFC().getReservedTail())); |             romFsReservedTailLbl.setText(byteArrToHexStringAsLE(ncaFsHeader.getSuperBlockIVFC().getReservedTail())); | ||||||
| 
 | 
 | ||||||
|             pfs0TitlePanel.setDisable(true); |             pfs0TitlePanel.setDisable(true); | ||||||
|         } |         } | ||||||
|         else if ((ncaFsHeader.getFsType() == 0x1) && (ncaFsHeader.getHashType() == 0x2)){ |         else if ((ncaFsHeader.getFsType() == 0x1) && (ncaFsHeader.getHashType() == 0x2)){ | ||||||
|             pfs0SHA256hashTf.setText(byteArrToHexString(ncaFsHeader.getSuperBlockPFS0().getSHA256hash())); |             pfs0SHA256hashTf.setText(byteArrToHexStringAsLE(ncaFsHeader.getSuperBlockPFS0().getSHA256hash())); | ||||||
|             pfs0blockSizeLbl.setText(Integer.toString(ncaFsHeader.getSuperBlockPFS0().getBlockSize())); |             pfs0blockSizeLbl.setText(Integer.toString(ncaFsHeader.getSuperBlockPFS0().getBlockSize())); | ||||||
|             pfs0LayerCountLbl.setText(Integer.toString(ncaFsHeader.getSuperBlockPFS0().getLayerCount())); |             pfs0LayerCountLbl.setText(Integer.toString(ncaFsHeader.getSuperBlockPFS0().getLayerCount())); | ||||||
|             pfs0hashTableOffsetLbl.setText(Long.toString(ncaFsHeader.getSuperBlockPFS0().getHashTableOffset())); |             pfs0hashTableOffsetLbl.setText(Long.toString(ncaFsHeader.getSuperBlockPFS0().getHashTableOffset())); | ||||||
|             pfs0hashTableSizeLbl.setText(Long.toString(ncaFsHeader.getSuperBlockPFS0().getHashTableSize())); |             pfs0hashTableSizeLbl.setText(Long.toString(ncaFsHeader.getSuperBlockPFS0().getHashTableSize())); | ||||||
|             pfs0relativeToSectionStartOffsetLbl.setText(Long.toString(ncaFsHeader.getSuperBlockPFS0().getPfs0offset())); |             pfs0relativeToSectionStartOffsetLbl.setText(Long.toString(ncaFsHeader.getSuperBlockPFS0().getPfs0offset())); | ||||||
|             pfs0sizePfs0Lbl.setText(Long.toString(ncaFsHeader.getSuperBlockPFS0().getPfs0size())); |             pfs0sizePfs0Lbl.setText(Long.toString(ncaFsHeader.getSuperBlockPFS0().getPfs0size())); | ||||||
|             pfs0zeroesTf.setText(byteArrToHexString(ncaFsHeader.getSuperBlockPFS0().getZeroes())); |             pfs0zeroesTf.setText(byteArrToHexStringAsLE(ncaFsHeader.getSuperBlockPFS0().getZeroes())); | ||||||
|             romFsTitlePanel.setDisable(true); |             romFsTitlePanel.setDisable(true); | ||||||
|         } |         } | ||||||
|         else { |         else { | ||||||
|  | @ -341,15 +341,15 @@ public class NCAFsHeaderController { | ||||||
|         indirectInfoMagicLbl.setText(ncaFsHeader.getPatchInfoMagicSection1()); |         indirectInfoMagicLbl.setText(ncaFsHeader.getPatchInfoMagicSection1()); | ||||||
|         indirectInfoVersionLbl.setText(Long.toString(ncaFsHeader.getPatchInfoSizeSection1())); |         indirectInfoVersionLbl.setText(Long.toString(ncaFsHeader.getPatchInfoSizeSection1())); | ||||||
|         indirectInfoEntryCountLbl.setText(Integer.toString(ncaFsHeader.getEntryCountSection1())); |         indirectInfoEntryCountLbl.setText(Integer.toString(ncaFsHeader.getEntryCountSection1())); | ||||||
|         indirectInfoUnknownLbl.setText(byteArrToHexString(ncaFsHeader.getPatchInfoUnknownSection1())); |         indirectInfoUnknownLbl.setText(byteArrToHexStringAsLE(ncaFsHeader.getPatchInfoUnknownSection1())); | ||||||
|         aesCtrExOffsetLbl.setText(Long.toString(ncaFsHeader.getPatchInfoOffsetSection2())); |         aesCtrExOffsetLbl.setText(Long.toString(ncaFsHeader.getPatchInfoOffsetSection2())); | ||||||
|         aesCtrExSizeLbl.setText(Long.toString(ncaFsHeader.getPatchInfoSizeSection2())); |         aesCtrExSizeLbl.setText(Long.toString(ncaFsHeader.getPatchInfoSizeSection2())); | ||||||
|         aesCtrExMagicLbl.setText(ncaFsHeader.getPatchInfoMagicSection2()); |         aesCtrExMagicLbl.setText(ncaFsHeader.getPatchInfoMagicSection2()); | ||||||
|         aesCtrExVersionLbl.setText(Integer.toString(ncaFsHeader.getPatchInfoVersionSection2())); |         aesCtrExVersionLbl.setText(Integer.toString(ncaFsHeader.getPatchInfoVersionSection2())); | ||||||
|         aesCtrExEntryCountLbl.setText(Integer.toString(ncaFsHeader.getEntryCountSection2())); |         aesCtrExEntryCountLbl.setText(Integer.toString(ncaFsHeader.getEntryCountSection2())); | ||||||
|         aesCtrExUnknownLbl.setText(byteArrToHexString(ncaFsHeader.getPatchInfoUnknownSection2())); |         aesCtrExUnknownLbl.setText(byteArrToHexStringAsLE(ncaFsHeader.getPatchInfoUnknownSection2())); | ||||||
|         sectionCTRLbl.setText(byteArrToHexString(ncaFsHeader.getSectionCTR())); |         sectionCTRLbl.setText(byteArrToHexStringAsLE(ncaFsHeader.getSectionCTR())); | ||||||
|         generationLbl.setText(byteArrToHexString(ncaFsHeader.getGeneration())); |         generationLbl.setText(byteArrToHexStringAsLE(ncaFsHeader.getGeneration())); | ||||||
| 
 | 
 | ||||||
|         SparseInfo sparseInfo = ncaFsHeader.getSparseInfo(); |         SparseInfo sparseInfo = ncaFsHeader.getSparseInfo(); | ||||||
|         sparseInfoTableOffsetLbl.setText(Long.toString(sparseInfo.getOffset())); |         sparseInfoTableOffsetLbl.setText(Long.toString(sparseInfo.getOffset())); | ||||||
|  | @ -357,10 +357,10 @@ public class NCAFsHeaderController { | ||||||
|         sparseInfoMagicLbl.setText(sparseInfo.getBktrMagic()); |         sparseInfoMagicLbl.setText(sparseInfo.getBktrMagic()); | ||||||
|         sparseInfoVersionLbl.setText(Long.toString(sparseInfo.getBktrVersion())); |         sparseInfoVersionLbl.setText(Long.toString(sparseInfo.getBktrVersion())); | ||||||
|         sparseInfoEntryCountLbl.setText(Integer.toString(sparseInfo.getBktrEntryCount())); |         sparseInfoEntryCountLbl.setText(Integer.toString(sparseInfo.getBktrEntryCount())); | ||||||
|         sparseInfoUnknownLbl.setText(byteArrToHexString(sparseInfo.getBktrUnknown())); |         sparseInfoUnknownLbl.setText(byteArrToHexStringAsLE(sparseInfo.getBktrUnknown())); | ||||||
|         sparseInfoPhysicalOffsetLbl.setText(Long.toString(sparseInfo.getPhysicalOffset())); |         sparseInfoPhysicalOffsetLbl.setText(Long.toString(sparseInfo.getPhysicalOffset())); | ||||||
|         sparseInfoGenerationLbl.setText(byteArrToHexString(sparseInfo.getGeneration())); |         sparseInfoGenerationLbl.setText(byteArrToHexStringAsLE(sparseInfo.getGeneration())); | ||||||
|         sparseInfoReseredLbl.setText(byteArrToHexString(sparseInfo.getUnknown())); |         sparseInfoReseredLbl.setText(byteArrToHexStringAsLE(sparseInfo.getUnknown())); | ||||||
| 
 | 
 | ||||||
|         CompressionInfo compressionInfo = ncaFsHeader.getCompressionInfo(); |         CompressionInfo compressionInfo = ncaFsHeader.getCompressionInfo(); | ||||||
|         compressionInfoTableOffsetLbl.setText(Long.toString(compressionInfo.getOffset())); |         compressionInfoTableOffsetLbl.setText(Long.toString(compressionInfo.getOffset())); | ||||||
|  | @ -368,15 +368,15 @@ public class NCAFsHeaderController { | ||||||
|         compressionMagicLbl.setText(compressionInfo.getBktrMagic()); |         compressionMagicLbl.setText(compressionInfo.getBktrMagic()); | ||||||
|         compressionInfoVersionLbl.setText(Long.toString(compressionInfo.getBktrVersion())); |         compressionInfoVersionLbl.setText(Long.toString(compressionInfo.getBktrVersion())); | ||||||
|         compressionInfoEntryCountLbl.setText(Integer.toString(compressionInfo.getBktrEntryCount())); |         compressionInfoEntryCountLbl.setText(Integer.toString(compressionInfo.getBktrEntryCount())); | ||||||
|         compressionInfoUnknownLbl.setText(byteArrToHexString(compressionInfo.getBktrUnknown())); |         compressionInfoUnknownLbl.setText(byteArrToHexStringAsLE(compressionInfo.getBktrUnknown())); | ||||||
|         compressionInfoReservedLbl.setText(byteArrToHexString(compressionInfo.getUnknown())); |         compressionInfoReservedLbl.setText(byteArrToHexStringAsLE(compressionInfo.getUnknown())); | ||||||
| 
 | 
 | ||||||
|         MetaDataHashDataInfo metaDataHashDataInfo = ncaFsHeader.getMetaDataHashDataInfo(); |         MetaDataHashDataInfo metaDataHashDataInfo = ncaFsHeader.getMetaDataHashDataInfo(); | ||||||
|         metaDataHashDataTableOffsetLbl.setText(Long.toString(metaDataHashDataInfo.getOffset())); |         metaDataHashDataTableOffsetLbl.setText(Long.toString(metaDataHashDataInfo.getOffset())); | ||||||
|         metaDataHashDataTableSizeLbl.setText(Long.toString(metaDataHashDataInfo.getSize())); |         metaDataHashDataTableSizeLbl.setText(Long.toString(metaDataHashDataInfo.getSize())); | ||||||
|         metaDataHashDataTableHashLbl.setText(byteArrToHexString(metaDataHashDataInfo.getTableHash())); |         metaDataHashDataTableHashLbl.setText(byteArrToHexStringAsLE(metaDataHashDataInfo.getTableHash())); | ||||||
| 
 | 
 | ||||||
|         unknwnEndPaddingTF.setText(byteArrToHexString(ncaFsHeader.getUnknownEndPadding())); |         unknwnEndPaddingTF.setText(byteArrToHexStringAsLE(ncaFsHeader.getUnknownEndPadding())); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     private String getCuteDecHexRepresentation(long value){ |     private String getCuteDecHexRepresentation(long value){ | ||||||
|  |  | ||||||
|  | @ -99,7 +99,7 @@ public class NCASectionContentController implements Initializable { | ||||||
|         for (int i = 0; i < sha256hashList.size(); i++){ |         for (int i = 0; i < sha256hashList.size(); i++){ | ||||||
|             Label numberLblTmp = new Label(String.format("%10d", i)); |             Label numberLblTmp = new Label(String.format("%10d", i)); | ||||||
|             numberLblTmp.setPadding(new Insets(5.0, 5.0, 5.0, 5.0)); |             numberLblTmp.setPadding(new Insets(5.0, 5.0, 5.0, 5.0)); | ||||||
|             Label sha256LblTmp = new Label(Converter.byteArrToHexString(sha256hashList.get(i))); |             Label sha256LblTmp = new Label(Converter.byteArrToHexStringAsLE(sha256hashList.get(i))); | ||||||
|             sha256LblTmp.setPadding(new Insets(5.0, 5.0, 5.0, 5.0)); |             sha256LblTmp.setPadding(new Insets(5.0, 5.0, 5.0, 5.0)); | ||||||
| 
 | 
 | ||||||
|             sha256pane.getChildren().add(new HBox(numberLblTmp, sha256LblTmp)); |             sha256pane.getChildren().add(new HBox(numberLblTmp, sha256LblTmp)); | ||||||
|  |  | ||||||
|  | @ -22,7 +22,7 @@ import javafx.fxml.FXML; | ||||||
| import javafx.scene.control.Label; | import javafx.scene.control.Label; | ||||||
| import libKonogonka.Tools.NCA.NCAHeaderTableEntry; | import libKonogonka.Tools.NCA.NCAHeaderTableEntry; | ||||||
| 
 | 
 | ||||||
| import static libKonogonka.Converter.byteArrToHexString; | import static libKonogonka.Converter.byteArrToHexStringAsLE; | ||||||
| 
 | 
 | ||||||
| public class NCATableController { | public class NCATableController { | ||||||
|     @FXML |     @FXML | ||||||
|  | @ -42,7 +42,7 @@ public class NCATableController { | ||||||
|     public void populateTab(NCAHeaderTableEntry ncaHeaderTableEntry){ |     public void populateTab(NCAHeaderTableEntry ncaHeaderTableEntry){ | ||||||
|         mediaStartOffsetLbl.setText(Long.toString(ncaHeaderTableEntry.getMediaStartOffset())); |         mediaStartOffsetLbl.setText(Long.toString(ncaHeaderTableEntry.getMediaStartOffset())); | ||||||
|         mediaEndOffsetLbl.setText(Long.toString(ncaHeaderTableEntry.getMediaEndOffset())); |         mediaEndOffsetLbl.setText(Long.toString(ncaHeaderTableEntry.getMediaEndOffset())); | ||||||
|         unknwn1Lbl.setText(byteArrToHexString(ncaHeaderTableEntry.getUnknwn1())); |         unknwn1Lbl.setText(byteArrToHexStringAsLE(ncaHeaderTableEntry.getUnknwn1())); | ||||||
|         unknwn2Lbl.setText(byteArrToHexString(ncaHeaderTableEntry.getUnknwn2())); |         unknwn2Lbl.setText(byteArrToHexStringAsLE(ncaHeaderTableEntry.getUnknwn2())); | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -27,7 +27,7 @@ import libKonogonka.Tools.NPDM.ACID.FSAccessControlProvider; | ||||||
| import java.net.URL; | import java.net.URL; | ||||||
| import java.util.ResourceBundle; | import java.util.ResourceBundle; | ||||||
| 
 | 
 | ||||||
| import static libKonogonka.Converter.byteArrToHexString; | import static libKonogonka.Converter.byteArrToHexStringAsLE; | ||||||
| import static libKonogonka.Converter.longToOctString; | import static libKonogonka.Converter.longToOctString; | ||||||
| 
 | 
 | ||||||
| public class FSAccessControlController implements Initializable { | public class FSAccessControlController implements Initializable { | ||||||
|  | @ -186,12 +186,12 @@ public class FSAccessControlController implements Initializable { | ||||||
| 
 | 
 | ||||||
|     public void populateFields(FSAccessControlProvider provider){ |     public void populateFields(FSAccessControlProvider provider){ | ||||||
|         ACID_FSAcccessControlVersionLbl.setText(String.format("0x%02x", provider.getVersion())); |         ACID_FSAcccessControlVersionLbl.setText(String.format("0x%02x", provider.getVersion())); | ||||||
|         ACID_FSAcccessControlPaddingLbl.setText(byteArrToHexString(provider.getPadding())); |         ACID_FSAcccessControlPaddingLbl.setText(byteArrToHexStringAsLE(provider.getPadding())); | ||||||
|         StringBuilder sb = new StringBuilder(longToOctString(provider.getPermissionsBitmask())); |         StringBuilder sb = new StringBuilder(longToOctString(provider.getPermissionsBitmask())); | ||||||
|         sb.reverse(); |         sb.reverse(); | ||||||
|         String mask = sb.toString(); |         String mask = sb.toString(); | ||||||
|         ACID_FSAcccessControlBitbaskLbl.setText(mask); |         ACID_FSAcccessControlBitbaskLbl.setText(mask); | ||||||
|         ACID_FSAcccessControlReservedTf.setText(byteArrToHexString(provider.getReserved())); |         ACID_FSAcccessControlReservedTf.setText(byteArrToHexStringAsLE(provider.getReserved())); | ||||||
| 
 | 
 | ||||||
|         for (int i = 0; i < 64; i++) |         for (int i = 0; i < 64; i++) | ||||||
|             masksArr[i].setText(mask.substring(i, i+1)); |             masksArr[i].setText(mask.substring(i, i+1)); | ||||||
|  |  | ||||||
|  | @ -27,7 +27,7 @@ import libKonogonka.Tools.NPDM.ACI0.FSAccessHeaderProvider; | ||||||
| import java.net.URL; | import java.net.URL; | ||||||
| import java.util.ResourceBundle; | import java.util.ResourceBundle; | ||||||
| 
 | 
 | ||||||
| import static libKonogonka.Converter.byteArrToHexString; | import static libKonogonka.Converter.byteArrToHexStringAsLE; | ||||||
| import static libKonogonka.Converter.longToOctString; | import static libKonogonka.Converter.longToOctString; | ||||||
| 
 | 
 | ||||||
| public class FSAccessHeaderController implements Initializable { | public class FSAccessHeaderController implements Initializable { | ||||||
|  | @ -192,7 +192,7 @@ public class FSAccessHeaderController implements Initializable { | ||||||
| 
 | 
 | ||||||
|     public void populateFields(FSAccessHeaderProvider provider){ |     public void populateFields(FSAccessHeaderProvider provider){ | ||||||
|         versionLbl.setText(Integer.toString(provider.getVersion())); |         versionLbl.setText(Integer.toString(provider.getVersion())); | ||||||
|         paddingLbl.setText(byteArrToHexString(provider.getPadding())); |         paddingLbl.setText(byteArrToHexStringAsLE(provider.getPadding())); | ||||||
|         StringBuilder sb = new StringBuilder(longToOctString(provider.getPermissionsBitmask())); |         StringBuilder sb = new StringBuilder(longToOctString(provider.getPermissionsBitmask())); | ||||||
|         sb.reverse(); |         sb.reverse(); | ||||||
|         String mask = sb.toString(); |         String mask = sb.toString(); | ||||||
|  | @ -201,7 +201,7 @@ public class FSAccessHeaderController implements Initializable { | ||||||
|         sizeContOwnIdLbl.setText(Integer.toString(provider.getContentOwnIdSectionSize())); |         sizeContOwnIdLbl.setText(Integer.toString(provider.getContentOwnIdSectionSize())); | ||||||
|         dataSizePlusContOwnSizeLbl.setText(Integer.toString(provider.getDataNownerSizes())); |         dataSizePlusContOwnSizeLbl.setText(Integer.toString(provider.getDataNownerSizes())); | ||||||
|         sizeOfSaveDataOwnSecLbl.setText(Integer.toString(provider.getSaveDataOwnSectionSize())); |         sizeOfSaveDataOwnSecLbl.setText(Integer.toString(provider.getSaveDataOwnSectionSize())); | ||||||
|         unknownTf.setText(byteArrToHexString(provider.getUnknownData())); |         unknownTf.setText(byteArrToHexStringAsLE(provider.getUnknownData())); | ||||||
| 
 | 
 | ||||||
|         for (int i = 0; i < 64; i++) |         for (int i = 0; i < 64; i++) | ||||||
|             masksArr[i].setText(mask.substring(i, i+1)); |             masksArr[i].setText(mask.substring(i, i+1)); | ||||||
|  |  | ||||||
|  | @ -33,7 +33,7 @@ import java.io.File; | ||||||
| import java.net.URL; | import java.net.URL; | ||||||
| import java.util.ResourceBundle; | import java.util.ResourceBundle; | ||||||
| 
 | 
 | ||||||
| import static libKonogonka.Converter.byteArrToHexString; | import static libKonogonka.Converter.byteArrToHexStringAsLE; | ||||||
| 
 | 
 | ||||||
| public class NPDMController implements ITabController { | public class NPDMController implements ITabController { | ||||||
| 
 | 
 | ||||||
|  | @ -209,18 +209,18 @@ public class NPDMController implements ITabController { | ||||||
|             npdmFileSize.setText("skipping calculation for in-file ticket"); |             npdmFileSize.setText("skipping calculation for in-file ticket"); | ||||||
| 
 | 
 | ||||||
|         magicNumLbl.setText(npdmProvider.getMagicNum()); |         magicNumLbl.setText(npdmProvider.getMagicNum()); | ||||||
|         reserved1Lbl.setText(byteArrToHexString(npdmProvider.getReserved1())); |         reserved1Lbl.setText(byteArrToHexStringAsLE(npdmProvider.getReserved1())); | ||||||
|         MMUFlagsLbl.setText(npdmProvider.getMMUFlags()+" (0b"+String.format("%8s", Integer.toBinaryString(npdmProvider.getMMUFlags() & 0xFF)).replace(' ', '0')+")"); |         MMUFlagsLbl.setText(npdmProvider.getMMUFlags()+" (0b"+String.format("%8s", Integer.toBinaryString(npdmProvider.getMMUFlags() & 0xFF)).replace(' ', '0')+")"); | ||||||
|         reserved2Lbl.setText(String.format("0x%02x", npdmProvider.getReserved2())); |         reserved2Lbl.setText(String.format("0x%02x", npdmProvider.getReserved2())); | ||||||
|         mainThreadPrioLbl.setText(Byte.toString(npdmProvider.getMainThreadPrio())); |         mainThreadPrioLbl.setText(Byte.toString(npdmProvider.getMainThreadPrio())); | ||||||
|         mainThreadCoreNumLbl.setText(Byte.toString(npdmProvider.getMainThreadCoreNum())); |         mainThreadCoreNumLbl.setText(Byte.toString(npdmProvider.getMainThreadCoreNum())); | ||||||
|         reserved3Lbl.setText(byteArrToHexString(npdmProvider.getReserved3())); |         reserved3Lbl.setText(byteArrToHexStringAsLE(npdmProvider.getReserved3())); | ||||||
|         personalMmHeapSizeLbl.setText(Integer.toString(npdmProvider.getPersonalMmHeapSize())); |         personalMmHeapSizeLbl.setText(Integer.toString(npdmProvider.getPersonalMmHeapSize())); | ||||||
|         versionLbl.setText(Integer.toString(npdmProvider.getVersion())); |         versionLbl.setText(Integer.toString(npdmProvider.getVersion())); | ||||||
|         mainThreadStackSizeLbl.setText(Long.toString(npdmProvider.getMainThreadStackSize())); |         mainThreadStackSizeLbl.setText(Long.toString(npdmProvider.getMainThreadStackSize())); | ||||||
|         titleNameTf.setText(npdmProvider.getTitleName()); |         titleNameTf.setText(npdmProvider.getTitleName()); | ||||||
|         productCodeTf.setText(byteArrToHexString(npdmProvider.getProductCode())); |         productCodeTf.setText(byteArrToHexStringAsLE(npdmProvider.getProductCode())); | ||||||
|         reserved4Tf.setText(byteArrToHexString(npdmProvider.getReserved4())); |         reserved4Tf.setText(byteArrToHexStringAsLE(npdmProvider.getReserved4())); | ||||||
|         aci0offsetLbl.setText(Integer.toString(npdmProvider.getAci0offset())); |         aci0offsetLbl.setText(Integer.toString(npdmProvider.getAci0offset())); | ||||||
|         aci0sizeLbl.setText(Integer.toString(npdmProvider.getAci0size())); |         aci0sizeLbl.setText(Integer.toString(npdmProvider.getAci0size())); | ||||||
|         acidOffsetLbl.setText(Integer.toString(npdmProvider.getAcidOffset())); |         acidOffsetLbl.setText(Integer.toString(npdmProvider.getAcidOffset())); | ||||||
|  | @ -228,27 +228,27 @@ public class NPDMController implements ITabController { | ||||||
|         // ACI0 |         // ACI0 | ||||||
|         ACI0Provider aci0 = npdmProvider.getAci0(); |         ACI0Provider aci0 = npdmProvider.getAci0(); | ||||||
|         aci0MagicNumLbl.setText(aci0.getMagicNum()); |         aci0MagicNumLbl.setText(aci0.getMagicNum()); | ||||||
|         aci0Reserved1Lbl.setText(byteArrToHexString(aci0.getReserved1())); |         aci0Reserved1Lbl.setText(byteArrToHexStringAsLE(aci0.getReserved1())); | ||||||
|         aci0TitleIDLbl.setText(byteArrToHexString(aci0.getTitleID())); |         aci0TitleIDLbl.setText(byteArrToHexStringAsLE(aci0.getTitleID())); | ||||||
|         aci0Reserved2Lbl.setText(byteArrToHexString(aci0.getReserved2())); |         aci0Reserved2Lbl.setText(byteArrToHexStringAsLE(aci0.getReserved2())); | ||||||
|         aci0FsAccessHeaderOffsetLbl.setText(Integer.toString(aci0.getFsAccessHeaderOffset())); |         aci0FsAccessHeaderOffsetLbl.setText(Integer.toString(aci0.getFsAccessHeaderOffset())); | ||||||
|         aci0FsAccessHeaderSizeLbl.setText(Integer.toString(aci0.getFsAccessHeaderSize())); |         aci0FsAccessHeaderSizeLbl.setText(Integer.toString(aci0.getFsAccessHeaderSize())); | ||||||
|         aci0ServiceAccessControlOffsetLbl.setText(Integer.toString(aci0.getServiceAccessControlOffset())); |         aci0ServiceAccessControlOffsetLbl.setText(Integer.toString(aci0.getServiceAccessControlOffset())); | ||||||
|         aci0ServiceAccessControlSizeLbl.setText(Integer.toString(aci0.getServiceAccessControlSize())); |         aci0ServiceAccessControlSizeLbl.setText(Integer.toString(aci0.getServiceAccessControlSize())); | ||||||
|         aci0KernelAccessControlOffsetLbl.setText(Integer.toString(aci0.getKernelAccessControlOffset())); |         aci0KernelAccessControlOffsetLbl.setText(Integer.toString(aci0.getKernelAccessControlOffset())); | ||||||
|         aci0KernelAccessControlSizeLbl.setText(Integer.toString(aci0.getKernelAccessControlSize())); |         aci0KernelAccessControlSizeLbl.setText(Integer.toString(aci0.getKernelAccessControlSize())); | ||||||
|         aci0Reserved3Lbl.setText(byteArrToHexString(aci0.getReserved3())); |         aci0Reserved3Lbl.setText(byteArrToHexStringAsLE(aci0.getReserved3())); | ||||||
| 
 | 
 | ||||||
|         ACI0FSAccessHeaderTableController.populateFields(aci0.getFsAccessHeaderProvider()); |         ACI0FSAccessHeaderTableController.populateFields(aci0.getFsAccessHeaderProvider()); | ||||||
|         ACI0ServiceAccessControlTableController.populateFields(aci0.getServiceAccessControlProvider().getCollection()); |         ACI0ServiceAccessControlTableController.populateFields(aci0.getServiceAccessControlProvider().getCollection()); | ||||||
|         ACI0KernelAccessControlTableController.populateFields(aci0.getKernelAccessControlProvider()); |         ACI0KernelAccessControlTableController.populateFields(aci0.getKernelAccessControlProvider()); | ||||||
|         // ACID |         // ACID | ||||||
|         ACIDProvider acid = npdmProvider.getAcid(); |         ACIDProvider acid = npdmProvider.getAcid(); | ||||||
|         acidRsa2048signatureTf.setText(byteArrToHexString(acid.getRsa2048signature())); |         acidRsa2048signatureTf.setText(byteArrToHexStringAsLE(acid.getRsa2048signature())); | ||||||
|         acidRsa2048publicKeyTf.setText(byteArrToHexString(acid.getRsa2048publicKey())); |         acidRsa2048publicKeyTf.setText(byteArrToHexStringAsLE(acid.getRsa2048publicKey())); | ||||||
|         acidMagicNumLbl.setText(acid.getMagicNum()); |         acidMagicNumLbl.setText(acid.getMagicNum()); | ||||||
|         acidDataSizeLbl.setText(Integer.toString(acid.getDataSize())); |         acidDataSizeLbl.setText(Integer.toString(acid.getDataSize())); | ||||||
|         acidReserved1Lbl.setText(byteArrToHexString(acid.getReserved1())); |         acidReserved1Lbl.setText(byteArrToHexStringAsLE(acid.getReserved1())); | ||||||
|         acidFlag1Lbl.setText(String.format("0x%02x", acid.getFlag1())); |         acidFlag1Lbl.setText(String.format("0x%02x", acid.getFlag1())); | ||||||
|         acidFlag2Lbl.setText(String.format("0x%02x", acid.getFlag2())); |         acidFlag2Lbl.setText(String.format("0x%02x", acid.getFlag2())); | ||||||
|         acidFlag3Lbl.setText(String.format("0x%02x", acid.getFlag3())); |         acidFlag3Lbl.setText(String.format("0x%02x", acid.getFlag3())); | ||||||
|  | @ -261,7 +261,7 @@ public class NPDMController implements ITabController { | ||||||
|         acidServiceAccessControlSizeLbl.setText(Integer.toString(acid.getServiceAccessControlSize())); |         acidServiceAccessControlSizeLbl.setText(Integer.toString(acid.getServiceAccessControlSize())); | ||||||
|         acidKernelAccessControlOffsetLbl.setText(Integer.toString(acid.getKernelAccessControlOffset())); |         acidKernelAccessControlOffsetLbl.setText(Integer.toString(acid.getKernelAccessControlOffset())); | ||||||
|         acidKernelAccessControlSizeLbl.setText(Integer.toString(acid.getKernelAccessControlSize())); |         acidKernelAccessControlSizeLbl.setText(Integer.toString(acid.getKernelAccessControlSize())); | ||||||
|         acidReserved2Lbl.setText(byteArrToHexString(acid.getReserved2())); |         acidReserved2Lbl.setText(byteArrToHexStringAsLE(acid.getReserved2())); | ||||||
| 
 | 
 | ||||||
|         ACIDFSAccessControlTableController.populateFields(acid.getFsAccessControlProvider()); |         ACIDFSAccessControlTableController.populateFields(acid.getFsAccessControlProvider()); | ||||||
|         ACIDServiceAccessControlTableController.populateFields(acid.getServiceAccessControlProvider().getCollection()); |         ACIDServiceAccessControlTableController.populateFields(acid.getServiceAccessControlProvider().getCollection()); | ||||||
|  |  | ||||||
|  | @ -36,7 +36,7 @@ import java.net.URL; | ||||||
| import java.util.List; | import java.util.List; | ||||||
| import java.util.ResourceBundle; | import java.util.ResourceBundle; | ||||||
| 
 | 
 | ||||||
| import static libKonogonka.Converter.byteArrToHexString; | import static libKonogonka.Converter.byteArrToHexStringAsLE; | ||||||
| 
 | 
 | ||||||
| public class NSPController implements ITabController { | public class NSPController implements ITabController { | ||||||
| 
 | 
 | ||||||
|  | @ -148,7 +148,7 @@ public class NSPController implements ITabController { | ||||||
|         extractBtn.setDisable(false); |         extractBtn.setDisable(false); | ||||||
|         magicLbl.setText(pfs0.getHeader().getMagic()); |         magicLbl.setText(pfs0.getHeader().getMagic()); | ||||||
|         stringTableSizeLbl.setText(Integer.toString(pfs0.getHeader().getStringTableSize())); |         stringTableSizeLbl.setText(Integer.toString(pfs0.getHeader().getStringTableSize())); | ||||||
|         paddingLbl.setText(byteArrToHexString(pfs0.getHeader().getPadding())); |         paddingLbl.setText(byteArrToHexStringAsLE(pfs0.getHeader().getPadding())); | ||||||
| 
 | 
 | ||||||
|         fileEntryTableSizeLbl.setText(String.format("0x%02x", 0x18* pfs0.getHeader().getFilesCount())); |         fileEntryTableSizeLbl.setText(String.format("0x%02x", 0x18* pfs0.getHeader().getFilesCount())); | ||||||
|         stringsTableSizeLbl.setText(String.format("0x%02x", pfs0.getHeader().getStringTableSize())); |         stringsTableSizeLbl.setText(String.format("0x%02x", pfs0.getHeader().getStringTableSize())); | ||||||
|  |  | ||||||
|  | @ -33,7 +33,7 @@ import java.io.File; | ||||||
| import java.net.URL; | import java.net.URL; | ||||||
| import java.util.ResourceBundle; | import java.util.ResourceBundle; | ||||||
| 
 | 
 | ||||||
| import static libKonogonka.Converter.byteArrToHexString; | import static libKonogonka.Converter.byteArrToHexStringAsLE; | ||||||
| 
 | 
 | ||||||
| public class TIKController implements ITabController { | public class TIKController implements ITabController { | ||||||
|     @FXML |     @FXML | ||||||
|  | @ -109,7 +109,7 @@ public class TIKController implements ITabController { | ||||||
|         else |         else | ||||||
|             tikSizeLbl.setText("skipping calculation for in-file ticket"); |             tikSizeLbl.setText("skipping calculation for in-file ticket"); | ||||||
| 
 | 
 | ||||||
|         sigTypeLbl.setText(byteArrToHexString(tikProvider.getSigType())); |         sigTypeLbl.setText(byteArrToHexStringAsLE(tikProvider.getSigType())); | ||||||
|         switch (sigTypeLbl.getText()){ |         switch (sigTypeLbl.getText()){ | ||||||
|             case "00000100": |             case "00000100": | ||||||
|                 sigTypeStrLbl.setText("RSA_4096 SHA1"); |                 sigTypeStrLbl.setText("RSA_4096 SHA1"); | ||||||
|  | @ -154,21 +154,21 @@ public class TIKController implements ITabController { | ||||||
|                 pSizeLbl.setText("???"); |                 pSizeLbl.setText("???"); | ||||||
|                 break; |                 break; | ||||||
|         } |         } | ||||||
|         signatureTF.setText(byteArrToHexString(tikProvider.getSignature())); |         signatureTF.setText(byteArrToHexStringAsLE(tikProvider.getSignature())); | ||||||
| 
 | 
 | ||||||
|         issuerTf.setText(tikProvider.getIssuer()); |         issuerTf.setText(tikProvider.getIssuer()); | ||||||
|         titleKeyBlockStartTf.setText(byteArrToHexString(tikProvider.getTitleKeyBlockStartingBytes())); |         titleKeyBlockStartTf.setText(byteArrToHexStringAsLE(tikProvider.getTitleKeyBlockStartingBytes())); | ||||||
|         titleKeyBlockEndTf.setText(byteArrToHexString(tikProvider.getTitleKeyBlockEndingBytes())); |         titleKeyBlockEndTf.setText(byteArrToHexStringAsLE(tikProvider.getTitleKeyBlockEndingBytes())); | ||||||
|         unknown1Lbl.setText(String.format("0x%02x", tikProvider.getUnknown1())); |         unknown1Lbl.setText(String.format("0x%02x", tikProvider.getUnknown1())); | ||||||
|         titleKeyTypeLbl.setText(String.format("0x%02x", tikProvider.getTitleKeyType())); |         titleKeyTypeLbl.setText(String.format("0x%02x", tikProvider.getTitleKeyType())); | ||||||
|         unknown2Lbl.setText(byteArrToHexString(tikProvider.getUnknown2())); |         unknown2Lbl.setText(byteArrToHexStringAsLE(tikProvider.getUnknown2())); | ||||||
|         masterKeyRevisionLbl.setText(String.format("0x%02x", tikProvider.getMasterKeyRevision())); |         masterKeyRevisionLbl.setText(String.format("0x%02x", tikProvider.getMasterKeyRevision())); | ||||||
|         unknown3Lbl.setText(byteArrToHexString(tikProvider.getUnknown3())); |         unknown3Lbl.setText(byteArrToHexStringAsLE(tikProvider.getUnknown3())); | ||||||
|         ticketIdLbl.setText(byteArrToHexString(tikProvider.getTicketId())); |         ticketIdLbl.setText(byteArrToHexStringAsLE(tikProvider.getTicketId())); | ||||||
|         deviceIdLbl.setText(byteArrToHexString(tikProvider.getDeviceId())); |         deviceIdLbl.setText(byteArrToHexStringAsLE(tikProvider.getDeviceId())); | ||||||
|         rightsIdTf.setText(byteArrToHexString(tikProvider.getRightsId())); |         rightsIdTf.setText(byteArrToHexStringAsLE(tikProvider.getRightsId())); | ||||||
|         accountIdLbl.setText(byteArrToHexString(tikProvider.getAccountId())); |         accountIdLbl.setText(byteArrToHexStringAsLE(tikProvider.getAccountId())); | ||||||
|         unknown4Lbl.setText(byteArrToHexString(tikProvider.getUnknown4())); |         unknown4Lbl.setText(byteArrToHexStringAsLE(tikProvider.getUnknown4())); | ||||||
|         btnImport.setDisable(false); |         btnImport.setDisable(false); | ||||||
|     } |     } | ||||||
|     @Override |     @Override | ||||||
|  |  | ||||||
|  | @ -35,7 +35,7 @@ import java.net.URL; | ||||||
| import java.util.List; | import java.util.List; | ||||||
| import java.util.ResourceBundle; | import java.util.ResourceBundle; | ||||||
| 
 | 
 | ||||||
| import static libKonogonka.Converter.byteArrToHexString; | import static libKonogonka.Converter.byteArrToHexStringAsLE; | ||||||
| 
 | 
 | ||||||
| public class HFSBlockController implements Initializable { | public class HFSBlockController implements Initializable { | ||||||
|     @FXML |     @FXML | ||||||
|  | @ -96,7 +96,7 @@ public class HFSBlockController implements Initializable { | ||||||
|             hfs0mainMagicNumLbl.setText(hfs0Provider.getMagic()); |             hfs0mainMagicNumLbl.setText(hfs0Provider.getMagic()); | ||||||
|             hfs0mainFileCntLbl.setText(Integer.toString(hfs0Provider.getFilesCount())); |             hfs0mainFileCntLbl.setText(Integer.toString(hfs0Provider.getFilesCount())); | ||||||
|             hfs0mainStrTblSizeLbl.setText(Integer.toString(hfs0Provider.getStringTableSize())); |             hfs0mainStrTblSizeLbl.setText(Integer.toString(hfs0Provider.getStringTableSize())); | ||||||
|             hfs0mainPaddingLbl.setText(byteArrToHexString(hfs0Provider.getPadding())); |             hfs0mainPaddingLbl.setText(byteArrToHexStringAsLE(hfs0Provider.getPadding())); | ||||||
|             hfs0mainRawFileDataStartLbl.setText(Long.toString(hfs0Provider.getRawFileDataStart())); |             hfs0mainRawFileDataStartLbl.setText(Long.toString(hfs0Provider.getRawFileDataStart())); | ||||||
|             hfs0tableFilesListMainController.setContentToTable(hfs0Provider); |             hfs0tableFilesListMainController.setContentToTable(hfs0Provider); | ||||||
|             if (hfs0Provider.getFilesCount() > 0) |             if (hfs0Provider.getFilesCount() > 0) | ||||||
|  |  | ||||||
|  | @ -32,7 +32,7 @@ import java.io.File; | ||||||
| import java.net.URL; | import java.net.URL; | ||||||
| import java.util.ResourceBundle; | import java.util.ResourceBundle; | ||||||
| 
 | 
 | ||||||
| import static libKonogonka.Converter.byteArrToHexString; | import static libKonogonka.Converter.byteArrToHexStringAsLE; | ||||||
| 
 | 
 | ||||||
| public class XCIController implements ITabController { | public class XCIController implements ITabController { | ||||||
| 
 | 
 | ||||||
|  | @ -189,11 +189,11 @@ public class XCIController implements ITabController { | ||||||
|     private void populateFields(XCIProvider xci){ |     private void populateFields(XCIProvider xci){ | ||||||
|         if (xci != null){ |         if (xci != null){ | ||||||
|             /* Header */ |             /* Header */ | ||||||
|             rsa2048pkcs1TF.setText(byteArrToHexString(xci.getGCHeader().getRsa2048PKCS1sig())); |             rsa2048pkcs1TF.setText(byteArrToHexStringAsLE(xci.getGCHeader().getRsa2048PKCS1sig())); | ||||||
|             //RainbowHexDump.hexDumpUTF8(xci.getGCHeader().getRsa2048PKCS1sig()); |             //RainbowHexDump.hexDumpUTF8(xci.getGCHeader().getRsa2048PKCS1sig()); | ||||||
|             headLbl.setText(Boolean.toString(xci.getGCHeader().isMagicHeadOk())); |             headLbl.setText(Boolean.toString(xci.getGCHeader().isMagicHeadOk())); | ||||||
|             //System.out.println(xci.getGCHeader().isMagicHeadOk()); |             //System.out.println(xci.getGCHeader().isMagicHeadOk()); | ||||||
|             secureAreaStartAddrTF.setText(byteArrToHexString(xci.getGCHeader().getSecureAreaStartAddr())); |             secureAreaStartAddrTF.setText(byteArrToHexStringAsLE(xci.getGCHeader().getSecureAreaStartAddr())); | ||||||
|             //System.out.println(xci.getGCHeader().isSecureAreaStartAddrOk()); |             //System.out.println(xci.getGCHeader().isSecureAreaStartAddrOk()); | ||||||
|             bkupAreaStartAddrLbl.setText(Boolean.toString(xci.getGCHeader().isBkupAreaStartAddrOk())); |             bkupAreaStartAddrLbl.setText(Boolean.toString(xci.getGCHeader().isBkupAreaStartAddrOk())); | ||||||
|             //System.out.println(xci.getGCHeader().isBkupAreaStartAddrOk()); |             //System.out.println(xci.getGCHeader().isBkupAreaStartAddrOk()); | ||||||
|  | @ -231,19 +231,19 @@ public class XCIController implements ITabController { | ||||||
|             //System.out.println(String.format("%02x", xci.getGCHeader().getGcVersion())); |             //System.out.println(String.format("%02x", xci.getGCHeader().getGcVersion())); | ||||||
|             gcFlags.setText(String.format("%02x", xci.getGCHeader().getGcFlags())); |             gcFlags.setText(String.format("%02x", xci.getGCHeader().getGcFlags())); | ||||||
|             //System.out.println(String.format("%02x", xci.getGCHeader().getGcFlags())); |             //System.out.println(String.format("%02x", xci.getGCHeader().getGcFlags())); | ||||||
|             pkgIdTF.setText(byteArrToHexString(xci.getGCHeader().getPkgID())); |             pkgIdTF.setText(byteArrToHexStringAsLE(xci.getGCHeader().getPkgID())); | ||||||
|             //RainbowHexDump.hexDumpUTF8(xci.getGCHeader().getPkgID()); |             //RainbowHexDump.hexDumpUTF8(xci.getGCHeader().getPkgID()); | ||||||
|             vDataEndAddrLbl.setText(Long.toString(xci.getGCHeader().getValDataEndAddr())); |             vDataEndAddrLbl.setText(Long.toString(xci.getGCHeader().getValDataEndAddr())); | ||||||
|             //System.out.println(xci.getGCHeader().getValDataEndAddr()); |             //System.out.println(xci.getGCHeader().getValDataEndAddr()); | ||||||
|             gcInfoIVTF.setText(byteArrToHexString(xci.getGCHeader().getGcInfoIV())); |             gcInfoIVTF.setText(byteArrToHexStringAsLE(xci.getGCHeader().getGcInfoIV())); | ||||||
|             //RainbowHexDump.hexDumpUTF8(xci.getGCHeader().getGcInfoIV()); |             //RainbowHexDump.hexDumpUTF8(xci.getGCHeader().getGcInfoIV()); | ||||||
|             hfs0partOffLbl.setText(Long.toString(xci.getGCHeader().getHfs0partOffset())); |             hfs0partOffLbl.setText(Long.toString(xci.getGCHeader().getHfs0partOffset())); | ||||||
|             //System.out.println(xci.getGCHeader().getHfs0partOffset()); |             //System.out.println(xci.getGCHeader().getHfs0partOffset()); | ||||||
|             hfs0hdrSizeLbl.setText(Long.toString(xci.getGCHeader().getHfs0headerSize())); |             hfs0hdrSizeLbl.setText(Long.toString(xci.getGCHeader().getHfs0headerSize())); | ||||||
|             //System.out.println(xci.getGCHeader().getHfs0headerSize()); |             //System.out.println(xci.getGCHeader().getHfs0headerSize()); | ||||||
|             Hfs0headerSHA256Lbl.setText(byteArrToHexString(xci.getGCHeader().getHfs0headerSHA256())); |             Hfs0headerSHA256Lbl.setText(byteArrToHexStringAsLE(xci.getGCHeader().getHfs0headerSHA256())); | ||||||
|             //RainbowHexDump.hexDumpUTF8(xci.getGCHeader().getHfs0headerSHA256()); |             //RainbowHexDump.hexDumpUTF8(xci.getGCHeader().getHfs0headerSHA256()); | ||||||
|             Hfs0initDataSHA256Lbl.setText(byteArrToHexString(xci.getGCHeader().getHfs0initDataSHA256())); |             Hfs0initDataSHA256Lbl.setText(byteArrToHexStringAsLE(xci.getGCHeader().getHfs0initDataSHA256())); | ||||||
|             //RainbowHexDump.hexDumpUTF8(xci.getGCHeader().getHfs0initDataSHA256() ); |             //RainbowHexDump.hexDumpUTF8(xci.getGCHeader().getHfs0initDataSHA256() ); | ||||||
|             secureModeFlagLbl.setText(xci.getGCHeader().isSecureModeFlagOk()+" ("+xci.getGCHeader().getSecureModeFlag()+")"); |             secureModeFlagLbl.setText(xci.getGCHeader().isSecureModeFlagOk()+" ("+xci.getGCHeader().getSecureModeFlag()+")"); | ||||||
|             //System.out.print(xci.getGCHeader().getSecureModeFlag()); |             //System.out.print(xci.getGCHeader().getSecureModeFlag()); | ||||||
|  | @ -254,12 +254,12 @@ public class XCIController implements ITabController { | ||||||
|             keyFlagLbl.setText(xci.getGCHeader().iskeyFlagOk()+" ("+xci.getGCHeader().getKeyFlag()+")"); |             keyFlagLbl.setText(xci.getGCHeader().iskeyFlagOk()+" ("+xci.getGCHeader().getKeyFlag()+")"); | ||||||
|             //System.out.print(xci.getGCHeader().getKeyFlag()); |             //System.out.print(xci.getGCHeader().getKeyFlag()); | ||||||
|             //System.out.println(xci.getGCHeader().iskeyFlagOk()); |             //System.out.println(xci.getGCHeader().iskeyFlagOk()); | ||||||
|             normAreaEndAddrTF.setText(byteArrToHexString(xci.getGCHeader().getNormAreaEndAddr())); |             normAreaEndAddrTF.setText(byteArrToHexStringAsLE(xci.getGCHeader().getNormAreaEndAddr())); | ||||||
|             //System.out.println(xci.getGCHeader().isNormAreaEndAddrOk()); |             //System.out.println(xci.getGCHeader().isNormAreaEndAddrOk()); | ||||||
| 
 | 
 | ||||||
|             /* GC Info */ |             /* GC Info */ | ||||||
|             fwVersionLbl.setText(Long.toString(xci.getGCInfo().getFwVersion())); |             fwVersionLbl.setText(Long.toString(xci.getGCInfo().getFwVersion())); | ||||||
|             String tempACF = byteArrToHexString(xci.getGCInfo().getAccessCtrlFlags()); |             String tempACF = byteArrToHexStringAsLE(xci.getGCInfo().getAccessCtrlFlags()); | ||||||
|             if (tempACF.equals("1100a100")) |             if (tempACF.equals("1100a100")) | ||||||
|                 accessCtrlFlagsLbl.setText("25Mhz [0x1100a100]"); |                 accessCtrlFlagsLbl.setText("25Mhz [0x1100a100]"); | ||||||
|             else if(tempACF.equals("1000a100")) |             else if(tempACF.equals("1000a100")) | ||||||
|  | @ -270,25 +270,25 @@ public class XCIController implements ITabController { | ||||||
|             readWaitTime2Lbl.setText(Long.toString(xci.getGCInfo().getReadWaitTime2())); |             readWaitTime2Lbl.setText(Long.toString(xci.getGCInfo().getReadWaitTime2())); | ||||||
|             writeWaitTime1.setText(Long.toString(xci.getGCInfo().getWriteWaitTime1())); |             writeWaitTime1.setText(Long.toString(xci.getGCInfo().getWriteWaitTime1())); | ||||||
|             writeWaitTime2.setText(Long.toString(xci.getGCInfo().getWriteWaitTime2())); |             writeWaitTime2.setText(Long.toString(xci.getGCInfo().getWriteWaitTime2())); | ||||||
|             fwModeTF.setText(byteArrToHexString(xci.getGCInfo().getFwMode())); |             fwModeTF.setText(byteArrToHexStringAsLE(xci.getGCInfo().getFwMode())); | ||||||
|             cupVersionTF.setText(byteArrToHexString(xci.getGCInfo().getCupVersion())); |             cupVersionTF.setText(byteArrToHexStringAsLE(xci.getGCInfo().getCupVersion())); | ||||||
|             emptyPadding1Lbl.setText(Boolean.toString(xci.getGCInfo().isEmptyPadding1())); |             emptyPadding1Lbl.setText(Boolean.toString(xci.getGCInfo().isEmptyPadding1())); | ||||||
|             emptyPadding1TF.setText(byteArrToHexString(xci.getGCInfo().getEmptyPadding1())); |             emptyPadding1TF.setText(byteArrToHexStringAsLE(xci.getGCInfo().getEmptyPadding1())); | ||||||
|             updPartHashTF.setText(byteArrToHexString(xci.getGCInfo().getUpdPartHash())); |             updPartHashTF.setText(byteArrToHexStringAsLE(xci.getGCInfo().getUpdPartHash())); | ||||||
|             cupIDTF.setText(byteArrToHexString(xci.getGCInfo().getCupID())); |             cupIDTF.setText(byteArrToHexStringAsLE(xci.getGCInfo().getCupID())); | ||||||
|             emptyPadding2Lbl.setText(Boolean.toString(xci.getGCInfo().isEmptyPadding2())); |             emptyPadding2Lbl.setText(Boolean.toString(xci.getGCInfo().isEmptyPadding2())); | ||||||
|             emptyPadding2TF.setText(byteArrToHexString(xci.getGCInfo().getEmptyPadding2())); |             emptyPadding2TF.setText(byteArrToHexStringAsLE(xci.getGCInfo().getEmptyPadding2())); | ||||||
| 
 | 
 | ||||||
|             /* Certificate  */ |             /* Certificate  */ | ||||||
|             rsa2048PKCS1sigCertTF.setText(byteArrToHexString(xci.getGCCert().getRsa2048PKCS1sig())); |             rsa2048PKCS1sigCertTF.setText(byteArrToHexStringAsLE(xci.getGCCert().getRsa2048PKCS1sig())); | ||||||
|             magicCertCertTF.setText(byteArrToHexString(xci.getGCCert().getMagicCert())); |             magicCertCertTF.setText(byteArrToHexStringAsLE(xci.getGCCert().getMagicCert())); | ||||||
|             magicCertCertOkLbl.setText(Boolean.toString(xci.getGCCert().isMagicCertOk())); |             magicCertCertOkLbl.setText(Boolean.toString(xci.getGCCert().isMagicCertOk())); | ||||||
|             unknown1CertTF.setText(byteArrToHexString(xci.getGCCert().getUnknown1())); |             unknown1CertTF.setText(byteArrToHexStringAsLE(xci.getGCCert().getUnknown1())); | ||||||
|             kekIndexCertLbl.setText(String.format("%02x", xci.getGCCert().getKekIndex())); |             kekIndexCertLbl.setText(String.format("%02x", xci.getGCCert().getKekIndex())); | ||||||
|             unknown2CertTF.setText(byteArrToHexString(xci.getGCCert().getUnknown2())); |             unknown2CertTF.setText(byteArrToHexStringAsLE(xci.getGCCert().getUnknown2())); | ||||||
|             deviceIDCertTF.setText(byteArrToHexString(xci.getGCCert().getDeviceID())); |             deviceIDCertTF.setText(byteArrToHexStringAsLE(xci.getGCCert().getDeviceID())); | ||||||
|             unknown3CertTF.setText(byteArrToHexString(xci.getGCCert().getUnknown3())); |             unknown3CertTF.setText(byteArrToHexStringAsLE(xci.getGCCert().getUnknown3())); | ||||||
|             encryptedDataCertTF.setText(byteArrToHexString(xci.getGCCert().getEncryptedData())); |             encryptedDataCertTF.setText(byteArrToHexStringAsLE(xci.getGCCert().getEncryptedData())); | ||||||
| 
 | 
 | ||||||
|             /* HFS0 */ |             /* HFS0 */ | ||||||
|             HFSBlockMainController.populateTab(xci.getHfs0ProviderMain()); |             HFSBlockMainController.populateTab(xci.getHfs0ProviderMain()); | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Dmitry Isaenko
						Dmitry Isaenko