Add a check for the cryptography version before attempting to use it. (#243)
diff --git a/google/auth/crypt/_cryptography_rsa.py b/google/auth/crypt/_cryptography_rsa.py
index 153e688..87076b0 100644
--- a/google/auth/crypt/_cryptography_rsa.py
+++ b/google/auth/crypt/_cryptography_rsa.py
@@ -25,10 +25,22 @@
from cryptography.hazmat.primitives import serialization
from cryptography.hazmat.primitives.asymmetric import padding
import cryptography.x509
+import pkg_resources
from google.auth import _helpers
from google.auth.crypt import base
+_IMPORT_ERROR_MSG = (
+ 'cryptography>=1.4.0 is required to use cryptography-based RSA '
+ 'implementation.')
+
+try: # pragma: NO COVER
+ release = pkg_resources.get_distribution('cryptography').parsed_version
+ if release < pkg_resources.parse_version('1.4.0'):
+ raise ImportError(_IMPORT_ERROR_MSG)
+except pkg_resources.DistributionNotFound: # pragma: NO COVER
+ raise ImportError(_IMPORT_ERROR_MSG)
+
_CERTIFICATE_MARKER = b'-----BEGIN CERTIFICATE-----'
_BACKEND = backends.default_backend()