More M2Crypto issues

John Nagle nagle at animats.com
Thu Jan 18 02:41:59 EST 2007


   I've been running M2Crypto successfully using Python 2.4 on Windows 2000,
and now I'm trying to get it to work on Python 2.3.4 on Linux.

   Attempting to initialize a context results in

Traceback (most recent call last):
   File "/www/htdocs/sitetruth.com/cgi/ratingdetails.cgi", line 46, in ?
     DetailsPageBuilder.detailspage(kdbfile,ktemplatefile,url)	# check and 
display domain or URL as web page
   File "./sitetruth/DetailsPageBuilder.py", line 70, in detailspage
     sitecert = InfoSSL2.Certificate(siteinfo, kverifylocations, verbose)
   File "./sitetruth/InfoSSL2.py", line 147, in __init__
     self.ctx = createsslcontext(trustedcafile, verbose)	# Generate general SSL 
context
   File "./sitetruth/InfoSSL2.py", line 40, in createsslcontext
     ctx = SSL.Context('sslv3')							# Create context with SSL params
   File "/home/sitetruth/lib/python/M2Crypto/SSL/Context.py", line 43, in __init__
     map()[long(self.ctx)] = self
ValueError: invalid literal for long(): _480e1008_p_SSL_CTX

    which, when I look at the code and try some test cases, seems
legitimate.  The cacheing code is trying to convert a reference to an
object (a C object, in fact) into a "long".  Python 2.4 on Windows
will do that.  Python 2.3.4 on Linux converts it to a string first,
gets "_480e1008_p_SSL_CTX", and then tries to convert that to an
integer, which fails.

    M2Crypto is supposed to work with Python 2.3, so this should work.

				John Nagle



More information about the Python-list mailing list