123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- .\" Copyright 2009 Colin Percival
- .\" All rights reserved.
- .\"
- .\" Redistribution and use in source and binary forms, with or without
- .\" modification, are permitted provided that the following conditions
- .\" are met:
- .\" 1. Redistributions of source code must retain the above copyright
- .\" notice, this list of conditions and the following disclaimer.
- .\" 2. Redistributions in binary form must reproduce the above copyright
- .\" notice, this list of conditions and the following disclaimer in the
- .\" documentation and/or other materials provided with the distribution.
- .\"
- .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- .\" SUCH DAMAGE.
- .Dd @DATE@
- .Dt SCRYPT 1
- .Os
- .Sh NAME
- .Nm scrypt
- .Nd encrypt and decrypt files.
- .Sh SYNOPSIS
- .Nm
- .Brq Cm enc | Cm dec | Cm info
- .Op Fl f
- .Op Fl M Ar maxmem
- .Op Fl m Ar maxmemfrac
- .Op Fl t Ar maxtime
- .Op Fl P
- .Ar infile
- .Op Ar outfile
- .Nm
- .Fl -version
- .Sh DESCRIPTION
- .Nm Cm enc
- encrypts
- .Ar infile
- and writes the result to
- .Ar outfile
- if specified, or the standard output otherwise.
- The user will be prompted to enter a passphrase (twice) to
- be used to generate a derived encryption key.
- .Pp
- .Nm Cm dec
- decrypts
- .Ar infile
- and writes the result to
- .Ar outfile
- if specified, or the standard output otherwise.
- The user will be prompted to enter the passphrase used at
- encryption time to generate the derived encryption key.
- .Pp
- .Nm Cm info
- provides information about the encryption parameters used for
- .Ar infile .
- .Pp
- If
- .Fl P
- is not given,
- .Nm
- reads passphrases from its controlling terminal, or failing that,
- from stdin. Prompts are only printed when
- .Nm
- is reading passphrases from some terminal. If
- .Fl P
- is given, then
- .Nm
- does not print any prompts, and reads a passphrase from stdin.
- .Sh OPTIONS
- .Bl -tag -width "-m maxmemfrac"
- .It Fl f
- Force the decryption to proceed even if it is anticipated to
- require an excessive amount of memory or CPU time.
- .It Fl M Ar maxmem
- Use at most
- .Ar maxmem
- bytes of RAM to compute the derived encryption key.
- .It Fl m Ar maxmemfrac
- Use at most the fraction
- .Ar maxmemfrac
- of the available RAM to compute the derived encryption key.
- .It Fl t Ar maxtime
- Use at most
- .Ar maxtime
- seconds of CPU time to compute the derived encryption key.
- .It Fl P
- Always read passphrase from stdin, and do so only once even
- when encrypting. This cannot be used if
- .Ar infile
- is also stdin (aka '-').
- .It Fl -version
- Print version of scrypt, and exit.
- .El
- .Pp
- In
- .Nm Cm enc ,
- the memory and CPU time limits are enforced by picking
- appropriate parameters to the
- .Nm
- key derivation function.
- In
- .Nm Cm dec ,
- the memory and CPU time limits are enforced by exiting with
- an error if decrypting the file would require too much memory
- or CPU time.
- .Sh EXIT STATUS
- The
- .Nm
- utility exits 0 on success, and >0 if an error occurs.
- .Pp
- Note that if the input encrypted file is corrupted,
- .Nm Cm dec
- may produce output prior to determining that the input
- was corrupt and exiting with a non-zero status; so
- users should direct the output to a safe location and
- check the exit status of
- .Nm
- before using the decrypted data.
- .Sh SEE ALSO
- .Rs
- .%A "Colin Percival"
- .%T "Stronger Key Derivation via Sequential Memory-Hard Functions"
- .%O "Presented at BSDCan'09"
- .%D "May 2009"
- .Re
- .Sh HISTORY
- The
- .Nm
- utility was written in May 2009 by Colin Percival as a
- demonstration of the
- .Nm
- key derivation function.
- The
- .Nm
- key derivation function was invented in March 2009 by Colin
- Percival in order to allow key files from the
- .Nm tarsnap
- backup system to be passphrase protected.
|