Python OpenSSL Wrappers - http://www.sourceforge.net/projects/pow
=================================================================

Instalation.
------------
To install POW you will need to have OpenSSL libraries installed on you 
computer.  I have been working on Suse7.2 and with OpenSSL 0.9.6 which is
the stock version which comes with this distro.

run the following command to compile and install the module:

   root@alecto:/tmp/pow > python setup.py install

Testing
-------
To test POW, run the script called utest.py in the testing directory. The
old test script is cone and replaced by a new unitttest derived script
which is far more comprehensive.

Problems.
---------
If I run the above command on my machine I get these warnings which indicate 
the linker could not find a symbol in the source code or any of the 
libraries the source is linked against.  

././pow.c: In function `evp_cipher_factory':
././pow.c:292: warning: implicit declaration of function `EVP_rc5_32_12_16_cbc'
././pow.c:292: warning: return makes pointer from integer without a cast
././pow.c:293: warning: implicit declaration of function `EVP_rc5_32_12_16_cfb'
././pow.c:293: warning: return makes pointer from integer without a cast
././pow.c:294: warning: implicit declaration of function `EVP_rc5_32_12_16_ecb'
././pow.c:294: warning: return makes pointer from integer without a cast
././pow.c:295: warning: implicit declaration of function `EVP_rc5_32_12_16_ofb'
././pow.c:295: warning: return makes pointer from integer without a cast

The OpenSSL package which comes with Suse 7.2 does not have support for the
RC5 cipher.  The configure script which comes with OpenSSL can create a
Makefile which builds libraries without any of the ciphers so it may be
necessary to build POW without support for some ciphers.  This can be done
by issuing an extra command to setup.py.  

The first command build_ext, builds C and C++ extensions and can be used to
add directories to search for include files and libraries. For a list of
these options run the command:

   root@alecto:/tmp/pow > python setup.py --help build_ext

To fix this problem we need to add an extra #define for the C preprocessor:

   root@alecto:/tmp/pow > python setup.py build_ext -D NO_RC5_32_12_16 install

Possible defines are:

   NO_DES
   NO_RC4
   NO_IDEA
   NO_RC2
   NO_BF
   NO_CAST5
   NO_RC5_32_12_16   

Extras
------
There are a couple of extra file included for completeness which I used to 
build the documentation.

POW.pdf  -- The module documentation produced direct from the doc strings.
xdoc.sh  -- This script sets up the enviroment and runs xdoc.py, jade and
            pdfjadetex.
xdoc.py  -- This script processes the doc strings to produce DocBook SGML.
xdoc.xsl -- This is the style sheet used to turn the doc strings into one
            document.
POW.dsl  -- This is the DSSSL driver file used to drive OpenJade.

Version 1.72 of the DSSSL DocBook style sheets were used, along with Pyana
to perform the XSL transformation.  

Changes
-------

0.6.1       Added support for HMAC.
