Sources
=======
The source files have been taken from OpenBSD's libc::

    http://www.openbsd.org/cgi-bin/cvsweb/src/lib/libc/crypt/bcrypt.c
    http://www.openbsd.org/cgi-bin/cvsweb/src/lib/libc/crypt/blowfish.c
    http://www.openbsd.org/cgi-bin/cvsweb/src/include/blf.h
    http://www.openbsd.org/cgi-bin/cvsweb/src/include/pwd.h

Note that in *bcrypt.c* is included the header file *pwd.h*, which have
definitions related to passwords. For this proposal, it is only required one
constant::

    #define   _PASSWORD_LEN       128  /* max length, not counting NUL */

so it has been included directly.

The next source files would be interesting for *ARC4Random* but it uses
threading --working on OpenBSD--::

    http://www.openbsd.org/cgi-bin/cvsweb/src/lib/libc/crypt/arc4random.c
    http://www.openbsd.org/cgi-bin/cvsweb/src/sys/sys/sysctl.h
    http://www.openbsd.org/cgi-bin/cvsweb/src/lib/libc/include/thread_private.h

Changes
-------
It has included the original source files of the modified ones so can be checked
the changes made.

**You must be paranoid with the security software.**

License
-------
They are subject to a 4-term BSD license.

Versions
--------
It has been used the last versions, until now:

* *bcrypt.c* - 1.24
* *blowfish.c* - 1.18
* *blf.h* - 1.7

Building
========
* To build the *C* file from *pyx*::

    $ cython lib/bcryptor/wrap/engine.pyx

* To build the module::

    $ python setup.py build_ext -i

It could be automatically built from *setuptools* but it works only if it's used
*distutils* rather than *setuptools*:

    http://docs.cython.org/docs/source_files_and_compilation.html
