

                 pyTomCrypt.py (v0.18)
                 ---------------------

A ctypes Python wrapper for LibTomCrypt.

Implements:
  - public key algorithms:  RSA, DSA, ECDSA, ECDH
  - hash algorithms:
      md2, md4, md5, rmd128, rmd160, rmd256, rmd320, 
      sha1, sha224, sha256, sha384, sha512, tiger, whirlpool
  - symmetric ciphers:
      aes, rijndael, twofish, blowfish, des, rc2, des3, cast5, 
      kasumi, anubis, kseed, khazad, noekeon, rc5, rc6, xtea,
      skipjack
  - modes: ecb, cbc, ctr, cfb, ofb
  - MACs:  HMAC, OMAC, PMAC, Pelican, XCBC, F9
  - PRNGs:  fortuna, rc4, sprng, yarrow, sober128
  - libtomcrypt 1.16
  - libtommath  0.40

Not (yet?) supported:
  - symmetric cipher: safer
  - modes: lrw, f8
  - hash: chc
  - EC curves other than Tom's base set
  - DSA encrypt/decrypt
  - ASN.1/DER routines
  - EAX, OCB, CCM, GCM
  - Toms fast math

Examples of use: see contents of demos and test dirs

pyTomCrypt is experimental software and intended for educational 
purposes only.  To make your learning and experimentation less
cumbersome, pyTomCrypt is placed in the Public Domain.

Enjoy,
  
Larry Bugbee
bugbee@seanet.com
March 6, 2007


----------------------------------------------------------------


                       Installation
                       ------------

Prerequisites (compiled and installed):
  - Python 2.5 or Python 2.4 with ctypes added
  - LibTomCrypt 1.17
  - LibTomMath 0.41


Configuration
-------------

    libtommath.so                in /usr/local/lib
         |
    libtomcrypt.so               in /usr/local/lib
         |   \
         | libtomcrypt_plus.so   in /usr/local/lib
         |   /
    pyTomCrypt.py                in Python's site-packages
         |
  your Python program


LibTomMath
----------
  Follow Tom's instructions


LibTomCrypt
-----------
  Follow Tom's instructions


LibTomCrypt_plus
----------------
  make -f makefile.plus
  sudo make -f makefile.plus install

  libtomcrypt_plus.so needs to be accessible from ctypes and 
  perhaps live in /usr/lib or /usr/local/lib.  It cannot be in 
  an egg nor can it be an extension in site-packages, both of 
  which are problematic.


pyTomCrypt
----------
  sudo python setup.py install


Installed and tested on:
  - miniMac PPC, MacOSX 10.4.8, gcc 4.0.1, Python 2.4.4
  - miniMac PPC, Ubuntu 6.10, gcc 4.1.1, Python 2.4.4c1
  - AMD Athlon, Mandrivia 2006, gcc 3.4.6, Python 2.4.1

----------------------------------------------------------------
----------------------------------------------------------------
----------------------------------------------------------------
