public void CreateCryptoConfigNoPrefixPath() { const string targetFile = Preparations.TestFolderPath + "CreateCryptoConfigNoPrefixPath.td"; const string mockFileName = "importantData.txt"; var key = CryptoRNG.GetRandomBytes(AesSizes.Key); var vaultFile = UserDataHeader.Create(mockFileName); var writer = new UserDataHeaderWriter(vaultFile); using (var stream = new FileStream(targetFile, FileMode.Create, FileAccess.Write)) { writer.WriteTo(stream, key); } UserDataHeader readUserDataHeader; using (var stream = new FileStream(targetFile, FileMode.Open, FileAccess.Read)) { readUserDataHeader = UserDataHeaderReader.ReadFrom(stream, key); } Assert.AreEqual(vaultFile.TargetPath, readUserDataHeader.TargetPath); Assert.AreEqual(vaultFile.TargetCipherIV, readUserDataHeader.TargetCipherIV); Assert.AreEqual(vaultFile.TargetAuthentication, readUserDataHeader.TargetAuthentication); Assert.AreEqual(vaultFile.IsUnlocked, readUserDataHeader.IsUnlocked); Assert.AreEqual(vaultFile.SecuredPlainName.PlainName, readUserDataHeader.SecuredPlainName.PlainName); }
public async Task AddFileAsync(string sourcePath, string path = "") { if (!File.Exists(sourcePath)) { throw new FileNotFoundException(Strings.Vault_AddFileAsync_File_not_found, sourcePath); } var name = Path.GetFileName(sourcePath); var newFile = new UserDataFile(UserDataHeader.Create(name, path)); if (PlainNameAlreadyExists(newFile.Header.SecuredPlainName.PlainName)) { FileAlreadyExists(); } var destinationPath = Path.Combine(EncryptedFolderPath, newFile.Header.TargetPath); await WriteDecryptedAsync(newFile, sourcePath, destinationPath); UserDataFiles.Add(newFile); }