public static void SendMessage(ref StreamWriter streamWriter, string content, CustomedAES aes) { string res = aes.Encrypt(content); streamWriter.WriteLine(res + streamWriter.NewLine + aes.Encrypt("L2KDB:Basic:EndOfCurrentTransmission")); streamWriter.Flush(); }
private static void SaveDescription(DatabaseDescription description, string location, CryptographyCredential credential) { if (credential == null) { File.WriteAllText(location, "PUBLIC:" + description.isPublic); } else if (credential.Key == "") { File.WriteAllText(location, "PUBLIC:" + description.isPublic); } else { CustomedAES aes = new CustomedAES(); aes.Key = credential.Key; aes.IV = credential.IV; File.WriteAllText(location, aes.Encrypt("PUBLIC:" + description.isPublic)); } }
public void SingleCycle() { List <string> QueuedID1s = new List <string>(); Queue <DatabaseOperation> CopiedOperations = new Queue <DatabaseOperation>(OperationQueue.ToArray()); OperationQueue.Clear();// Clear the queue to receive more operation applications without data lose; //OperationQueue = new ConcurrentQueue<DatabaseOperation>(); //Clear() does not exist in ConcurrentQueue, so, directly replace it with new object. foreach (var item in CopiedOperations) { string id1 = item.id1; string id2 = item.id2; if (!QueuedID1s.Contains(id1)) { ; } QueuedID1s.Add(id1); //if (item.GetType() == typeof(DBOperationSave)) //{ // //if* //} //else if (item.GetType() == typeof(DBOperationRemoveID2)) //{ // //data[item.id1].Remove(item.id2); //} } { foreach (var item in QueuedID1s) { //Regenerate an ID-1 file. Dictionary <string, object> OriginData = data[item]; FileInfo fi = new FileInfo(Path.Combine(FormDirectory.FullName, item + ".lite-db")); File.WriteAllText(fi.FullName, "");//Clear the file. File.WriteAllText(fi.FullName, $"#Database.Ver={DatabaseVersion.Build}\r\n#Form={CurrentForm}{Environment.NewLine}#Flavor={Flavor}{Environment.NewLine}"); String toWrite = ""; StringBuilder builder = new StringBuilder(toWrite); var textWriter = new StringWriter(builder); foreach (var SingleData in OriginData) { textWriter.WriteLine($"#DATA:" + SingleData.Key); if (cryptographyCredential.Key == "") { textWriter.WriteLine((string)SingleData.Value); } else { textWriter.WriteLine(aes.Encrypt((string)SingleData.Value)); } textWriter.WriteLine("DATA#"); } File.AppendAllText(fi.FullName, builder.ToString()); try { textWriter.Close(); } catch (Exception) { } try { textWriter.Dispose(); } catch (Exception) { } } } }