aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/cryptography/x509/general_name.py14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/cryptography/x509/general_name.py b/src/cryptography/x509/general_name.py
index 26f389a5..42082746 100644
--- a/src/cryptography/x509/general_name.py
+++ b/src/cryptography/x509/general_name.py
@@ -9,8 +9,6 @@ import ipaddress
import warnings
from email.utils import parseaddr
-import idna
-
import six
from six.moves import urllib_parse
@@ -83,6 +81,10 @@ class RFC822Name(object):
return instance
def _idna_encode(self, value):
+ # Import idna lazily becase it allocates a decent amoutn of memory, and
+ # we're only using it in deprecated paths.
+ import idna
+
_, address = parseaddr(value)
parts = address.split(u"@")
return parts[0] + "@" + idna.encode(parts[1]).decode("ascii")
@@ -104,6 +106,10 @@ class RFC822Name(object):
def _idna_encode(value):
+ # Import idna lazily becase it allocates a decent amoutn of memory, and
+ # we're only using it in deprecated paths.
+ import idna
+
# Retain prefixes '*.' for common/alt names and '.' for name constraints
for prefix in ['*.', '.']:
if value.startswith(prefix):
@@ -187,6 +193,10 @@ class UniformResourceIdentifier(object):
return instance
def _idna_encode(self, value):
+ # Import idna lazily becase it allocates a decent amoutn of memory, and
+ # we're only using it in deprecated paths.
+ import idna
+
parsed = urllib_parse.urlparse(value)
if parsed.port:
netloc = (