51 broke -E logic completely, rewise it
[tfcrypt.git] / tfc_vars.c
index 498633425c722475543e0cf98533876245aabd0f..8c6a38c08e493963e9c59c9e5a4f16e8fcd65460 100644 (file)
@@ -2,7 +2,7 @@
  * tfcrypt -- high security Threefish encryption tool.
  *
  * tfcrypt is copyrighted:
- * Copyright (C) 2012-2018 Andrey Rys. All rights reserved.
+ * Copyright (C) 2012-2019 Andrey Rys. All rights reserved.
  *
  * tfcrypt is licensed to you under the terms of std. MIT/X11 license:
  *
@@ -31,8 +31,9 @@
 
 char *progname;
 int exitcode;
+pid_t progpid;
 
-tfc_byte key[TF_KEY_SIZE], ctr[TF_BLOCK_SIZE], xtskey[TF_KEY_SIZE], mackey[TF_FROM_BITS(TF_MAX_BITS)];
+tfc_byte key[TF_KEY_SIZE], ctr[TF_BLOCK_SIZE], xtskey[TF_KEY_SIZE], mackey[TF_FROM_BITS(TF_MAX_BITS)], tweak[TF_TWEAK_SIZE];
 struct skein sk;
 struct tfe_stream tfe;
 tfc_byte srcblk[TFC_BLKSIZE], dstblk[TFC_BLKSIZE], *pblk;
@@ -41,17 +42,19 @@ tfc_byte tmpdata[TFC_TMPSIZE];
 
 char *randsource = TFC_DEFAULT_RANDSOURCE;
 
-tfc_fsize iseek_blocks, iseek, oseek, maxlen = NOFSIZE;
-tfc_fsize total_processed_src, total_processed_dst;
+tfc_fsize iseek_blocks, iseek, oseek, maxlen = NOFSIZE, ftrunc_dfd = NOFSIZE;
+tfc_fsize total_processed_src, total_processed_dst, total_written_dst;
 tfc_fsize delta_processed;
 tfc_fsize genrandom_nr_bytes, genzero_nr_bytes;
+tfc_fsize rdpos = NOFSIZE;
+tfc_fsize maxkeylen = NOFSIZE, keyoffset;
 int sfd, kfd = -1, dfd = 1;
 struct stat s_stat;
 size_t blksize = TFC_BLKSIZE, xtsblocks = TFC_XTSBLOCKS;
 char pwdask[512], pwdagain[512];
 
 size_t lio, lrem, ldone, lblock;
-size_t maxkeylen = NOSIZE, ctrsz = NOSIZE;
+size_t ctrsz = NOSIZE;
 
 struct sigaction sigact;
 
@@ -60,13 +63,13 @@ size_t sksum_turns;
 int do_edcrypt = TFC_DO_ENCRYPT, do_stop, quiet, error_action;
 int counter_opt, mackey_opt, do_mac, do_outfmt = TFC_OUTFMT_B64, rawkey;
 int idx, write_flags;
-tfc_yesno catch_all_errors, password, overwrite_source, do_fsync, do_pad, do_tfcrypt1;
-tfc_yesno do_preserve_time, do_stats_in_gibs, do_statline_dynamic = YES, do_less_stats;
-tfc_yesno no_repeat, do_full_hexdump = YES, verbose, statline_was_shown;
+tfc_yesno catch_all_errors, ignore_seek_errors, password, overwrite_source, do_fsync, do_pad, do_ftrunc = TFC_NO_FTRUNC;
+tfc_yesno do_preserve_time, do_stats_in_gibs, do_statline_dynamic = YES, do_less_stats, show_pid, read_only;
+tfc_yesno no_repeat, do_full_hexdump = YES, verbose, statline_was_shown, show_secrets, show_when_done;
 char *srcfname = TFC_STDIN_NAME, *dstfname = TFC_STDOUT_NAME, *do_mac_file, *counter_file, *sksum_hashlist_file;
 char *saltf, *genkeyf, *mackeyf, *tweakf;
 char *pw_prompt, *mac_pw_prompt;
 tfc_useconds status_timer, bench_timer;
-tfc_useconds current_time, delta_time;
+tfc_useconds total_time, current_time, delta_time;
 
 struct getpasswd_state getps;