Beispiel #1
0
        public static void CreateKeyfile(string filePath)
        {
            NullChecks.Strings(filePath);
            const string keyfileExtension = ".key";

            // Generate a random name if the path is a directory
            if (Directory.Exists(filePath))
            {
                string randomFileName = AnonymousRename.GenerateRandomFileName() + keyfileExtension;
                filePath = Path.Combine(filePath, randomFileName);
            }
            if (!File.Exists(filePath))
            {
                // Append .key extension if missing
                if (!filePath.EndsWith(keyfileExtension, StringComparison.InvariantCulture))
                {
                    filePath += keyfileExtension;
                }
                Keyfiles.GenerateKeyfile(filePath);
            }
            else
            {
                Console.WriteLine("Error: A file with this name already exists.");
            }
        }
Beispiel #2
0
 private static string GetEncryptedFilePath(string filePath)
 {
     if (Globals.AnonymousRename == true)
     {
         bool success = OriginalFileName.AppendOriginalFileName(filePath);
         if (success == true)
         {
             return(AnonymousRename.GetAnonymousFileName(filePath) + Constants.EncryptedExtension);
         }
     }
     return(filePath + Constants.EncryptedExtension);
 }
Beispiel #3
0
 private static void DirectoryEncryption(bool encryption, string folderPath, byte[] passwordBytes)
 {
     try
     {
         // Anonymise directory names before encryption (if enabled)
         folderPath = AnonymousRename.AnonymiseDirectories(encryption, folderPath);
         // Get all files in all directories
         string[] files = Directory.GetFiles(folderPath, "*.*", SearchOption.AllDirectories);
         // -1 for the selected directory
         Globals.TotalCount += files.Length - 1;
         foreach (string filePath in files)
         {
             CallEncryption(encryption, filePath, passwordBytes);
         }
         // Deanonymise directory names after decryption (if enabled)
         AnonymousRename.DeanonymiseDirectories(encryption, folderPath);
     }
     catch (Exception ex) when(ExceptionFilters.FileAccessExceptions(ex))
     {
         Logging.LogException(ex.ToString(), Logging.Severity.High);
         DisplayMessage.Error(folderPath, ex.GetType().Name, "Unable to get files in the directory.");
     }
 }