_baddfname:
memset(s, 0, n);
+ if (!strcmp(progname, "iotool")) {
+ do_edcrypt = TFC_DO_PLAIN;
+ password = YES;
+ ctr_mode = TFC_MODE_PLAIN;
+ }
+
opterr = 0;
while ((c = getopt(argc, argv, "L:s:aU:C:r:K:t:Pkzxc:l:qedn:vV:pwE:O:S:AmM:R:Z:WHD:")) != -1) {
switch (c) {
ctr_mode = TFC_MODE_PLAIN;
break;
case 'e':
- do_edcrypt = TFC_DO_ENCRYPT;
+ if (do_edcrypt != TFC_DO_PLAIN) do_edcrypt = TFC_DO_ENCRYPT;
break;
case 'd':
- do_edcrypt = TFC_DO_DECRYPT;
+ if (do_edcrypt != TFC_DO_PLAIN) do_edcrypt = TFC_DO_DECRYPT;
break;
case 'D':
macbits = strtoul(optarg, &stoi, 10);
lrem = lblock = sizeof(tmpdata);
if (error_action == TFC_ERRACT_SYNC) rdpos = tfc_fdgetpos(mkfd);
_mkragain: lio = xread(mkfd, pblk, lrem);
- if (lio == 0) do_stop = YES;
+ if (lio == 0 && do_stop == NO) do_stop = YES;
if (lio != NOSIZE) ldone += lio;
else {
if (errno != EIO && catch_all_errors != YES)
lrem = lblock = blk_len_adj(maxlen, total_processed_src, blksize);
if (error_action == TFC_ERRACT_SYNC) rdpos = tfc_fdgetpos(sfd);
_ragain: lio = xread(sfd, pblk, lrem);
- if (lio == 0) do_stop = TFC_STOP_BEGAN;
+ if (lio == 0) do_stop = YES;
if (lio != NOSIZE) ldone += lio;
else {
if (errno != EIO && catch_all_errors != YES)
if (maxlen != NOFSIZE && total_processed_src >= maxlen) break;
}
- if (do_stop == TFC_STOP_FULL) goto _nomac;
-
errno = 0;
if (do_mac >= TFC_MAC_VRFY) {
if (!do_mac_file) {
memset(tmpdata, 0, sizeof(tmpdata));
}
-_nomac:
- if (verbose || status_timer || do_stop == TFC_STOP_FULL) print_crypt_status(0);
+ if (verbose || status_timer || do_stop == YES) print_crypt_status(0);
if (do_preserve_time) fcopy_matime(dfd, &s_stat);
xclose(sfd);