CryptLIBOpenPGP

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).

Details

ElGamal

CryptLIB_ElGamal.pas implements the encrypt and decrypt functions

ElGamal_Internal.pas implements the internal functions

ElGamal_Keys.pas implements the key structure

Arithmetics

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.

RNG

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.

MD5

CryptLIB_MD5.pas implements the message digest function (rfc1321).

MD5_Internal.pas implements internal functions and types used by CryptLIB_MD5.

Blowfish

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.

Misc

Crypt_misc.pas contains general functions.

OpenPGP

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

Download

  • CryptLIBOpenPGP_src_1_0.zip (source for version 1.0 of CryptLIBOpenPGP).
  • CryptLIB_src_2_0_1.zip (fix version 2.0.1). This version fixes Cryptlib_MD5.pas. There was a bug in the padding, causing compliance with the RFC for certain inputs (see comment for further details).
  • CryptLIB_src_2_0.zip (source for version 2.0). This version includes FGInt, but I suggest you get the latest version here.

External components

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.

History

20000731

Release of source code for version 1.0 of CryptLIBOpenPGP.

19991207

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).

19991020

Version 1.2; memory allocation rewritted (use of $define __GPC) to support Extended Pascal and Delphi's dynamic arrays

19990920

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)

19990915

First version available (v1.0). Implements Blowfish and MD5.

  • Bookmark at
  • Bookmark "CryptLIBOpenPGP" at del.icio.us
  • Bookmark "CryptLIBOpenPGP" at Digg
  • Bookmark "CryptLIBOpenPGP" at blogmarks
  • Bookmark "CryptLIBOpenPGP" at Google
  • Bookmark "CryptLIBOpenPGP" at Rojo
  • Bookmark "CryptLIBOpenPGP" at Simpy
  • Bookmark "CryptLIBOpenPGP" at Spurl
  • Bookmark "CryptLIBOpenPGP" at StumbleUpon
  • Bookmark "CryptLIBOpenPGP" at Tailrank
  • Bookmark "CryptLIBOpenPGP" at Technorati
  • Bookmark "CryptLIBOpenPGP" at Live Bookmarks
  • Bookmark "CryptLIBOpenPGP" at Memori
  • Bookmark "CryptLIBOpenPGP" at Favorites
  • Bookmark "CryptLIBOpenPGP" at Facebook
  • Bookmark "CryptLIBOpenPGP" at Twitter
  • Bookmark "CryptLIBOpenPGP" at Mister Wong
computing/legacy/cryptlibopenpgp.txt · Last modified: 2009/06/20 10:08 (external edit)
Recent changes RSS feed