/// <summary> /// Uploads selected file. File is first encrypted after which is stored on the specified path on encrypted file system. /// </summary> /// <param name="originalFile">Original, unencrypted file.</param> /// <param name="pathOnEfs">Path on the encrypted file system where the file will be stored.</param> /// <param name="algorithmNameSignature">Name of the algorithm used for file encryption.</param> /// <param name="hashAlgorithmName">Name of the hashing algorithm used to create a file signature.</param> /// <returns>Encrypted name of the file.</returns> public string Upload(OriginalFile originalFile, string pathOnEfs, string algorithmNameSignature, string hashAlgorithmName) { CertificateCheck("You cannot import any new files."); string encryptedName; if (originalFile.FileSize > 1_900_000_000) { throw new Exception("File can't be larger than 2 GB."); } if (CanItBeStored(originalFile.FileSize)) { var encryptedFile = new EncryptedFile(originalFile.GetOriginalFileFullName(), (uint)currentUser.Id, algorithmNameSignature, hashAlgorithmName, currentUser.PublicKey, currentUser.PrivateKey); var encryptedFileRaw = encryptedFile.Encrypt(originalFile, currentUser.Id, currentUser.PrivateKey); encryptedName = encryptedFile.EncryptedName; // var userPrivateKey = currentUser.GetPrivateKey(privateKeyPath, password); if (CanItBeStored(encryptedFileRaw.Length)) { CreateFile(encryptedFileRaw, pathOnEfs + "\\" + encryptedFile.GetEncryptedFileFullName()); } else { throw new Exception("Insufficient storage available. File can't be uploaded."); } } else { throw new Exception("Insufficient storage available. File can't be uploaded."); } return(encryptedName); }
private void EncryptZip() { EncryptedFile.Encrypt(zipPath, current); }