Menu

Tree [14586e] master /
 History

HTTPS access


File Date Author Commit
 Ciphers 2014-01-17 Graeme Geldenhuys Graeme Geldenhuys [610d65] Normalise line endings
 Docs 2014-01-17 Graeme Geldenhuys Graeme Geldenhuys [610d65] Normalise line endings
 Hashes 2014-01-17 Graeme Geldenhuys Graeme Geldenhuys [610d65] Normalise line endings
 .gitattributes 2014-01-17 Graeme Geldenhuys Graeme Geldenhuys [fa9307] Adds a git attributes file to help manage EOL s...
 .gitignore 2014-01-17 Graeme Geldenhuys Graeme Geldenhuys [36c0bb] Adds a git ignore file
 CHANGELOG.txt 2010-03-26 Graeme Geldenhuys Graeme Geldenhuys [cc0964] Changelog update and version number update for ...
 DCPciphers.lrs 2009-11-13 Graeme Geldenhuys Graeme Geldenhuys [63da55] Initial commit.
 DCPhashes.lrs 2009-11-13 Graeme Geldenhuys Graeme Geldenhuys [63da55] Initial commit.
 Readme.txt 2014-01-17 Graeme Geldenhuys Graeme Geldenhuys [f510ca] Updated the README file.
 dcp.pas 2009-11-13 Graeme Geldenhuys Graeme Geldenhuys [63da55] Initial commit.
 dcpbase64.pas 2014-01-17 Graeme Geldenhuys Graeme Geldenhuys [610d65] Normalise line endings
 dcpblockciphers.pas 2014-01-17 Graeme Geldenhuys Graeme Geldenhuys [610d65] Normalise line endings
 dcpconst.pas 2014-01-17 Graeme Geldenhuys Graeme Geldenhuys [610d65] Normalise line endings
 dcpcrypt.lpk 2010-03-26 Graeme Geldenhuys Graeme Geldenhuys [a1e559] bump the point version number to v2.0.4.1
 dcpcrypt.pas 2009-11-13 Graeme Geldenhuys Graeme Geldenhuys [63da55] Initial commit.
 dcpcrypt2.pas 2014-01-17 Graeme Geldenhuys Graeme Geldenhuys [14586e] Correctly hide the FPC compiler mode - in case ...
 dcpcrypt_laz.lpk 2010-03-26 Graeme Geldenhuys Graeme Geldenhuys [cc0964] Changelog update and version number update for ...
 dcpcrypt_laz.pas 2010-03-26 Graeme Geldenhuys Graeme Geldenhuys [0c8d49] Added missing unit maintained by Lazarus IDE.
 dcplazarus.pas 2009-11-13 Graeme Geldenhuys Graeme Geldenhuys [63da55] Initial commit.
 dcpreg.pas 2009-11-13 Graeme Geldenhuys Graeme Geldenhuys [63da55] Initial commit.

Read Me

     =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
     =   DCPcrypt Cryptographic Component Library v2.0.4.1     =
     =          Copyright (c) 1999-2003 David Barton           =
     =             http://www.cityinthesky.co.uk/              =
     =               crypto@cityinthesky.co.uk                 =
     =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=    


Introduction:

DCPcrypt is a collection of cryptographic components for the Borland
Delphi(tm), C++ Builder(tm), Kylix(tm) and the Free Pascal programming
languages. The supported versions are Delphi 4, 5, 6, 7, 2005, 
C++ Builder (3?), 4, 5, (6?) and Kylix 1 (untested), 2 and 3 (untested)
and Free Pascal v2.0.4 and later.

Thanks to Manuel C. for the modifications to make DCPcrypt work under
Delphi 2005!

The idea behind DCPcrypt is that it should be possible to "drop in"
any algorithm implementation to replace another with minimum or no
code changes. To aid in this goal all cryptographic components are
descended from one of several base classes, TDCP_cipher for encryption
algorithms and TDCP_hash for message digest algorithms.

DCPcrypt is open source software (released under the MIT license) and
as such there is no charge for inclusion in other software.

This software is OSI Certified Open Source Software.
OSI Certified is a certification mark of the Open Source Initiative.

If you maintain a website then a link to the DCPCrypt wiki page at
http://wiki.lazarus.freepascal.org/DCPcrypt would be great!



What's New:

Changes since....

  * Please see the source code repository history.

Changes since DCPcrypt v2 Beta 2 include

  *  Corrected C++ Builder compilation problem.


Changes since DCPcrypt v2 Beta 1 include

  *  Renamed source code files for hashes and ciphers to DCPxxx.pas

  *  Change the format of Cipher.InitStr so that the hash algorithm
     used to generate the key is explicitly specified. In order to
     get the same functionality as before, use TDCP_sha1.
     e.g. Cipher.InitStr('Hello World',TDCP_sha1);

  *  Block ciphers are now inherited from an intermediate component
     that implements the block size specific chaining mode encryption
     routines.

  *  Remove the internal component registration, it was more hassle
     than it was worth. If there is a demand for this to be put back
     then I might...     

  *  Added the full range of operation modes for Haval. By changing
     the defines at the top of DCPhaval.pas you can specify the
     number of passes and the output hash size.

  *  Added the Tiger hash algorithm (192bit digest).

  *  Changed the name of the file containing TDCP_ripemd160 for 
     consistency to DCPripemd160 from DCPrmd160.

  *  GOST no longer appears on the component palette pending verifying
     what the actual standard is (the code is still included however).

  *  Added the RipeMD-128 hash algorithm (128bit digest).

  *  Added the Serpent block cipher (AES finalist).

  *  Added the SHA-256,384,512 hash algorithms (256, 384, 512bit digest
     respectively).

  *  Added CTR chaining mode to all block ciphers.



Installation:

Free Pascal & Lazarus:

             Please see the following URL:
               http://wiki.lazarus.freepascal.org/DCPcrypt

Delphi:      Open the appropriate package, DCPdelphiX.dpk where X is 
             your version of Delphi (either 4, 5 or 6). Then press the
             install button.

C++ Builder: Create a new design time package and add all the .pas
             files from the DCPcrypt2.zip archive including all those
             in the Ciphers and Hashes subdirectories. Then press the
             install button.

Kylix:       Open the DCPkylix.dpk package and then press the install
             button (note: Kylix 1 users may need to create a new
             package as with C++ Builder as this is a Kylix 2 package).

You may need to add the directory containing DCPcrypt (and the Ciphers
and Hashes subdirectories) to your library search path (found under 
Environment Options).

Once installed you will find two extra pages of components on your 
component palette, namely DCPciphers and DCPhashes. You can now place 
these components onto the form of your application to start using the 
algorithms.



Usage:

See the main html documentation in the Docs subdirectory.



Contact:

I appreciate knowing what DCPcrypt is being used for and also if you 
have any queries or bug reports please email me at crypto@cityinthesky.co.uk. 



DCPcrypt is copyrighted (c) 1999-2003 David Barton.
All trademarks are property of their respective owners.