changeset 116459faef6c in /home/hg/repos/gajim

details:http://hg.gajim.org/gajim?cmd=changeset;node=116459faef6c
description: use python sha and hmac built-in modules rather than those in 
python-crypto. Fixes #5294

diffstat:

 src/common/crypto.py         |   4 ++--
 src/common/stanza_session.py |  19 ++++++++++---------
 2 files changed, 12 insertions(+), 11 deletions(-)

diffs (109 lines):

diff -r 86374d2c4cc8 -r 116459faef6c src/common/crypto.py
--- a/src/common/crypto.py      Tue Sep 29 14:52:25 2009 +0200
+++ b/src/common/crypto.py      Wed Sep 30 17:02:51 2009 +0200
@@ -22,7 +22,7 @@
 import os
 import math
 
-from Crypto.Hash import SHA256
+from hashlib import sha256
 
 # convert a large integer to a big-endian bitstring
 def encode_mpi(n):
@@ -58,7 +58,7 @@
                return 256 * decode_mpi(s[:-1]) + ord(s[-1])
 
 def sha256(string):
-       sh = SHA256.new()
+       sh = sha256()
        sh.update(string)
        return sh.digest()
 
diff -r 86374d2c4cc8 -r 116459faef6c src/common/stanza_session.py
--- a/src/common/stanza_session.py      Tue Sep 29 14:52:25 2009 +0200
+++ b/src/common/stanza_session.py      Wed Sep 30 17:02:51 2009 +0200
@@ -33,10 +33,11 @@
 import time
 import base64
 import os
+from hashlib import sha256
+from hmac import HMAC
 
 if gajim.HAVE_PYCRYPTO:
        from Crypto.Cipher import AES
-       from Crypto.Hash import HMAC, SHA256
        from Crypto.PublicKey import RSA
        from common import crypto
 
@@ -249,7 +250,7 @@
 
        def sign(self, string):
                if self.negotiated['sign_algs'] == (XmlDsig + 'rsa-sha256'):
-                       hash_ = crypto.sha256(string)
+                       hash_ = sha256(string)
                        return crypto.encode_mpi(gajim.pubkey.sign(hash_, 
'')[0])
 
        def encrypt_stanza(self, stanza):
@@ -370,7 +371,7 @@
                if (not 1 < e < (p - 1)):
                        raise NegotiationError('invalid DH value')
 
-               return crypto.sha256(crypto.encode_mpi(crypto.powmod(e, y, p)))
+               return sha256(crypto.encode_mpi(crypto.powmod(e, y, p)))
 
        def c7lize_mac_id(self, form):
                kids = form.getChildren()
@@ -434,7 +435,7 @@
                mac_o_calculated = self.hmac(self.ks_o, content)
 
                if self.negotiated['recv_pubkey']:
-                       hash_ = crypto.sha256(mac_o_calculated)
+                       hash_ = sha256(mac_o_calculated)
 
                        if not eir_pubkey.verify(hash_, signature):
                                raise NegotiationError('public key signature 
verification failed!')
@@ -582,7 +583,7 @@
 
                self.sas_algs = 'sas28x5'
                self.cipher = AES
-               self.hash_alg = SHA256
+               self.hash_alg = sha256
                self.compression = None
 
                for name in form.asDict():
@@ -826,7 +827,7 @@
                e = crypto.decode_mpi(base64.b64decode(form['dhkeys']))
                p = dh.primes[self.modp]
 
-               if crypto.sha256(crypto.encode_mpi(e)) != self.negotiated['He']:
+               if sha256(crypto.encode_mpi(e)) != self.negotiated['He']:
                        raise NegotiationError('SHA256(e) != He')
 
                k = self.get_shared_secret(e, self.y, p)
@@ -853,7 +854,7 @@
                # (we're not using one)
                oss = ''
 
-               k = crypto.sha256(k + srs + oss)
+               k = sha256(k + srs + oss)
 
                self.kc_s, self.km_s, self.ks_s = 
self.generate_responder_keys(k)
                self.kc_o, self.km_o, self.ks_o = 
self.generate_initiator_keys(k)
@@ -905,7 +906,7 @@
                                break
 
                oss = ''
-               k = crypto.sha256(self.k + srs + oss)
+               k = sha256(self.k + srs + oss)
                del self.k
 
                self.do_retained_secret(k, srs)
@@ -983,7 +984,7 @@
                                
dhs.append(base64.b64encode(crypto.encode_mpi(e)))
                                name = 'dhkeys'
                        else:
-                               He = crypto.sha256(crypto.encode_mpi(e))
+                               He = sha256(crypto.encode_mpi(e))
                                dhs.append(base64.b64encode(He))
                                name = 'dhhashes'
 
_______________________________________________
Commits mailing list
[email protected]
http://lists.gajim.org/cgi-bin/listinfo/commits

Reply via email to