Merge pull request #736 from skeuomorf/bitlength
Move bit_length function from rsa to utils
diff --git a/cryptography/hazmat/primitives/asymmetric/rsa.py b/cryptography/hazmat/primitives/asymmetric/rsa.py
index d825404..dfb4334 100644
--- a/cryptography/hazmat/primitives/asymmetric/rsa.py
+++ b/cryptography/hazmat/primitives/asymmetric/rsa.py
@@ -13,21 +13,12 @@
from __future__ import absolute_import, division, print_function
-import sys
-
import six
from cryptography import utils
from cryptography.hazmat.primitives import interfaces
-def _bit_length(x):
- if sys.version_info >= (2, 7):
- return x.bit_length()
- else:
- return len(bin(x)) - (2 + (x <= 0))
-
-
@utils.register_interface(interfaces.RSAPublicKey)
class RSAPublicKey(object):
def __init__(self, public_exponent, modulus):
@@ -55,7 +46,7 @@
@property
def key_size(self):
- return _bit_length(self.modulus)
+ return utils.bit_length(self.modulus)
@property
def public_exponent(self):
@@ -144,7 +135,7 @@
@property
def key_size(self):
- return _bit_length(self.modulus)
+ return utils.bit_length(self.modulus)
def public_key(self):
return RSAPublicKey(self.public_exponent, self.modulus)
diff --git a/cryptography/utils.py b/cryptography/utils.py
index e697d51..eac833b 100644
--- a/cryptography/utils.py
+++ b/cryptography/utils.py
@@ -13,9 +13,18 @@
from __future__ import absolute_import, division, print_function
+import sys
+
def register_interface(iface):
def register_decorator(klass):
iface.register(klass)
return klass
return register_decorator
+
+
+def bit_length(x):
+ if sys.version_info >= (2, 7):
+ return x.bit_length()
+ else:
+ return len(bin(x)) - (2 + (x <= 0))