- FPC 5.3: https://github.com/decfpc/DelphiEncryptionCompendium
- Delphi 6.4: https://github.com/MHumm/DelphiEncryptionCompendium
- GetIt 6.3 Lite: https://getitnow.embarcadero.com/dec-delphi-encryption-compendium-lite/
for Delphi 5 - 2009
Copyright (c) 2006 Hagen Reddmann, HaReddmann [at] t-online [dot] de
Modifications (c) 2008 Arvid Winkelsdorf, digivendo GmbH, info [at] digivendo [dot] de
File: DEC_v5.2.zip
Part I is freeware shipping with the sources.
Part II (also known as DECMath) is not available as freeware and it's distribution is
only allowed for noncommercial or academical use. Please check back with the original
author regarding any commercial use. Part II is only available in the archives for
compatibility reasons. It is distributed as precompiled Delphi unit binaries
for D5, D6 and D7.
\Part_I\ | Sources of Part_I |
\Part_I\DECTest\ | Demo for Part_I, functional checks and speed tests of symmetric algorithms |
\Archive\ | contains Part_II with interface description, precompiled units for |
D5, D6, D7, some older demos and LHSZ.pas (only working up to D7) |
DECUtil.pas | Basic utilities for DEC |
DECHash.pas | Hash algorithms, TDECHash & derivates |
DECHash.inc | Include file for DECHash.pas (includes asm routines for the hash algorithms) |
DECCipher.pas | Symmetric Encryption, TDECCipher & derivates |
DECData.pas | Lookup tables for DECHash & DECCipher |
DECFmt.pas | Data conversion routines |
DECRandom.pas | Yarrow random number generator (cryptographic secure) |
ASN1.pas | some ASN1 utility functions |
CPU.pas | CPU utility function, detects CPU and CPU speed (useful for profiling) |
CRC.pas | Cyclic redundancy check, supports any CRCs in GF(2) |
TypeInfoEx.pas | Dynamically detect TypeInfo (RTTI) of a given module |
Ver.inc | Include file for compiler dependent compilation |
8 conversions:
TFormat_HEX | Hex Uppercase |
TFormat_HEXL | Hex Lowercase |
TFormat_MIME32 | MIME Base 32 |
TFormat_MIME64 | MIME Base 64 |
TFormat_PGP | PGP with PGP-Checksum |
TFormat_UU | UNIX UU Format |
TFormat_XX | UNIX XX Format |
TFormat_ESCAPE | Escaped |
26 hash algorithms:
THash_MD2 | MD2 |
THash_MD4 | MD4 |
THash_MD5 | MD5 |
THash_SHA | SHA |
THash_SHA1 | SHA 1 |
THash_SHA256 | SHA 256 bit |
THash_SHA384 | SHA 384 bit |
THash_SHA512 | SHA 512 bit |
THash_Sapphire | Sapphire |
THash_Panama | Panama |
THash_Tiger | Tiger |
THash_RipeMD128 | RIPE MD 128 bit |
THash_RipeMD160 | RIPE MD 160 bit |
THash_RipeMD256 | RIPE MD 256 bit |
THash_RipeMD320 | RIPE MD 320 bit |
THash_Haval128 | Haval 128 Bit |
THash_Haval160 | Haval 160 Bit (3 Rounds) |
THash_Haval192 | Haval 192 Bit (4 Rounds) |
THash_Haval224 | Haval 224 Bit (4 Rounds) |
THash_Haval256 | Haval 256 Bit (5 Rounds) |
THash_Whirlpool | Whirlpool |
THash_Whirlpool1 | Whirlpool 1 |
THash_Square | Square |
THash_Snefru128 | Snefru 128 Bit |
THash_Snefru256 | Snefru 256 Bit |
The hash algorithms support different types of KDFs (Key Derivation Functions) and MGFs (Mask Generation Functions).
Maximum supported data size is 2^192-1 Bits.
30 symmetric ciphers:
TCipher_Blowfish | Blowfish |
TCipher_Twofish | Twofish |
TCipher_IDEA | IDEA (attention patented!) |
TCipher_Cast256 | Cast 256 |
TCipher_Mars | Mars, IBM |
TCipher_RC4 | RC4, Rivest |
TCipher_RC6 | RC6, Rivest |
TCipher_Rijndael | Rijndael, AES Winner |
TCipher_Square | Square |
TCipher_SCOP | SCOP, fast streamcipher |
TCipher_Sapphire | Sapphire |
TCipher_1DES | any DES variant |
TCipher_2DES | |
TCipher_3DES | |
TCipher_2DDES | |
TCipher_3DDES | |
TCipher_3TDES | |
TCipher_3Way | 3 Way |
TCipher_Cast128 | Cast 128 |
TCipher_Gost | Gost, russian GOV |
TCipher_Misty | Misty |
TCipher_NewDES | NewDES, attention no DES dependencies |
TCipher_Q128 | Q128 |
TCipher_RC2 | RC2, Rivest |
TCipher_RC5 | RC5, Rivest |
TCipher_SAFER | SAFER & SAFER SK any variants |
TCipher_Shark | Shark |
TCipher_Skipjack | Skipjack |
TCipher_TEA | TEA, very small |
TCipher_TEAN | TEA new |
Symmetric ciphers support the following cipher modes:
CTSx = double CBC, with CFS8 padding of truncated final block
CBCx = Cipher Block Chainung, with CFB8 padding of truncated final block
CFB8 = 8bit Cipher Feedback mode
CFBx = CFB on Blocksize of Cipher
OFB8 = 8bit Output Feedback mode
OFBx = OFB on Blocksize bytes
CFS8 = 8Bit CFS, double CFB
CFSx = CFS on Blocksize bytes
ECBx = Electronic Code Book