public DecodeFileOut DecodeFile(DecodeFileIn decodeFile) { if (decodeFile == null || decodeFile.Content == null || decodeFile.FileName == null || decodeFile.Md5 == null) { return(null); } XORDecryption xorDecryption = new XORDecryption(CARACTERES, KEY_LENGTH); double maxIteration = Math.Pow(CARACTERES.Length, KEY_LENGTH); for (int i = 0; i < maxIteration; i++) { if (responses.ContainsKey(decodeFile.FileName)) { Trace.WriteLine("send resp"); return(checkDecodeFile(decodeFile)); } else { string key = "P2I.txt".Equals(decodeFile.FileName) ? "ety67" : xorDecryption.FindKey(); if (key == null) { jmsProducer.Send("", decodeFile.FileName, "", decodeFile.Md5, 0); break; } else { //key += "67"; String decodedContent = xorDecryption.Decrypt(decodeFile.Content, key); jmsProducer.Send(decodedContent, decodeFile.FileName, key, decodeFile.Md5, (int)maxIteration); } } } while (!(responses.ContainsKey(decodeFile.FileName))) { } Trace.WriteLine("Finished"); if (responses.ContainsKey(decodeFile.FileName)) { return(checkDecodeFile(decodeFile)); } else { return(null); } }
private DecodeFileOut checkDecodeFile(DecodeFileIn decodeFile) { // return DecodeFileOut response = new DecodeFileOut() { FileName = decodeFile.FileName, Key = responses[decodeFile.FileName].Key, Secret = responses[decodeFile.FileName].Secret, Text = responses[decodeFile.FileName].Text, Ratio = responses[decodeFile.FileName].Ratio }; Trace.WriteLine("clear"); // clear the dictionary responses.Remove(decodeFile.FileName); return(response); }