summaryrefslogtreecommitdiff
path: root/devel/py-rauth/files/patch-rauth__oauth.py
blob: 9a829f92bf2235b5cd8bd700e2d9c7485138b144 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
commit 7fb3b7bf1a1869a52cf59ee3eb607d318e97265c
Author: John W. O'Brien <john@saltant.com>
Date:   Mon Jul 27 14:56:02 2020 -0400

    Support PyCryptodome as alternative to PyCrypto

--- rauth/oauth.py.orig	2015-11-05 16:01:31 UTC
+++ rauth/oauth.py
@@ -171,7 +171,8 @@ class RsaSha1Signature(SignatureMethod):
             from Crypto.Signature import PKCS1_v1_5 as p
             self.RSA, self.SHA, self.PKCS1_v1_5 = r, s, p
         except ImportError:  # pragma: no cover
-            raise NotImplementedError('PyCrypto is required for ' + self.NAME)
+            raise NotImplementedError('PyCrypto(dome) is required for '
+                                      + self.NAME)

     def sign(self,
              consumer_secret,
@@ -208,7 +209,9 @@ class RsaSha1Signature(SignatureMethod):
         # resolve the key
         if is_basestring(consumer_secret):
             consumer_secret = self.RSA.importKey(consumer_secret)
-        if not isinstance(consumer_secret, self.RSA._RSAobj):
+        valid_cls = (getattr(self.RSA, '_RSAobj', False)
+                     or getattr(self.RSA, 'RsaKey', False))
+        if not (valid_cls and isinstance(consumer_secret, valid_cls)):
             raise ValueError('invalid consumer_secret')

         # hash the string with RSA-SHA1