projects
/
tfcrypt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
-c zero: assume zero counter value.
[tfcrypt.git]
/
tfcrypt.c
diff --git
a/tfcrypt.c
b/tfcrypt.c
index c8664cca99aad14cbc4cb9e84c4bb964483f5b4a..01173fb691a214f7e666fb0f48552072b4c59756 100644
(file)
--- a/
tfcrypt.c
+++ b/
tfcrypt.c
@@
-91,6
+91,8
@@
_baddfname:
counter_opt = TFC_CTR_HEAD;
else if (!strcasecmp(optarg, "rand"))
counter_opt = TFC_CTR_RAND;
counter_opt = TFC_CTR_HEAD;
else if (!strcasecmp(optarg, "rand"))
counter_opt = TFC_CTR_RAND;
+ else if (!strcasecmp(optarg, "zero"))
+ counter_opt = TFC_CTR_ZERO;
else counter_file = sksum_hashlist_file = optarg;
break;
case 'C':
else counter_file = sksum_hashlist_file = optarg;
break;
case 'C':
@@
-920,8
+922,6
@@
_xts2genkey: if (xwrite(krfd, pblk, TF_FROM_BITS(TFC_KEY_BITS)) == NOSIZE) xerro
tfc_data_to_words64(&iseek_blocks, sizeof(iseek_blocks));
tf_ctr_set(ctr, &iseek_blocks, sizeof(iseek_blocks));
tfc_data_to_words64(&iseek_blocks, sizeof(iseek_blocks));
tf_ctr_set(ctr, &iseek_blocks, sizeof(iseek_blocks));
- if (ctr_mode == TFC_MODE_STREAM) tfe_init_iv(&tfe, key, ctr);
-
switch (counter_opt) {
case TFC_CTR_SHOW:
switch (do_outfmt) {
switch (counter_opt) {
case TFC_CTR_SHOW:
switch (do_outfmt) {
@@
-931,6
+931,7
@@
_xts2genkey: if (xwrite(krfd, pblk, TF_FROM_BITS(TFC_KEY_BITS)) == NOSIZE) xerro
}
break;
case TFC_CTR_RAND: tfc_getrandom(ctr, ctrsz); break;
}
break;
case TFC_CTR_RAND: tfc_getrandom(ctr, ctrsz); break;
+ case TFC_CTR_ZERO: memset(ctr, 0, ctrsz); break;
}
_ctrskip2:
}
_ctrskip2:
@@
-1003,6
+1004,8
@@
_ctrwagain: lio = xwrite(dfd, pblk, lrem);
delta_processed += ldone;
}
delta_processed += ldone;
}
+ if (ctr_mode == TFC_MODE_STREAM) tfe_init_iv(&tfe, key, ctr);
+
errno = 0;
do_stop = NO;
while (1) {
errno = 0;
do_stop = NO;
while (1) {