Simplify check_X509.py

as pyasn1 and pyOpenSSL are required now
This commit is contained in:
André Apitzsch 2017-10-05 21:54:15 +02:00
parent 6d10a5e2cf
commit 749a01a276
3 changed files with 151 additions and 180 deletions

View File

@ -1,12 +1,9 @@
import logging import logging
log = logging.getLogger('gajim.c.check_X509') log = logging.getLogger('gajim.c.check_X509')
try:
import OpenSSL.SSL import OpenSSL.SSL
import OpenSSL.crypto import OpenSSL.crypto
ver = OpenSSL.__version__
if ver < '0.12':
raise ImportError
from pyasn1.type import univ, constraint, char, namedtype, tag from pyasn1.type import univ, constraint, char, namedtype, tag
from pyasn1.codec.der.decoder import decode from pyasn1.codec.der.decoder import decode
from gajim.common.helpers import prep, InvalidFormat from gajim.common.helpers import prep, InvalidFormat
@ -16,7 +13,6 @@ try:
oid_dnssrv = '1.3.6.1.5.5.7.8.7' oid_dnssrv = '1.3.6.1.5.5.7.8.7'
class DirectoryString(univ.Choice): class DirectoryString(univ.Choice):
componentType = namedtype.NamedTypes( componentType = namedtype.NamedTypes(
namedtype.NamedType( namedtype.NamedType(
@ -172,12 +168,4 @@ try:
if subject.commonName == domain: if subject.commonName == domain:
return True return True
return False return False
except ImportError:
log.warning('Import of PyOpenSSL or pyasn1 failed. Cannot correctly check '
'SSL certificate')
def check_certificate(cert, domain):
subject = cert.get_subject()
if subject.commonName == domain:
return True
return False

View File

@ -45,10 +45,6 @@ class FeaturesWindow:
# {name: (available_function, unix_text, windows_text)} # {name: (available_function, unix_text, windows_text)}
self.features = { self.features = {
_('SSL certificate validation'): (self.pyopenssl_available,
_('A library used to validate server certificates to ensure a secure connection.'),
_('Requires python-pyopenssl > 0.12 and pyasn1.'),
_('Requires python-pyopenssl > 0.12 and pyasn1.')),
_('Bonjour / Zeroconf'): (self.zeroconf_available, _('Bonjour / Zeroconf'): (self.zeroconf_available,
_('Serverless chatting with autodetected clients in a local network.'), _('Serverless chatting with autodetected clients in a local network.'),
_('Requires python-avahi.'), _('Requires python-avahi.'),
@ -151,19 +147,6 @@ class FeaturesWindow:
text = text + self.features[feature][2] text = text + self.features[feature][2]
self.desc_label.set_text(text) self.desc_label.set_text(text)
def pyopenssl_available(self):
try:
import OpenSSL.SSL
import OpenSSL.crypto
ver = OpenSSL.__version__
ver_l = [int(i) for i in ver.split('.')]
if ver_l < [0, 12]:
raise ImportError
import pyasn1
except Exception:
return False
return True
def zeroconf_available(self): def zeroconf_available(self):
return app.HAVE_ZEROCONF return app.HAVE_ZEROCONF

View File

@ -271,7 +271,7 @@ setup(
install_requires=[ install_requires=[
'dbus-python;sys_platform=="linux"', 'dbus-python;sys_platform=="linux"',
'nbxmpp', 'nbxmpp',
'pyOpenSSL', 'pyOpenSSL>=0.12',
'pyasn1', 'pyasn1',
], ],
) )