CryptLIB is a two-components library (CryptLIB and CryptLIBOpenPGP).
CryptLIB is a Pascal (compiles with Delphi and GPC) library of cryptographic tools. Two example applications that uses CryptLIB and CryptLIBOpenPGP are SChatBUDDY and sfoPGP.
CryptLIB implements symmetric cryptography (Blowfish and Blowfish CBC), public key cryptography (ElGamal), one-way hash (MD5), RNG (Pascal port of ISAAC), large integer arithmetics (LargeIntegers).
CryptLIBOpenPGP implements classes and routines for handling OpenPGP messages (RFC2440).
CryptLIB and CryptLIBOpenPGP are freely available with source code. It can be freely used and distributed conformingly to the terms of the General Public Licence (GPL).
CryptLIB_ElGamal.pas implements the encrypt and decrypt functions
ElGamal_Internal.pas implements the internal functions
ElGamal_Keys.pas implements the key structure
LargeIntegers.pas is a class for large integer arthmetics. This class encapsulates FGInt and FGIntPrimeGeneration for Delphi, a fast and very well written library by Walied Othman. The original FGInt page is here.
random_isaac.pas implements a Pascal port of the ISAAC RNG by Robert Jenkins. The original page, with theory ion ISAAC can be found here.
CryptLIB_MD5.pas implements the message digest function (rfc1321).
MD5_Internal.pas implements internal functions and types used by CryptLIB_MD5.
CryptLIB_Blowfish.pas implements Blowfish's encrypt and decrypt functions.
Blowfish_Internal.pas contains the internal functions and type used by CryptLIB_Blowfish.
Blowfish_test.pas implements the standard Blowfish test function with vectors from DDJ.
Crypt_misc.pas contains general functions.
CryptLIB_OpenPGP_message.pas implements OpenPGP message storage and handling
CryptLIB_OpenPGP_packet.pas implements storage and handling of message packets
CryptLIB_OpenPGP_packetTagN.pas implements storage, decoding and handling of the different message packets
CryptLIB_Radix64.pas implements encoding/decoding of Radix64
CryptLIB_OpenPGP_internal.pas groups the internal functions
CryptLIB uses FGInt and FGIntPrimeGeneration for Delphi, by Walied Othman. These very fast libraries implement the arithmetics. They can be found here in Delphi and Free Pascal versions.
CryptLIB uses a Pascal implementation of ISAAC, a RNG developped by Robert Jenkins.
Release of source code for version 1.0 of CryptLIBOpenPGP.
Version 2.0; ElGamal added, Blowfish CBC with random init. vector added, ISAAC RNG added, and LargeIntegers (uses external component: FGInt and FGIntPrimeGeneration for Delphi, by Walied Othman).
Version 1.2; memory allocation rewritted (use of $define __GPC) to support Extended Pascal and Delphi's dynamic arrays
Version 1.1; a bug was corrected in the blowfish algorithm (padding chars $0 were returned in the decrypted string) changed file: CryptLIB_Blowfish.pas (a DIFF file is available for those who don't want to download the whole source)
First version available (v1.0). Implements Blowfish and MD5.