private static int DoDecrypt() { Logger.WriteLog("========== SamFirm Firmware Decrypter ==========\n", false); Logger.WriteLog("Decrypting file " + CmdLine.file + "...", false); CmdLine.CreateProgressbar(); if (CmdLine.file.EndsWith(".enc2")) { Crypto.SetDecryptKey(CmdLine.region, CmdLine.model, CmdLine.version); } else if (CmdLine.file.EndsWith(".enc4")) { Crypto.SetDecryptKey(CmdLine.version, CmdLine.logicValue); } if (Crypto.Decrypt(CmdLine.file, Path.GetFileNameWithoutExtension(CmdLine.file), false) != 0) { Logger.WriteLog("\nError decrypting file", false); Logger.WriteLog("Please make sure the filename is not modified and verify the version / logicValue argument", false); File.Delete(Path.GetFileNameWithoutExtension(CmdLine.file)); return(3); } Logger.WriteLog("\nDecrypting successful", false); return(0); }
private static int DoDownload() { Logger.WriteLog("========== SamFirm Firmware Downloader ==========\n", false); Command.Firmware fw; if (string.IsNullOrEmpty(CmdLine.version)) { fw = Command.UpdateCheckAuto(CmdLine.model, CmdLine.region, CmdLine.binary); if (fw.FetchAttempts == 0) { return(5); } } else { fw = Command.UpdateCheck(CmdLine.model, CmdLine.region, CmdLine.version, CmdLine.binary, false); } if (fw.Version == null) { return(2); } string str = Path.Combine(CmdLine.folder, fw.Filename); Logger.WriteLog("Downloading...\n", false); CmdLine.CreateProgressbar(); int num1; do { Utility.ReconnectCmdLine(); Utility.ReconnectDownload = false; num1 = Command.Download(fw.Path, fw.Filename, fw.Version, fw.Region, fw.Model_Type, str, fw.Size, false); }while (Utility.ReconnectDownload); if (num1 != 200 && num1 != 206) { Logger.WriteLog("Error: " + (object)num1, false); return(4); } if (CmdLine.autodecrypt) { if (str.EndsWith(".enc2")) { Crypto.SetDecryptKey(fw.Region, fw.Model, fw.Version); } else if (str.EndsWith(".enc4")) { if (fw.BinaryNature == 1) { Crypto.SetDecryptKey(fw.Version, fw.LogicValueFactory); } else { Crypto.SetDecryptKey(fw.Version, fw.LogicValueHome); } } Logger.WriteLog("\nDecrypting...\n", false); CmdLine.CreateProgressbar(); CmdLine.fwdest = Path.Combine(Path.GetDirectoryName(str), Path.GetFileNameWithoutExtension(fw.Filename)); int num2 = Crypto.Decrypt(str, CmdLine.fwdest, false); File.Delete(str); if (num2 != 0) { File.Delete(CmdLine.fwdest); return(3); } } if (!string.IsNullOrEmpty(CmdLine.metafile)) { CmdLine.SaveMeta(fw); } Logger.WriteLog("\nFinished", false); return(0); }