diff --git a/NDecrypt/Program.cs b/NDecrypt/Program.cs index 81f6512..24e0c65 100644 --- a/NDecrypt/Program.cs +++ b/NDecrypt/Program.cs @@ -14,11 +14,11 @@ namespace NDecrypt } bool? encrypt = null; - if (args[0] == "decrypt") + if (args[0] == "decrypt" || args[0] == "d") { encrypt = false; } - else if (args[0] == "encrypt") + else if (args[0] == "encrypt" || args[0] == "e") { encrypt = true; } @@ -59,6 +59,10 @@ namespace NDecrypt Console.Read(); } + /// + /// Display a basic help text + /// + /// Additional error text to display, can be null to ignore private static void DisplayHelp(string err = null) { if (!string.IsNullOrWhiteSpace(err)) @@ -75,6 +79,35 @@ namespace NDecrypt N3DS, } + /// + /// Derive the encryption tool to be used for the given file + /// + /// Filename to derive the tool from + /// True if we are encrypting the file, false otherwise + /// rue if we are using development keys, false otherwise + /// + private static ITool DeriveTool(string filename, bool encrypt, bool development) + { + RomType type = DetermineRomType(filename); + switch(type) + { + case RomType.NDS: + case RomType.NDSi: + return new DSTool(filename, encrypt); + case RomType.N3DS: + return new ThreeDSTool(filename, development, encrypt); + case RomType.NULL: + default: + Console.WriteLine($"Unrecognized file format for {filename}. Expected *.nds, *.srl, *.dsi, *.3ds"); + return null; + } + } + + /// + /// Determine the rom type from the filename extension + /// + /// Filename to derive the type from + /// RomType value, if possible private static RomType DetermineRomType(string filename) { if (filename.EndsWith(".nds", StringComparison.OrdinalIgnoreCase) @@ -89,22 +122,5 @@ namespace NDecrypt return RomType.NULL; } - - private static ITool DeriveTool(string filename, bool encrypt, bool development) - { - RomType type = DetermineRomType(filename); - switch(type) - { - case RomType.NDS: - case RomType.NDSi: - return new DSTool(filename, encrypt); - case RomType.N3DS: - return new ThreeDSTool(filename, development, encrypt); - case RomType.NULL: - default: - Console.WriteLine($"Unrecognized file format for {filename}. Expected *.nds, *.dsi, *.3ds"); - return null; - } - } } }