mirror of
https://github.com/pentoo/pentoo-overlay
synced 2025-12-09 01:44:03 +01:00
69 lines
2.9 KiB
Diff
69 lines
2.9 KiB
Diff
--- 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()
|