public static void Main(string[] args) { var options = CommandLine.Parser.Default.ParseArguments <Options.Options>(args); options.WithParsed(opts => { var result = RC4Cracker.DecryptToStr( opts.PlainText, opts.CipherHexText, opts.UnknownHexText ); Console.WriteLine("Decrypted: {0}", result); if (opts.OutPutFile != null) { try { File.WriteAllText(opts.OutPutFile, result); Console.WriteLine("Decrypted text written to: {0}", opts.OutPutFile); } catch (IOException e) { Console.Error.WriteLine("Error writing to file \"{0}\"\n{1}", opts.OutPutFile, e); } } Environment.Exit(0); }); }
public void KnownPlainTextAttackTest(string pt, string ct, string unknown) { var result = RC4Cracker.DecryptToStr(pt, ct, unknown); var match = regexForCrackerOutputValidation.Match(result); Console.WriteLine("CRACKED: " + result); Assert.True(match.Success); }