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 ports/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 Pq Pa ports/security/gnupg1 , 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