Merge branch 'ssl' into 'master'
Simplify check_X509.py See merge request !140
This commit is contained in:
commit
c57753bd3f
3 changed files with 151 additions and 180 deletions
|
@ -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
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
2
setup.py
2
setup.py
|
@ -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',
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
Loading…
Add table
Reference in a new issue