private static DataNode ReadEncrypted(BinaryReader reader) { DataNode result = null; using (RijndaelManaged rijndaelManaged = new RijndaelManaged()) { rijndaelManaged.Key = DataNodeBinary.m_EncryptKey; rijndaelManaged.IV = DataNodeBinary.m_EncryptVector; ICryptoTransform cryptoTransform = rijndaelManaged.CreateDecryptor(rijndaelManaged.Key, rijndaelManaged.IV); CryptoStream input = new CryptoStream(reader.BaseStream, cryptoTransform, CryptoStreamMode.Read); BinaryReader binaryReader = new BinaryReader(input); int num = binaryReader.ReadInt32(); switch (num) { case 1: result = DataNodeBinary.ReadFromBinary(binaryReader, null); break; case 2: result = DataNodeBinary.ReadCompressed(binaryReader); break; case 3: Debug.LogError("Double encryption!!!"); break; default: Debug.LogError("Unknown version " + num); break; } cryptoTransform.Dispose(); } return(result); }
public static DataNode FromBinaryStream(BinaryReader reader) { string text = reader.ReadString(); if (text != "DEF2") { Debug.LogError("Unknown header " + text); return(null); } int num = reader.ReadInt32(); switch (num) { case 1: return(DataNodeBinary.ReadFromBinary(reader, null)); case 2: return(DataNodeBinary.ReadCompressed(reader)); case 3: return(DataNodeBinary.ReadEncrypted(reader)); default: Debug.LogError("Unknown version " + num); return(null); } }
private static DataNode ReadCompressed(BinaryReader reader) { List <string> list = DataNodeBinary.ReadHeader(reader); if (list == null) { return(null); } return(DataNodeBinary.ReadFromBinary(reader, list)); }
private static DataNode ReadSubNodes(BinaryReader br, bool isList, List <string> header) { DataNode dataNode = new DataNode(DataNodeBinary.ReadString(br, header)); dataNode.IsList = isList; int num = br.ReadInt32(); for (int i = 0; i < num; i++) { DataNode node = DataNodeBinary.ReadFromBinary(br, header); dataNode.AddNode(node); } return(dataNode); }