ctr_add: replace dead with working code.
[tfcrypt.git] / tfc_error.c
index 7c001dacf0c52859b974e38e288733ff06e2cc06..cb8ee057e7f25756e22dc3e512fb4aa94d0a7a11 100644 (file)
@@ -151,6 +151,8 @@ void usage(void)
        tfc_say("convert encrypted data into ASCII format to ease transmission.");
        tfc_say("\n");
        tfc_say("  -e, -d: encrypt, decrypt (it maybe required).");
+       tfc_say("  -s <file>: load tfcrypt salt from file.");
+       tfc_say("  -s disable: disable key salting at all.");
        tfc_say("  -p: instead of using key, ask for password.");
        tfc_say("  -k: use raw (%u byte) key instead of deriving it from arbitrary data.", TFC_U(TF_KEY_SIZE));
        tfc_say("  -z: ask for key in plain C string form through password asker.");
@@ -210,12 +212,17 @@ void usage(void)
        tfc_say("    cont: print error if not quiet, then continue,");
        tfc_say("      no action to pad missing data is attempted.");
        tfc_say("      may be dangerous when working with block devices.");
-       tfc_say("    sync: print error if not quiet, then continue.");
+       tfc_say("    sync: print error if not quiet, then continue,");
        tfc_say("      pad missing data block with zeroes.");
-       tfc_say("      note that sync works only with read errors!");
+       tfc_say("    lsync: same as sync, but does not use SEEK_SET logic,");
+       tfc_say("      lsync uses only relative seek operations, and does not prequery");
+       tfc_say("      the current file position for exact offsets, which maybe unsafe.");
+       tfc_say("      For this reason, it is HIGHLY recommended to use sync instead!");
+       tfc_say("      Note that both sync and lsync work only with read errors!");
        tfc_say("  default error action is exit with printing status if not quiet.");
        tfc_say("  -E xall: turn on error actions above for all errors, not just EIO errors.");
-       tfc_say("    This must be a separate option given before usual -E how option.");
+       tfc_say("  -E xseek: ignore positioning and other seek related errors.");
+       tfc_say("    Multiple -E specifiers may be given in separate options.");
        tfc_say("  -O opts: set options (comma separated list):");
        tfc_say("    sync: request a synchronous I/O for a output,");
        tfc_say("    fsync: on each write() call a corresponding fsync(fd),");
@@ -246,6 +253,7 @@ void usage(void)
        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("    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("  -P: plain IO mode: disable encryption/decryption code at all.");
        tfc_say("\n");