MCrypt

MCrypt is a replacement for the old crypt() package and crypt(1) command, with extensions. It allows developers to use a wide range of encryption functions, without making drastic changes to their code. It allows users to encrypt files or data streams without having to be cryptographers. Above all, it allows you to have some really neat code on your machine. :)

The companion to MCrypt is Libmcrypt, which contains the actual encryption functions themselves, and provides a standardized mechanism for accessing them.


This web page is temporary, until a better one can be written.

Important Links


Functions implemented:

AlgorithmEncumberedBlock SizeKey TypeNotes
3-WayNo96Secret
ArcfourProbably notStreamSecretName is derived from "Alternative RC4". It is a mathematical clone of RC4, apparently to bypass the IP limitations of the original formulation. Arcfour is usually treated as unencumbered, and seems safe to regard as such, in general. IP interpretations at a given time or place may be different. If it is reclassed as encumbered, it will be removed from the main code.
BlowfishNo64Secret
CastNo64Secret
DESNo64Secret
EnigmaNoStreamSecret
GostNo64Secret
IdeaNo64Secret
RC2No64Secret
RC6Yes128Secret
LokiNo128Secret
MarsYes128Secret
PanamaNoStreamSecretFails Test
RijndaelNo128, 192, 256SecretAES if used in 128-bit mode
SaferNo64Secret
Safer+NoSecret
SerpentNoBlockSecret
SkipjackDoubtful64SecretExternal module. Written by NSA for Clipper chip. Origins are murky.
TwofishNo128Secret
Triple DESNo64Secret
WakeNoSecret
XTeaNo64Secret

Modes of Operation:

It should be remembered that not all modes will work with all block ciphers, either because of implementation constraints or design constraints.

Proposed extensions and modifications

Any algorithm found to be covered by IP that conficts with the GPL cannot be a part of mcryptlib as standard. I believe the previous maintainer kept such material seperate, to avoid license contamination. This will remain the case, until or unless the owners of the algorithms remove conflicting restrictions.

Open Letter to Industry

Any comments or suggestions, relating to these pages or to the project should be e-mailed to: John Smith, the current maintainer for mcrypt and mcryptlib.