Exemple #1
0
        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 VaultItemWithSplitPath(UserDataHeader userDataHeader)
 {
     UserDataHeader = userDataHeader;
     Path           = userDataHeader.SecuredPlainName.PlainName;
     SplitPath      = UserDataHeader.SecuredPlainName.PlainName.Replace('\\', '/')
                      .Split('/', StringSplitOptions.RemoveEmptyEntries);
 }
Exemple #3
0
        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);
        }
        private static void WriteItemHeader(Stream fileStream, Vault underlying, UserDataHeader userDataHeader)
        {
            var itemHeaderWriter = new UserDataHeaderWriter(userDataHeader);

            itemHeaderWriter.WriteTo(fileStream, underlying.Header.MasterPassword.Password);
        }
Exemple #5
0
 public void AddFile(UserDataHeader header)
 {
     ItemHeaders.Add(new VaultItemWithSplitPath(header));
 }
Exemple #6
0
 public UserDataFile(UserDataHeader header)
 {
     Header = header;
 }