xref: /freebsd/usr.bin/enigma/enigma.1 (revision 0640d357f29fb1c0daaaffadd0416c5981413afd)
1.\"
2.\" enigma (aka. crypt) man page written by Joerg Wunsch.
3.\"
4.\" Since enigma itself is distributed in the Public Domain, this file
5.\" is also.
6.\"
7.\" $Id$
8.\" "
9.Dd October 30, 1998
10.Os
11.Dt enigma 1
12.Sh NAME
13.Nm enigma
14.Nd very simple file encryption
15.Sh SYNOPSIS
16.Nm
17.Op Fl s
18.Op Fl k
19.Op Ar password
20.Nm crypt
21.Op Fl s
22.Op Fl k
23.Op Ar password
24.Sh DESCRIPTION
25.Nm Enigma ,
26also known as
27.Nm crypt
28is a
29.Em very
30simple encryption program, working on a
31.Dq secret-key
32basis.  It operates as a filter, i. e. it encrypts or decrypts a
33stream of data from standard input, and writes the result to standard
34output.  It automatically detects whether the input data stream is
35already encrypted, and switches into decryption mode in this case.
36.Pp
37There are several ways to provide the secret key to the program.  By
38default, the program prompts the user on the controlling terminal for
39the key, using
40.Xr getpass 3 .
41This is the only safe way of providing it.
42.Pp
43Alternatively, the key can be provided as the sole command-line
44argument
45.Ar password
46when starting the program.  Obviously, this way the key can easily be
47spotted by other users running
48.Xr ps 1 .
49As yet another alternative,
50.Nm
51can be given the option
52.Fl k ,
53and it will take the key from the environment variable
54.Ev CrYpTkEy .
55While this at a first glance seems to be more secure than the previous
56option, it actually isn't since environment variables can also be
57examined with
58.Xr ps 1 .
59Thus this option is mainly provided for compatibility with other
60implementations of
61.Nm enigma .
62.Pp
63When specifying the option
64.Fl s ,
65.Nm
66modifies the encryption engine in a way that is supposed to make it a
67little more secure, but incompatible with other implementations.
68.Pp
69.Ss Warning
70The cryptographic value of
71.Nm
72is rather small.  This program is only provided here for compatibility
73with other operating systems that also provide an implementation.  For
74real encryption, refer to
75.Xr bdes 1
76(from the DES distribution package), or
77.Xr pgp 1
78(from the ports collection).  Hoewever, restrictions for exporting,
79importing or using such tools might exist in some countries, so those
80stronger programs are not being shipped as part of the operating
81system by default.
82.Sh ENVIRONMENT
83.Bl -tag -offset indent -width "XXCrYpTkEy"
84.It Ev CrYpTkEy
85used to obtain the secret key when option
86.Fl k
87has been given
88.El
89.Sh EXAMPLES
90.Bd -literal -offset indent
91man enigma | enigma > encrypted
92Enter key: (XXX \(em key not echoed)
93.Ed
94.Pp
95This will create an encrypted form of this man page, and store it in
96the file
97.Ql encrypted .
98.Bd -literal -offset indent
99enigma XXX < encrypted
100.Ed
101.Pp
102This displays the previously created file on the terminal.
103.Sh SEE ALSO
104.Xr bdes 1 ,
105.Xr pgp 1 ,
106.Xr ps 1 ,
107.Xr getpass 3
108.Sh HISTORY
109Implementations of
110.Nm crypt
111are very common among
112.Ux
113operating systems.  This implementation has been taken from the
114.Em Cryptbreakers Workbench
115which is in the public domain.
116