Example #1
0
        public void CryptoFunctionsEncryptAndDecryptAsExpected()
        {
            _file = File.Open(Application.dataPath + _filePath, FileMode.Open);

            var encryptedResult = PersistantDataOperationFunctions.EncryptFileStream(_file, _key, _iV);
            var decryptedResult = PersistantDataOperationFunctions.DecryptFileStream(new MemoryStream(encryptedResult), _key, _iV);
            var stream          = new MemoryStream(decryptedResult);
            var bf = new BinaryFormatter();

            var actualFirst = (DataBlockA)bf.Deserialize(stream);

            Assert.AreEqual(_firstData.CurrentIntValue, actualFirst.CurrentIntValue);
            Assert.AreEqual(_firstData.CurrentStringValue, actualFirst.CurrentStringValue);

            var actualSecond = (DataBlockB)bf.Deserialize(stream);

            Assert.AreEqual(_secondData.SomeStringValue, actualSecond.SomeStringValue);

            _file.Close();
        }
        public static void WriteCurrentSave(string savePath, IPersistenceServiceInterface persistenceService)
        {
            using (var writeStream = new MemoryStream())
            {
                var binaryFormatter = new BinaryFormatter();

                binaryFormatter.Serialize(writeStream, SceneManager.GetActiveScene().path);
                SaveData(writeStream, persistenceService);

                var encryptedStream = new MemoryStream(PersistantDataOperationFunctions.EncryptFileStream(new MemoryStream(writeStream.ToArray()), GameDataStorageConstants.AESKey,
                                                                                                          GameDataStorageConstants.AESIV));

                using (var fileStream =
                           File.Open(Application.persistentDataPath + savePath, FileMode.OpenOrCreate))
                {
                    var bytesToCopy = encryptedStream.ToArray();
                    fileStream.Write(bytesToCopy, 0, bytesToCopy.Length);

                    fileStream.Close();
                }
            }
        }