-c: pattern fill support.
[tfcrypt.git] / tfc_error.c
index 53753674915966d88e635d8500fd723a23c9bd64..7d21be690123a6ade3bde0b9b8bcb7c45046dcfe 100644 (file)
@@ -91,7 +91,11 @@ void usage(void)
        tfc_yesno is_embedded_prog = NO;
 
        if (optopt == 'V') {
+               char shash[64];
                tfc_say("tfcrypt toolkit, version %s.", _TFCRYPT_VERSION);
+               hash_defaults(shash, sizeof(shash));
+               tfc_say("Defaults hash: %s", shash);
+               memset(shash, 0, sizeof(shash));
                xexit(0);
        }
 
@@ -161,8 +165,7 @@ void usage(void)
        tfc_say("  -z: ask for key in plain C string form through password asker.");
        tfc_say("  -x: ask for key in hex string form through password asker.");
        tfc_say("  -K <file>: generate key from keyfile or password and write it to file.");
-       tfc_say("  -T: enable tfcrypt1 old mode (useful only for old encryptions).");
-       tfc_say("  -t <file>: use tweak from file (useful only for old encryptions).");
+       tfc_say("  -t <file>: use (raw) tweak from file.");
        tfc_say("  -w: overwrite source file. If not file, ignored.");
        tfc_say("  -n TURNS: number of turns to perform in Skein function.");
        tfc_say("    Default is always defined when building tfcrypt.");
@@ -173,6 +176,11 @@ void usage(void)
        tfc_say("    head: when decrypting, read CTR from beginning of stream,");
        tfc_say("    rand: generate random CTR and write it to beginning of stream,");
        tfc_say("    zero: assume zero CTR is used, do not read from and write it to stream,");
+       tfc_say("    hexc:nr[,hexc:nr,...]: construct counter from given pattern.");
+       tfc_say("      Example: \"ff:124,08:2,80:2\" will fill counter first with 124 0xff bytes,");
+       tfc_say("      then with 2 0x08 bytes, then 2 0x80 bytes. To fill with zeroes, it is");
+       tfc_say("      simple to specify just a \"0:128\" as a pattern. Note that bytes that");
+       tfc_say("      exceed CTR space will be just dropped, and any unused bytes are set to zeroes.");
        tfc_say("    <file>: read CTR from given file (both when encrypting/decrypting).");
        tfc_say("      default is to derive CTR from user provided password or keyfile with");
        tfc_say("      a single Skein function turn over derived, %u byte raw key", TFC_U(TF_KEY_SIZE));
@@ -240,6 +248,7 @@ void usage(void)
        tfc_say("    when the whole status line width is smaller than tty width.");
        tfc_say("    statless: emit less information in status line (only processed data).");
        tfc_say("    norepeat: do not ask for any possible password confirmations.");
+       tfc_say("    showsecrets: show passwords in plaintext instead of masking them.");
        tfc_say("    prompt=str: set main password prompts to this string.");
        tfc_say("    macprompt=str: set MAC password prompts to this string.");
        tfc_say("    shorthex: with -H, do not print printable characters, dump only hex string.");
@@ -256,9 +265,11 @@ void usage(void)
        tfc_say("    Internally this number is translated into number of %u byte blocks.", TFC_U(TF_BLOCK_SIZE));
        tfc_say("    oseek=val: seek destination file/device by these val bytes.");
        tfc_say("    count=val: process only these val bytes, both input and output.");
+       tfc_say("    ftrunc=val: truncate output file to these val bytes before closing it.");
        tfc_say("    xkey=val: take only val bytes from user keyfile.");
        tfc_say("    okey=val: seek the key before reading it (usually a device).");
        tfc_say("    xctr=val: specify size in bytes of initial counter prepended or read.");
+       tfc_say("    fullkey: occupy tweak space by key space, extending key size by 256 bits.");
        tfc_say("  -P: plain IO mode: disable encryption/decryption code at all.");
        tfc_say("\n");
        tfc_say("Default is to ask for password, then encrypt stdin into stdout.");