If any one know a way to get certificate from ssl socket < 2.6 ?

Please review this at http://codereview.appspot.com/1754043/show

Affected files:
  M tryton/pysocket.py


Index: tryton/pysocket.py
===================================================================
--- a/tryton/pysocket.py
+++ b/tryton/pysocket.py
@@ -98,6 +98,7 @@
         except Exception:
             pass
         self.sock.settimeout(TIMEOUT)
+        fingerprint = None
         if self.ssl:
             if ssl:
                 self.ssl_sock = ssl.wrap_socket(self.sock,
@@ -105,17 +106,18 @@
                             ssl.CERT_REQUIRED or ssl.CERT_NONE))
             elif hasattr(socket, 'ssl'):
                 self.ssl_sock = socket.ssl(self.sock,
certfile=self.ca_certs)
-            peercert = self.ssl_sock.getpeercert(True)
+            try:
+                peercert = self.ssl_sock.getpeercert(True)
+            except Exception:
+                peercert = None
             def format_hash(value):
                 return reduce(lambda x, (i, y): x + y.upper() +
                         ((i % 2 and i + 1 < len(value)) and ':' or ''),
                         enumerate(value), '')
-            if hashlib:
+            if peercert and hashlib:
                 fingerprint =
format_hash(hashlib.sha1(peercert).hexdigest())
-            else:
+            elif peercert:
                 fingerprint = format_hash(sha1.new(peercert).hexdigest())
-        else:
-            fingerprint = None
         self.host = host
         self.hostname = hostname
         self.port = port



-- 
Cédric Krier

B2CK SPRL
Rue de Rotterdam, 4
4000 Liège
Belgium
Tel: +32 472 54 46 59
Email/Jabber: [email protected]
Website: http://www.b2ck.com/

Attachment: pgp30XCANOSee.pgp
Description: PGP signature

Reply via email to