Default to Cryptodome, fallback to PyCrypto

This commit is contained in:
Pedro Algarvio 2019-04-17 16:10:47 +01:00
parent b2b0764dd4
commit e6bc9f8e14
No known key found for this signature in database
GPG key ID: BB36BF6584A298FF

View file

@ -63,9 +63,20 @@ try:
from M2Crypto import EVP
HAS_M2 = True
except ImportError:
from Crypto.Hash import SHA256
from Crypto.Signature import PKCS1_v1_5
HAS_M2 = False
try:
from Cryptodome.Hash import SHA256
from Cryptodome.PublicKey import RSA
from Cryptodome.Signature import PKCS1_v1_5
HAS_REQUIRED_CRYPTO = True
except ImportError:
try:
from Crypto.Hash import SHA256
from Crypto.PublicKey import RSA
from Crypto.Signature import PKCS1_v1_5
HAS_REQUIRED_CRYPTO = True
except ImportError:
HAS_REQUIRED_CRYPTO = False
# Import salt libs
from salt.ext import six
@ -118,6 +129,8 @@ def __virtual__():
'''
Check for Joyent configs
'''
if HAS_REQUIRED_CRYPTO is False:
return False, 'Either PyCrypto or Cryptodome needs to be installed.'
if get_configured_provider() is False:
return False