[pycrypto] winrandom alternative

Gregory Taylor gtaylor at duointeractive.com
Mon Aug 16 08:59:05 CST 2010


Hello,

I'm not sure if this is the best place for something like this, but I figured I'd share a workaround and a suggestion for others to take or leave. I'm currently running a 64-bit Windows 7 machine for testing some of our codebase on Windows, and ran into a snag while installing PyCrypto (so I could use Fabric, which depends on Paramiko, which depends on PyCrypto). 

As you are probably aware of, PyCrypto tries to download/compile winrandom, which can be a problem for many that lack a compiler. As an alternative for those who can't/won't install winrandom, I put together a ctypes equivalent that doesn't require compilation like the original winrandom. This new module aims to be functionally equivalent in every way to winrandom, but accesses the Windows-specific cryptography library through ctypes rather than a compiled Python C extension module.

The PyPi page can be found at: http://pypi.python.org/pypi/winrandom-ctypes/
The Github page can be found at: http://github.com/duointeractive/winrandom-ctypes

I understand that going the ctypes route might raise the minimum Python version required (2.4 or 2.5?), so this probably isn't a one-size-fits-all solution. However, if there was anything that could be done to make it easier for a user to elect to use the ctypes version, that'd be great. Perhaps PyCrypto could check at install time whether winrandom is already installed, and skip trying to compile/re-install it (winrandom-ctypes provides winrandom) to allow a user to plug something else in (winrandom-ctypes?).

Just thought I'd throw this out here for those who might find it useful in the painful situation that they have to develop on Windows.

Greg Taylor
http://duointeractive.com
DUO Interactive, LLC


More information about the pycrypto mailing list