public async Task VaultItemHeadersFileWriteRead() { const string vaultName = "TestVault"; const string testFile = Preparations.TestDataPath + "data.dat"; var key = "passphrase".ApplySHA256(); using var file = Vault.Create(vaultName, key, Preparations.TestFolderPath); await file.AddFileAsync(testFile); VaultReaderWriter.WriteConfig(file, key); var paths = new VaultPaths($"{Preparations.TestFolderPath}/{vaultName}/"); var readFile = VaultReaderWriter.ReadFromConfig(paths, key); await readFile.AddFileAsync(testFile, "others"); var unused = VaultReaderWriter.ReadFromConfig(paths, key); }
public async Task DecryptingFile() { const string vaultName = "DFile"; const string testFile = Preparations.TestDataPath + "DecryptingFile.dat"; var unlockedPath = $"{Preparations.TestFolderPath}{vaultName}/Unlocked/DecryptingFile.dat"; var key = CryptoRNG.GetRandomBytes(AesSizes.Key); var originalHash = GetFileHash(testFile); // create an encrypted file { using var vault = Vault.Create(vaultName, key, Preparations.TestFolderPath); await vault.AddFileAsync(testFile); } // decrypt the file { var paths = new VaultPaths($"{Preparations.TestFolderPath}{vaultName}/"); using var vault = VaultReaderWriter.ReadFromConfig(paths, key); var status = await vault.ExtractFile(vault.UserDataFiles.First()); Assert.AreEqual(ExtractStatus.Ok, status); Assert.IsTrue(vault.UserDataFiles.First().Header.IsUnlocked); await vault.EliminateExtracted(vault.UserDataFiles.First()); Assert.IsFalse(vault.UserDataFiles.First().Header.IsUnlocked); await vault.ExtractFile(vault.UserDataFiles.First()); Assert.IsTrue(vault.UserDataFiles.First().Header.IsUnlocked); } var decryptedHash = GetFileHash(unlockedPath); Assert.AreEqual(originalHash, decryptedHash); }