@@ -250,8 +250,11 @@ def _load_pkcs1_der(cls, keyfile):
250
250
251
251
"""
252
252
# pylint: disable=import-outside-toplevel
253
- from adafruit_rsa .tools .pyasn1 .codec .der import decoder
254
- from adafruit_rsa .asn1 import AsnPubKey
253
+ try :
254
+ from adafruit_rsa .tools .pyasn1 .codec .der import decoder
255
+ from adafruit_rsa .asn1 import AsnPubKey
256
+ except ImportError as err :
257
+ raise ImportError ("This functionality requires the pyasn1 library" ) from err
255
258
256
259
(priv , _ ) = decoder .decode (keyfile , asn1Spec = AsnPubKey ())
257
260
return cls (n = int (priv ["modulus" ]), e = int (priv ["publicExponent" ]))
@@ -263,8 +266,17 @@ def _save_pkcs1_der(self):
263
266
:rtype: bytes
264
267
"""
265
268
# pylint: disable=import-outside-toplevel
266
- from pyasn1 .codec .der import encoder
267
- from rsa .asn1 import AsnPubKey
269
+ try :
270
+ from pyasn1 .codec .der import encoder
271
+ except ImportError as err :
272
+ raise ImportError ("This functionality requires the library" ) from err
273
+ try :
274
+ from rsa .asn1 import AsnPubKey
275
+ except ImportError as err :
276
+ raise ImportError (
277
+ "This functionality requres the CPython rsa library, "
278
+ "not available in CircuitPython"
279
+ ) from err
268
280
269
281
# Create the ASN object
270
282
asn_key = AsnPubKey ()
@@ -328,9 +340,12 @@ def load_pkcs1_openssl_der(cls, keyfile):
328
340
329
341
"""
330
342
# pylint: disable=import-outside-toplevel
331
- from adafruit_rsa .asn1 import OpenSSLPubKey
332
- from pyasn1 .codec .der import decoder
333
- from pyasn1 .type import univ
343
+ try :
344
+ from adafruit_rsa .asn1 import OpenSSLPubKey
345
+ from pyasn1 .codec .der import decoder
346
+ from pyasn1 .type import univ
347
+ except ImportError as err :
348
+ raise ImportError ("This functionality requires the pyasn1 library" ) from err
334
349
335
350
(keyinfo , _ ) = decoder .decode (keyfile , asn1Spec = OpenSSLPubKey ())
336
351
@@ -477,9 +492,12 @@ def _load_pkcs1_der(cls, keyfile):
477
492
478
493
"""
479
494
480
- from adafruit_rsa .tools .pyasn1 .codec .der import ( # pylint: disable=import-outside-toplevel
481
- decoder ,
482
- )
495
+ try :
496
+ from adafruit_rsa .tools .pyasn1 .codec .der import ( # pylint: disable=import-outside-toplevel
497
+ decoder ,
498
+ )
499
+ except ImportError as err :
500
+ raise ImportError ("This functionality requires the pyasn1 library" ) from err
483
501
484
502
(priv , _ ) = decoder .decode (keyfile )
485
503
@@ -521,8 +539,11 @@ def _save_pkcs1_der(self):
521
539
:rtype: bytes
522
540
"""
523
541
# pylint: disable=import-outside-toplevel
524
- from pyasn1 .type import univ , namedtype
525
- from pyasn1 .codec .der import encoder
542
+ try :
543
+ from pyasn1 .type import univ , namedtype
544
+ from pyasn1 .codec .der import encoder
545
+ except ImportError as err :
546
+ raise ImportError ("This functionality requires the pyasn1 library" ) from err
526
547
527
548
class AsnPrivKey (univ .Sequence ):
528
549
"""Creates PKCS#1 DER Formatted AsnPrivKey"""
0 commit comments