Skip to content

Commit 503155f

Browse files
committed
remove usage of six.b("literal")
as a side effect the program would maybe run faster
1 parent 0d72435 commit 503155f

File tree

8 files changed

+153
-159
lines changed

8 files changed

+153
-159
lines changed

speed.py

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import six
21
import timeit
32
from ecdsa.curves import curves
43

@@ -43,9 +42,9 @@ def do(setup_statements, statement):
4342
)
4443

4544
for curve in [i.name for i in curves]:
46-
S1 = "import six; from ecdsa import SigningKey, %s" % curve
45+
S1 = "from ecdsa import SigningKey, %s" % curve
4746
S2 = "sk = SigningKey.generate(%s)" % curve
48-
S3 = "msg = six.b('msg')"
47+
S3 = "msg = b'msg'"
4948
S4 = "sig = sk.sign(msg)"
5049
S5 = "vk = sk.get_verifying_key()"
5150
S6 = "vk.precompute()"
@@ -61,7 +60,7 @@ def do(setup_statements, statement):
6160
import ecdsa
6261

6362
c = getattr(ecdsa, curve)
64-
sig = ecdsa.SigningKey.generate(c).sign(six.b("msg"))
63+
sig = ecdsa.SigningKey.generate(c).sign(b"msg")
6564
print(
6665
prnt_form.format(
6766
name=curve,

src/ecdsa/der.py

+14-14
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import base64
55
import warnings
66
from itertools import chain
7-
from six import int2byte, b, text_type
7+
from six import int2byte, text_type
88
from ._compat import compat26_str, str_idx_as_int
99

1010

@@ -20,16 +20,16 @@ def encode_integer(r):
2020
assert r >= 0 # can't support negative numbers yet
2121
h = ("%x" % r).encode()
2222
if len(h) % 2:
23-
h = b("0") + h
23+
h = b"0" + h
2424
s = binascii.unhexlify(h)
2525
num = str_idx_as_int(s, 0)
2626
if num <= 0x7F:
27-
return b("\x02") + encode_length(len(s)) + s
27+
return b"\x02" + encode_length(len(s)) + s
2828
else:
2929
# DER integers are two's complement, so if the first byte is
3030
# 0x80-0xff then we need an extra 0x00 byte to prevent it from
3131
# looking negative.
32-
return b("\x02") + encode_length(len(s) + 1) + b("\x00") + s
32+
return b"\x02" + encode_length(len(s) + 1) + b"\x00" + s
3333

3434

3535
# sentry object to check if an argument was specified (used to detect
@@ -91,11 +91,11 @@ def encode_bitstring(s, unused=_sentry):
9191
raise ValueError("unused bits must be zeros in DER")
9292
encoded_unused = int2byte(unused)
9393
len_extra = 1
94-
return b("\x03") + encode_length(len(s) + len_extra) + encoded_unused + s
94+
return b"\x03" + encode_length(len(s) + len_extra) + encoded_unused + s
9595

9696

9797
def encode_octet_string(s):
98-
return b("\x04") + encode_length(len(s)) + s
98+
return b"\x04" + encode_length(len(s)) + s
9999

100100

101101
def encode_oid(first, second, *pieces):
@@ -111,7 +111,7 @@ def encode_oid(first, second, *pieces):
111111

112112
def encode_sequence(*encoded_pieces):
113113
total_len = sum([len(p) for p in encoded_pieces])
114-
return b("\x30") + encode_length(total_len) + b("").join(encoded_pieces)
114+
return b"\x30" + encode_length(total_len) + b"".join(encoded_pieces)
115115

116116

117117
def encode_number(n):
@@ -122,7 +122,7 @@ def encode_number(n):
122122
if not b128_digits:
123123
b128_digits.append(0)
124124
b128_digits[-1] &= 0x7F
125-
return b("").join([int2byte(d) for d in b128_digits])
125+
return b"".join([int2byte(d) for d in b128_digits])
126126

127127

128128
def is_sequence(string):
@@ -254,7 +254,7 @@ def encode_length(l):
254254
return int2byte(l)
255255
s = ("%x" % l).encode()
256256
if len(s) % 2:
257-
s = b("0") + s
257+
s = b"0" + s
258258
s = binascii.unhexlify(s)
259259
llen = len(s)
260260
return int2byte(0x80 | llen) + s
@@ -389,11 +389,11 @@ def unpem(pem):
389389
if isinstance(pem, text_type): # pragma: no branch
390390
pem = pem.encode()
391391

392-
d = b("").join(
392+
d = b"".join(
393393
[
394394
l.strip()
395-
for l in pem.split(b("\n"))
396-
if l and not l.startswith(b("-----"))
395+
for l in pem.split(b"\n")
396+
if l and not l.startswith(b"-----")
397397
]
398398
)
399399
return base64.b64decode(d)
@@ -403,7 +403,7 @@ def topem(der, name):
403403
b64 = base64.b64encode(compat26_str(der))
404404
lines = [("-----BEGIN %s-----\n" % name).encode()]
405405
lines.extend(
406-
[b64[start : start + 76] + b("\n") for start in range(0, len(b64), 76)]
406+
[b64[start : start + 76] + b"\n" for start in range(0, len(b64), 76)]
407407
)
408408
lines.append(("-----END %s-----\n" % name).encode())
409-
return b("").join(lines)
409+
return b"".join(lines)

src/ecdsa/ecdsa.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@
6565
"""
6666

6767
import warnings
68-
from six import int2byte, b
68+
from six import int2byte
6969
from . import ellipticcurve
7070
from . import numbertheory
7171
from .util import bit_length
@@ -280,15 +280,15 @@ def int_to_string(x): # pragma: no cover
280280
)
281281
assert x >= 0
282282
if x == 0:
283-
return b("\0")
283+
return b"\0"
284284
result = []
285285
while x:
286286
ordinal = x & 0xFF
287287
result.append(int2byte(ordinal))
288288
x >>= 8
289289

290290
result.reverse()
291-
return b("").join(result)
291+
return b"".join(result)
292292

293293

294294
def string_to_int(s): # pragma: no cover

src/ecdsa/keys.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import binascii
66
from hashlib import sha1
77
import os
8-
from six import PY2, b
8+
from six import PY2
99
from . import ecdsa, eddsa
1010
from . import der, ssh
1111
from . import rfc6979
@@ -1044,7 +1044,7 @@ def from_der(cls, string, hashfunc=sha1, valid_curve_encodings=None):
10441044
curve = None
10451045

10461046
s, empty = der.remove_sequence(s)
1047-
if empty != b(""):
1047+
if empty != b"":
10481048
raise der.UnexpectedDER(
10491049
"trailing junk after DER privkey: %s" % binascii.hexlify(empty)
10501050
)
@@ -1115,7 +1115,7 @@ def from_der(cls, string, hashfunc=sha1, valid_curve_encodings=None):
11151115
# Unpack the ECPrivateKey to get to the key data octet string,
11161116
# and rejoin the ssleay parsing path.
11171117
s, empty = der.remove_sequence(s)
1118-
if empty != b(""):
1118+
if empty != b"":
11191119
raise der.UnexpectedDER(
11201120
"trailing junk after DER privkey: %s"
11211121
% binascii.hexlify(empty)
@@ -1155,7 +1155,7 @@ def from_der(cls, string, hashfunc=sha1, valid_curve_encodings=None):
11551155
# our from_string method likes fixed-length privkey strings
11561156
if len(privkey_str) < curve.baselen:
11571157
privkey_str = (
1158-
b("\x00") * (curve.baselen - len(privkey_str)) + privkey_str
1158+
b"\x00" * (curve.baselen - len(privkey_str)) + privkey_str
11591159
)
11601160
return cls.from_string(privkey_str, curve, hashfunc)
11611161

src/ecdsa/test_der.py

+19-20
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
except ImportError:
99
import unittest
1010
import sys
11-
from six import b
1211
import hypothesis.strategies as st
1312
from hypothesis import given, settings
1413
import pytest
@@ -33,44 +32,44 @@ class TestRemoveInteger(unittest.TestCase):
3332
# interpreted as negative, check if those errors are detected
3433
def test_non_minimal_encoding(self):
3534
with self.assertRaises(UnexpectedDER):
36-
remove_integer(b("\x02\x02\x00\x01"))
35+
remove_integer(b"\x02\x02\x00\x01")
3736

3837
def test_negative_with_high_bit_set(self):
3938
with self.assertRaises(UnexpectedDER):
40-
remove_integer(b("\x02\x01\x80"))
39+
remove_integer(b"\x02\x01\x80")
4140

4241
def test_minimal_with_high_bit_set(self):
43-
val, rem = remove_integer(b("\x02\x02\x00\x80"))
42+
val, rem = remove_integer(b"\x02\x02\x00\x80")
4443

4544
self.assertEqual(val, 0x80)
4645
self.assertEqual(rem, b"")
4746

4847
def test_two_zero_bytes_with_high_bit_set(self):
4948
with self.assertRaises(UnexpectedDER):
50-
remove_integer(b("\x02\x03\x00\x00\xff"))
49+
remove_integer(b"\x02\x03\x00\x00\xff")
5150

5251
def test_zero_length_integer(self):
5352
with self.assertRaises(UnexpectedDER):
54-
remove_integer(b("\x02\x00"))
53+
remove_integer(b"\x02\x00")
5554

5655
def test_empty_string(self):
5756
with self.assertRaises(UnexpectedDER):
58-
remove_integer(b(""))
57+
remove_integer(b"")
5958

6059
def test_encoding_of_zero(self):
61-
val, rem = remove_integer(b("\x02\x01\x00"))
60+
val, rem = remove_integer(b"\x02\x01\x00")
6261

6362
self.assertEqual(val, 0)
6463
self.assertEqual(rem, b"")
6564

6665
def test_encoding_of_127(self):
67-
val, rem = remove_integer(b("\x02\x01\x7f"))
66+
val, rem = remove_integer(b"\x02\x01\x7f")
6867

6968
self.assertEqual(val, 127)
7069
self.assertEqual(rem, b"")
7170

7271
def test_encoding_of_128(self):
73-
val, rem = remove_integer(b("\x02\x02\x00\x80"))
72+
val, rem = remove_integer(b"\x02\x02\x00\x80")
7473

7574
self.assertEqual(val, 128)
7675
self.assertEqual(rem, b"")
@@ -93,37 +92,37 @@ class TestReadLength(unittest.TestCase):
9392
# form and lengths above that encoded with minimal number of bytes
9493
# necessary
9594
def test_zero_length(self):
96-
self.assertEqual((0, 1), read_length(b("\x00")))
95+
self.assertEqual((0, 1), read_length(b"\x00"))
9796

9897
def test_two_byte_zero_length(self):
9998
with self.assertRaises(UnexpectedDER):
100-
read_length(b("\x81\x00"))
99+
read_length(b"\x81\x00")
101100

102101
def test_two_byte_small_length(self):
103102
with self.assertRaises(UnexpectedDER):
104-
read_length(b("\x81\x7f"))
103+
read_length(b"\x81\x7f")
105104

106105
def test_long_form_with_zero_length(self):
107106
with self.assertRaises(UnexpectedDER):
108-
read_length(b("\x80"))
107+
read_length(b"\x80")
109108

110109
def test_smallest_two_byte_length(self):
111-
self.assertEqual((128, 2), read_length(b("\x81\x80")))
110+
self.assertEqual((128, 2), read_length(b"\x81\x80"))
112111

113112
def test_zero_padded_length(self):
114113
with self.assertRaises(UnexpectedDER):
115-
read_length(b("\x82\x00\x80"))
114+
read_length(b"\x82\x00\x80")
116115

117116
def test_two_three_byte_length(self):
118117
self.assertEqual((256, 3), read_length(b"\x82\x01\x00"))
119118

120119
def test_empty_string(self):
121120
with self.assertRaises(UnexpectedDER):
122-
read_length(b(""))
121+
read_length(b"")
123122

124123
def test_length_overflow(self):
125124
with self.assertRaises(UnexpectedDER):
126-
read_length(b("\x83\x01\x00"))
125+
read_length(b"\x83\x01\x00")
127126

128127

129128
class TestEncodeBitstring(unittest.TestCase):
@@ -270,10 +269,10 @@ def test_bytearray(self):
270269
class TestEncodeOid(unittest.TestCase):
271270
def test_pub_key_oid(self):
272271
oid_ecPublicKey = encode_oid(1, 2, 840, 10045, 2, 1)
273-
self.assertEqual(hexlify(oid_ecPublicKey), b("06072a8648ce3d0201"))
272+
self.assertEqual(hexlify(oid_ecPublicKey), b"06072a8648ce3d0201")
274273

275274
def test_nist224p_oid(self):
276-
self.assertEqual(hexlify(NIST224p.encoded_oid), b("06052b81040021"))
275+
self.assertEqual(hexlify(NIST224p.encoded_oid), b"06052b81040021")
277276

278277
def test_nist256p_oid(self):
279278
self.assertEqual(

src/ecdsa/test_jacobi.py

-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import unittest
88

99
import os
10-
import sys
1110
import signal
1211
import pytest
1312
import threading

0 commit comments

Comments
 (0)