--- xmpp/auth.py +++ xmpp/auth.py @@ -21,11 +21,16 @@ from protocol import * from client import PlugIn -import sha,base64,random,dispatcher,re +import base64,random,dispatcher,re -import md5 -def HH(some): return md5.new(some).hexdigest() -def H(some): return md5.new(some).digest() +try: + from hashlib import md5, sha1 +except ImportError: + from md5 import new as md5 + from sha import new as sha1 + +def HH(some): return md5(some).hexdigest() +def H(some): return md5(some).digest() def C(some): return ':'.join(some) class NonSASL(PlugIn): @@ -54,15 +59,15 @@ if query.getTag('digest'): self.DEBUG("Performing digest authentication",'ok') - query.setTagData('digest',sha.new(owner.Dispatcher.Stream._document_attrs['id']+self.password).hexdigest()) + query.setTagData('digest',sha1(owner.Dispatcher.Stream._document_attrs['id']+self.password).hexdigest()) if query.getTag('password'): query.delChild('password') method='digest' elif query.getTag('token'): token=query.getTagData('token') seq=query.getTagData('sequence') self.DEBUG("Performing zero-k authentication",'ok') - hash = sha.new(sha.new(self.password).hexdigest()+token).hexdigest() - for foo in xrange(int(seq)): hash = sha.new(hash).hexdigest() + hash = sha1(sha1(self.password).hexdigest()+token).hexdigest() + for foo in xrange(int(seq)): hash = sha1(hash).hexdigest() query.setTagData('hash',hash) method='0k' else: @@ -81,7 +86,7 @@ def authComponent(self,owner): """ Authenticate component. Send handshake stanza and wait for result. Returns "ok" on success. """ self.handshake=0 - owner.send(Node(NS_COMPONENT_ACCEPT+' handshake',payload=[sha.new(owner.Dispatcher.Stream._document_attrs['id']+self.password).hexdigest()])) + owner.send(Node(NS_COMPONENT_ACCEPT+' handshake',payload=[sha1(owner.Dispatcher.Stream._document_attrs['id']+self.password).hexdigest()])) owner.RegisterHandler('handshake',self.handshakeHandler,xmlns=NS_COMPONENT_ACCEPT) while not self.handshake: self.DEBUG("waiting on handshake",'notify') --- xmpp/transports.py +++ xmpp/transports.py @@ -31,6 +31,7 @@ from simplexml import ustr from client import PlugIn from protocol import * +import warnings # determine which DNS resolution library is available HAVE_DNSPYTHON = False @@ -312,6 +313,7 @@ """ Immidiatedly switch socket to TLS mode. Used internally.""" """ Here we should switch pending_data to hint mode.""" tcpsock=self._owner.Connection + warnings.filterwarnings("ignore", "socket\.ssl.*ssl\.wrap_socket", DeprecationWarning) tcpsock._sslObj = socket.ssl(tcpsock._sock, None, None) tcpsock._sslIssuer = tcpsock._sslObj.issuer() tcpsock._sslServer = tcpsock._sslObj.server()