xref: /freebsd/usr.bin/enigma/enigma.1 (revision 389e4940069316fe667ffa263fa7d6390d0a960f)
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.\" $FreeBSD$
8.\" "
9.Dd May 8, 2018
10.Dt ENIGMA 1
11.Os
12.Sh NAME
13.Nm enigma ,
14.Nm crypt
15.Nd very simple file encryption
16.Sh SYNOPSIS
17.Nm
18.Op Fl s
19.Op Fl k
20.Op Ar password
21.Nm crypt
22.Op Fl s
23.Op Fl k
24.Op Ar password
25.Sh DESCRIPTION
26The
27.Nm
28utility, also known as
29.Nm crypt
30is a
31.Em very
32simple encryption program, working on a
33.Dq secret-key
34basis.
35It operates as a filter, i.e.,
36it encrypts or decrypts a
37stream of data from standard input, and writes the result to standard
38output.
39Since its operation is fully symmetrical, feeding the encrypted data
40stream again through the engine (using the same secret key) will
41decrypt it.
42.Pp
43There are several ways to provide the secret key to the program.
44By
45default, the program prompts the user on the controlling terminal for
46the key, using
47.Xr getpass 3 .
48This is the only safe way of providing it.
49.Pp
50Alternatively, the key can be provided as the sole command-line
51argument
52.Ar password
53when starting the program.
54Obviously, this way the key can easily be
55spotted by other users running
56.Xr ps 1 .
57As yet another alternative,
58.Nm
59can be given the option
60.Fl k ,
61and it will take the key from the environment variable
62.Ev CrYpTkEy .
63While this at a first glance seems to be more secure than the previous
64option, it actually is not since environment variables can also be
65examined with
66.Xr ps 1 .
67Thus this option is mainly provided for compatibility with other
68implementations of
69.Nm .
70.Pp
71When specifying the option
72.Fl s ,
73.Nm
74modifies the encryption engine in a way that is supposed to make it a
75little more secure, but incompatible with other implementations.
76.Pp
77.Ss Warning
78The cryptographic value of
79.Nm
80is rather small.
81This program is only provided here for compatibility
82with other operating systems that also provide an implementation
83(usually called
84.Xr crypt 1
85there).
86For real encryption, refer to
87.Xr openssl 1 ,
88or
89.Xr gpg 1 Pq Pa security/gnupg1 .
90.Sh ENVIRONMENT
91.Bl -tag -offset indent -width ".Ev CrYpTkEy"
92.It Ev CrYpTkEy
93used to obtain the secret key when option
94.Fl k
95has been given
96.El
97.Sh EXAMPLES
98.Bd -literal -offset indent
99man enigma | enigma > encrypted
100Enter key: (XXX \(em key not echoed)
101.Ed
102.Pp
103This will create an encrypted form of this man page, and store it in
104the file
105.Pa encrypted .
106.Bd -literal -offset indent
107enigma XXX < encrypted
108.Ed
109.Pp
110This displays the previously created file on the terminal.
111.Sh SEE ALSO
112.Xr gpg 1 ,
113.Xr openssl 1 ,
114.Xr ps 1 ,
115.Xr getpass 3
116.Sh HISTORY
117Implementations of
118.Nm crypt
119are very common among
120.Ux
121operating systems.
122This implementation has been taken from the
123.Em Cryptbreakers Workbench
124which is in the public domain.
125