Mcrypt Icon

This is the old page of mcrypt, which has a new maintainer and has been moved to Sourceforge. The new pages are at http://mcrypt.sourceforge.net/.


Mirrors of this site



Index:

Mcrypt: Encryption program
LibMcrypt: The encryption library used by mcrypt
Related links

Development

About the author




Mcrypt:

mcrypt is intended to be a replacement of the old unix crypt(1) under the GNU General Public License. Unix Crypt(1) was a popular(?) file encryption program in unix boxes. It was based on the enigma encryption algorithm but it was considerable trivialized. Since this was not adequate, even for individual privacy needs, I decided to create a similar program using some modern block encryption algorithms. Mcrypt also has a compatibility mode with unix crypt(1) and with solaris des(1). It supports all the algorithms and modes found in libmcrypt and it is very extendable. At the time writing this, it supports the algorithms: BLOWFISH, TWOFISH, DES, TripleDES, 3-WAY, SAFER, LOKI97, GOST, RC2, MARS, RIJNDAEL, SERPENT, CAST, ARCFOUR and WAKE.
Block algorithms are implemented in modes: CFB, CBC, CTR, ECB, OFB (8 bit and n bit, where n is the size of the algorithm's block length). For a brief description of the algorithms and the modes look at the mcrypt manpage (this may be out of date). In mcrypt it is on the user to decide which algorithm he considers best for encrypting his data.

Since mcrypt 2.6.0, the OpenPGP (RFC2440) encrypted file format is supported.

Some notes:

Keep in mind that in cryptography you shouldn't trust anything you do not know how it works or what it does. Do not trust mcrypt just because you have the source code. Please check that source code, and use it if it satisfies your security needs.

Mcrypt should work fine in all unix systems. It may work (probably with changes) in other non-unix systems. Mcrypt 2.6.x can also been ported to Win32 using the Cygwin compiler.


Here you can get mcrypt

Libmcrypt:

libmcrypt is the library which implements all the algorithms and modes found in mcrypt. It is currently under development but it seems to work pretty good.
Unlike most encryption libraries libmcrypt does not have everything (random number generators, hashes, hmac implementation, key exchange, public key encryption etc.).
Libmcrypt only implements an interface to access block and stream encryption algorithms. It's purpose was to assist in the development of mcrypt by providing a uniform interface to access several different encryption algorithms, so that the main program is independent of the encryption algorithms and the modes used.

Libmcrypt supports the algorithms:
BLOWFISH, TWOFISH, DES, TripleDES, 3-WAY, SAFER-sk64, SAFER-sk128, SAFER+, LOKI97, GOST, RC2, RC6, MARS, IDEA, RIJNDAEL-128 (AES), RIJNDAEL-192, RIJNDAEL-256, SERPENT, CAST-128 (known as CAST5), CAST-256, ARCFOUR and WAKE.
Block algorithms can be used in: CBC, ECB, CFB and OFB (8 bit and n bit, where n is the size of the algorithm's block length).

The license of libmcrypt is GNU Lesser General Public License.

For information on how to use the libmcrypt, check the manpage (it may be out of date).

Libmcrypt should compile fine in most *NIX systems with an ANSI C compiler. The new versions of libmcrypt use dynamic linking, which is not supported in all systems.
This problem is minimized by using libltdl (a part of libtool).

Note that libmcrypt has nothing to do with the crypt(3) library call.

Here you can get the library



Development:

If you like mcrypt and you'd like to participate in the development, you should subscribe to the mailing list mcrypt-dev by visiting http://lists.hellug.gr/mailman/mcrypt-dev.

Patches, bugfixes, suggestions, should be addressed to this list. Announcements of new versions and description of changes will be posted there.

The current mailing list is hosted at lists.hellug.gr, thanks to HELLUG. The previous mailing list was hosted in argeas.cs-net.gr thanks to Giannis Ioannou.

Access to the mcrypt CVS repository is available through anonymous cvs.

To access it enter the following commands:

$ cvs -d :pserver:anonymous@cvs.hellug.gr:/var/cvs/mcrypt login Password: (enter password anonymous) $ cvs -d :pserver:anonymous@cvs.hellug.gr:/var/cvs/mcrypt co mcrypt $ cvs -d :pserver:anonymous@cvs.hellug.gr:/var/cvs/mcrypt co libmcrypt $ cvs -d :pserver:anonymous@cvs.hellug.gr:/var/cvs/mcrypt co libmcrypt-nm To update your checkout, change into the mcrypt directory and execute: $ cvs update -dP

To compile the cvs, run first the buildconf script. Mcrypt-cvs needs the programs: autoconf, automake and libtool. All these programs can be found at the nearest GNU mirror. Mhash can be found at mhash.sourceforge.net.

Some documents you may find usefull:
docs/


Links:

shash: A program that produces message digests
StegoArchive: Information about Steganography and applications
Steghide software
Overwrite: Secure Delete files
SRM: Secure Deletion software
GNUPG: An OpenPGP implementation (Electronic Mail privacy)
nettle: A low level crypto library

About the author:

The author of mcrypt and libmcrypt is Nikos Mavroyanopoulos.