xref: /freebsd/usr.bin/enigma/enigma.1 (revision 1a36faad54665288ed4eb839d2a4699ae2ead45e)
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 February 5, 2017
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 ,
88.Xr pgp 1 Pq Pa ports/security/pgp ,
89or
90.Xr gpg 1 Pq Pa ports/security/gnupg .
91However, restrictions for exporting,
92importing or using such tools might exist in some countries, so those
93stronger programs are not being shipped as part of the operating
94system by default.
95.Sh ENVIRONMENT
96.Bl -tag -offset indent -width ".Ev CrYpTkEy"
97.It Ev CrYpTkEy
98used to obtain the secret key when option
99.Fl k
100has been given
101.El
102.Sh EXAMPLES
103.Bd -literal -offset indent
104man enigma | enigma > encrypted
105Enter key: (XXX \(em key not echoed)
106.Ed
107.Pp
108This will create an encrypted form of this man page, and store it in
109the file
110.Pa encrypted .
111.Bd -literal -offset indent
112enigma XXX < encrypted
113.Ed
114.Pp
115This displays the previously created file on the terminal.
116.Sh SEE ALSO
117.Xr gpg 1 ,
118.Xr openssl 1 ,
119.Xr pgp 1 ,
120.Xr ps 1 ,
121.Xr getpass 3
122.Sh HISTORY
123Implementations of
124.Nm crypt
125are very common among
126.Ux
127operating systems.
128This implementation has been taken from the
129.Em Cryptbreakers Workbench
130which is in the public domain.
131