/// <exception cref="ArgumentNullException">fileName is null</exception>
 /// <exception cref="ArgumentException">
 /// 1. fileName is empty
 /// 2. blockLength less or equal zero
 /// </exception>
 /// <exception cref="UnauthorizedAccessDestinationFileException">Ошибка при доступе к файлу назначения.</exception>
 private IFileWriter CreateFileWriter(string fileName, IRsaFileReader reader)
 {
     try {
         return(factory.CreateFileWriter(fileName, (short)(reader.BlockLength - 1), reader.SourceFileLength));
     } catch (UnauthorizedAccessException e) {
         Stop();
         throw new UnauthorizedAccessDestinationFileException("Ошибка при доступе к файлу назначения.", e);
     }
 }
 private void SetTotalBlocks(PrivateKey key, IRsaFileReader reader)
 {
     TotalBlocks = (int)Math.Ceiling((double)(reader.SourceFileLength) / (key.N.Digit - 1));
 }