Provided by: mcrypt_2.6.8-1.3ubuntu2_amd64 bug

NAME

       crypt, mcrypt, mdecrypt - encrypt or decrypt files

SYNOPSIS

       mcrypt  [  -dLFubhvrzp  ]  [-a algorithm] [-c config_file] [-m mode] [-s keysize] [-o keymode] [-k key1 key2 ...]
       [-f keyfile] [ filename ...  ]

       mdecrypt [ -LFusbhvzp ] [-a algorithm] [-c config_file] [-m mode] [-s keysize] [-o keymode] [-k key1 key2
       ...]  [-f keyfile] [ filename ...  ]

DESCRIPTION

       Mcrypt  is  a  simple  crypting  program,  a  replacement  for the old unix crypt(1).  When encrypting or
       decrypting a file, a new file is created with the extension .nc and mode 0600. The  new  file  keeps  the
       modification  date of the original.  The original file may be deleted by specifying the -u parameter.  If
       no files are specified, the standard input is encrypted to the standard output.

       Mcrypt uses all the symmetric algorithms included in libmcrypt.

       crypt is a small shell wrapper around mcrypt to emulate the old unix crypt command.  For more information
       run crypt --help !

HINTS

       By default, mcrypt , when one of these algorithms is specified, prompts something like:
        Enter passphrase: ...
        You  should  then enter a passphrase long enough (512 characters is the maximum length). Now in order to
       encrypt the file, The passphrase is transformed using the  specified  (or  the  default)  key  generation
       algorithm, and a random salt. The produced value is then used as the key, which is fed to the algorithm.

       Algorithm  Vulnerability: Most algorithms today are designed to resist in specific attacks.  None of them
       is proved not to be vulnerable to some kind of attack not as yet known.

       Compression: By compressing your data before encryption you gain both in efficiency  (faster  encryption)
       and  safety  of  your data (language redundancy is removed). A drawback is that most compression programs
       will add  specific  headers  in  the  compressed  file,  thus  making  known  plaintext  attacks  easier.
       Compression  after  encryption  is  useless  and may result to compressed files with longer size than the
       original.

       Error Recovery: There is some error recovery in mcrypt.  If bytes are removed or lost from  the  file  or
       stream  in  ECB,  CBC  and  OFB modes, are impossible to recover, although CFB mode will recover. If some
       bytes are altered then a full block of plaintext is affected in ECB mode,  two  blocks  in  CBC  and  CFB
       modes,  but only the corresponding byte in OFB mode.  Mcrypt uses a 32 bit CRC to check for errors in the
       encrypted files.

       Extra security: For the very paranoid, if mcrypt is executed with superuser priviledges it  ensures  that
       no  important  data  (keys  etc.)  are  written  to  disk, as swap etc.  Keep in mind that mcrypt was not
       designed to be a setuid program, so you shouldn't make it one.

       Do not rely on the fact that an algorithm has a large key size, try to use long passphrases  and  try  to
       make them unpredictable.

       All the block algorithms above support these modes of encryption:

       ECB:  The  Electronic  CodeBook  mode.  It is the simplest mode to use with a block cipher. Encrypts each
       block independently.

       CBC: The Cipher Block Chaining mode. It is better than  ECB  since  the  plaintext  is  XOR'ed  with  the
       previous  ciphertext.  A  random  block is placed as the first block so the same block or messages always
       encrypt to something different. (This is the default mode)

       CFB: The Cipher-Feedback Mode (in 8bit). This is a self-synchronizing stream cipher  implemented  from  a
       block cipher.

       OFB:  The  Output-Feedback  Mode  (in 8bit). This is a synchronous stream cipher implemented from a block
       cipher. It is intended for use in noisy lines, because corrupted ciphertext blocks  do  not  corrupt  the
       plaintext blocks that follow. Insecure when used to encrypt large amounts of data, so I recommend against
       using it.

       nOFB: The Output-Feedback Mode (in nbit). n Is the size  of  the  block  of  the  algorithm.  This  is  a
       synchronous stream cipher implemented from a block cipher. It is intended for use in noisy lines, because
       corrupted ciphertext blocks do not corrupt the plaintext blocks that follow.

       Encrypted files can be restored to their original form using mcrypt -d or mdecrypt

       mdecrypt takes a list of files on its command line and creates a new file for each file whose  name  ends
       with  .nc  by  removing  the  ".nc"  or  by adding ".dc" to the end of the file name if .nc is not in the
       encrypted file's name.

OPTIONS

       -F --force
              Force output on standard output or input from stdin if that is a terminal.  By default mcrypt will
              not output encrypted data to terminal, nor read encrypted data from it.

       -z --gzip
              Use  gzip  (if  it  exists  in  your system) to compress files before encryption.  If specified at
              decryption time it will decompress these files.

       -p --bzip2
              Use bzip2 (if it exists in your system) to compress files  before  encryption.   If  specified  at
              decryption time it will decompress these files.

        --openpgp-z INT
              This option will enable compression in OpenPGP (RFC2440) encrypted files.

       -d --decrypt
              Decrypt.

        --help
              Display a help screen and quit.

       -v --version
              Version. Display the version number and quit.

       -L --license
              Display the mcrypt's license and quit.

       -o --keymode MODE
              MODE  may  be  one  of  the  keymodes listed by the --list-keymodes parameter.  It actually is the
              convertion to the key before it is fed to the algorithm.  It is recommended to leave it as is,  if
              you  do  not know what it is.  However if you still want to use this option, you might want to use
              the 'hex' mode which allows you to specify the key in hex (and no convertion will by applied).

       -h --hash HASH_ALGORITHM
              HASH_ALGORITHM may be one of the algorithms listed by the  --list-hash  parameter.   This  is  the
              digest  that will be appended to the file to be encrypted, in order to detect file corruption. The
              default is the CRC32 checksum.

       -s --keysize SIZE
              SIZE is the algorithm's key size in bytes (not the size of the passphrase).  It  defaults  to  the
              maximum key supported by the algorithm. The maximum key sizes of the algorithms may be obtained by
              the --list parameter. It is safe not to touch this.

       -g --openpgp
              This option will make mcrypt to use the OpenPGP (RFC2440) file format for  encrypted  files.  This
              will make files encrypted by mcrypt accessible from any OpenPGP compliant application.

       -b --bare
              No important information like the algorithm, mode, the bit mode and the crc32 of the original file
              are written in the encrypted file.  The security lies on the algorithm not on obscurity so this is
              NOT the default. This flag must also be specified when decrypting a bare encrypted file.  When the
              bare flag is specified decryption and encryption are faster. This may be usefull when using mcrypt
              to encrypt a link or something like that.

       --flush
              Flushes the output (ciphertext or plaintext) immediately. Usefull if mcrypt is used with pipes.

       --time Prints some timing information (encryption speed etc.)

       --nodelete
              When  this  option is specified mcrypt does not delete the output file, even if decryption failed.
              This is usefull if you want to decrypt a corrupted file.

       -q --quiet
              Suppress some not critical warnings.

       -u --unlink
              Unlink (delete) the input file if the whole process of encryption/decryption succeeds. This is not
              the default in order to use an external program to remove sensitive data.

        --list
              Lists all the algorithms currently supported.

        --list-keymodes
              Lists all the key modes currently supported.

        --list-hash
              Lists all the hash algorithms currently supported.

       -r --random
              Use /dev/(s)random instead of /dev/urandom. This may need some key input or mouse move to proceed.
              If your system does not support /dev/random or /dev/urandom, a random gatherer will be used.

       -k --key KEY1 KEY2 ...
              Enter the keyword(s) via the command line. The KEY(s) is/are  then  used  as  keyword  instead  of
              prompting  for  them.  Keep in mind that someone may see the command you are executing and so your
              keyword(s).

       -c --config FILE
              Use the specified configuration file. The default is .mcryptrc in your home directory. The  format
              of the configuration file is the same as the parameters. An example file is:
               algorithm safer+
               mode cbc
               key a_very_secret_one

       -f --keyfile FILE
              Enter the keyword(s) via a file. One keyword is read per line.  The first keyword read is used for
              the first file, the second for the second file etc. If the keywords are less than the  files  then
              the  last keyword is used for the remaining. A limitation is that you cannot use the NULL (\0) and
              the Newline (\n) character in the key.  A solution to this problem is to specify  the  keyword  in
              hex mode.

       -m --mode MODE
              Mode  of  encryption and decryption. These modes are currently supported: ECB, CFB, OFB, nOFB, CBC
              and STREAM. CBC is the default. Unless the bare flag is specified there  is  no  need  to  specify
              these modes for decryption.  For stream algorithms (like WAKE) mode should be STREAM.

       -a --algorithm ALGORITHM
              The  algorithm  used to encrypt and decrypt. Unless the bare flag is specified there is no need to
              specify these for decryption.

              The algorithms currently supported are shown with the --list parameter.

EXAMPLES

       For mcrypt to be compatible with the solaris des(1), the following parameters are needed: "mcrypt -a  des
       --keymode pkdes --bare --noiv filename".

       For  mcrypt  to  be  compatible  with  the unix crypt(1), the following parameters are needed: "mcrypt -a
       enigma --keymode scrypt --bare filename".

       To encrypt a file using a stream algorithm (eg. Arcfour), the following parameters are needed: "mcrypt -a
       arcfour --mode stream filename".

ENVIRONMENT

       Mcrypt uses the following environment variables:

       MCRYPT_KEY: to specify the key

       MCRYPT_ALGO: to specify the algorithm

       MCRYPT_MODE: to specify the algorithm's mode

       MCRYPT_KEY_MODE: to specify the key mode

       You  can  use  these  instead  of  using the command line (which is insecure), but note that only one key
       should be used in MCRYPT_KEY.

SEE ALSO

       des_crypt(3)

DIAGNOSTICS

       Exit status is normally 0; if an error occurs, exit status is something other than 0.

       Usage: mcrypt [-dLFubhvrzp] [-f keyfile] [-k key1 key2 ...] [-m mode] [-o  keymode]  [-a  algorithm]  [-c
       config_file] [filename ...]

AUTHORS

       Version 2.6.0 Copyright (C) 1998,1999,2000,2001,2002 Nikos Mavroyanopoulos (nmav@gnutls.org).

       Thanks to all the people who reported problems and suggested various improvements for mcrypt; who are too
       numerous to cite here.