public static byte[] Deserialize(ContentIdentifier Identifier, Guid ApplicationID, DirectoryInfo dInfo) { Rfc2898DeriveBytes pwdGen = new Rfc2898DeriveBytes(Identifier.CombinedID, ApplicationID.ToByteArray(), 1000); RijndaelManaged rjn = new RijndaelManaged(); string dir = dInfo.FullName; using (ICryptoTransform eTransform = rjn.CreateDecryptor(pwdGen.GetBytes(32), pwdGen.GetBytes(16))) { using (FileStream ms = new FileStream(Path.Combine(dir, Identifier.CreateItemIDString()), FileMode.Open)) { using (CryptoStream cs = new CryptoStream(ms, eTransform, CryptoStreamMode.Read)) { int len = (((cs.ReadByte() | (cs.ReadByte() << 8)) | (cs.ReadByte() << 0x10)) | (cs.ReadByte() << 0x18)); byte[] data = new byte[len]; cs.Read(data, 0, data.Length); return data; } } } }