Skip to content

Commit ed63af6

Browse files
committed
detect point
1 parent 6a9ae3a commit ed63af6

5 files changed

Lines changed: 2 additions & 68 deletions

File tree

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -337,7 +337,7 @@ jobs:
337337
run: |
338338
# because tox uses pip, and pip is broken on py2.6, we need run the
339339
# tests directly on the system
340-
coverage run --branch -m pytest -s
340+
coverage run --branch -m pytest
341341
- name: Run unit tests
342342
if: ${{ matrix.tox-env }}
343343
run: tox -e ${{ matrix.tox-env }}

src/ecdsa/der.py

Lines changed: 0 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -504,44 +504,3 @@ def topem(der, name):
504504
[b64[start : start + 76] + b"\n" for start in range(0, len(b64), 76)])
505505
lines.append(("-----END %s-----\n" % name).encode())
506506
return b"".join(lines)
507-
508-
509-
def octet_string_to_integer(octet_string):
510-
"""
511-
Converts an octet string to an integer
512-
based on SECG SEC 1 v2.0, section 2.3.8.
513-
514-
:param octet_string: a bytes object representing the octet string
515-
:type octet_string: bytes
516-
517-
:return: an integer x, converted from the octet string
518-
:rtype: int
519-
"""
520-
return int.from_bytes(octet_string, "big")
521-
522-
523-
def integer_to_octet_string(integer):
524-
"""
525-
Converts an integer to an octet string
526-
527-
:param integer: integer to convert
528-
:type integer: int
529-
530-
:return: a bytes object representing an octet string
531-
:rtype: bytes
532-
"""
533-
version = sys.version_info
534-
if version[0] < 3 and version[1] < 7:
535-
# bit_length() is not present in python 2.6
536-
s = bin(integer)
537-
s = s.lstrip('-0b')
538-
int_len = len(s)
539-
else:
540-
int_len = integer.bit_length()
541-
# For large integer, it is needed to calculate a sufficient length first
542-
length = (max(int_len, 1) + 7) // 8
543-
# int.to_bytes was added at python 3.2
544-
# if version[0] < 3 or (version[0] == 3 and version[1] < 2):
545-
return bytes(
546-
(integer >> i * 8) & 0xFF for i in reversed(range(length)))
547-
# return int.to_bytes(integer, length=length, byteorder="big")

src/ecdsa/ecdsa.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ def verifies(self, hash, signature, accelerate=False):
194194
s = signature.s
195195
if s < 1 or s > n - 1:
196196
return False
197-
if accelerate:
197+
if type(r) in {bytearray, bytes, memoryview}:
198198
point = ellipticcurve.AbstractPoint.from_bytes(
199199
self.generator.curve(), r)
200200
r = point[0] % n

src/ecdsa/test_pyecdsa.py

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -490,16 +490,6 @@ def test_sigencode_der_full_r_compressed(self):
490490
r, s = sigdecode_der_full_r(sig, None)
491491
point = ellipticcurve.Point.from_bytes(priv1.privkey.public_key.generator.curve(), r)
492492
sig = sigencode_der_full_r(point, s, None, encoding="compressed")
493-
print("print the sig length in r compressed")
494-
print(len(sig))
495-
r, s = sigdecode_der_full_r(sig, None)
496-
print("right length of compressed r")
497-
print(len(r))
498-
print("right length of compressed s")
499-
s_len = bin(s)
500-
s_res = s_len.lstrip('-0b')
501-
int_len = len(s_res)
502-
print(int_len)
503493

504494
self.assertEqual(type(sig), binary_type)
505495
self.assertTrue(pub1.verify(sig, data, sigdecode=sigdecode_der_full_r, accelerate=True))
@@ -510,17 +500,6 @@ def test_sigencode_der_sig_value_with_y_boolean(self):
510500
data = b"data"
511501
sig = priv1.sign(data, sigencode=sigencode_der_sig_value_y_boolean,
512502
accelerate=True)
513-
order = priv1.privkey.public_key.generator.order()
514-
print("print the sig length in y boolean")
515-
print(len(sig))
516-
r, s = sigdecode_der_ecdsa_sig_value(sig, order)
517-
print("length of failing encoded y as boolean")
518-
print(len(r))
519-
print("length of s failing encoded y as boolean")
520-
s_len = bin(s)
521-
s_res = s_len.lstrip('-0b')
522-
int_len = len(s_res)
523-
print(int_len)
524503
self.assertEqual(type(sig), binary_type)
525504
self.assertTrue(pub1.verify(sig, data, sigdecode=sigdecode_der_ecdsa_sig_value, accelerate=True))
526505

src/ecdsa/util.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -671,15 +671,11 @@ def sigdecode_der_ecdsa_sig_value(sig_der, order):
671671
if optional[:1] == b"\x01":
672672
y, empty = der.remove_boolean(optional)
673673
r_octet = number_to_string(r, order)
674-
print("the r_octet len")
675-
print(len(r_octet))
676674
# In point compression True is odd b"\x03", False is even b"\x02"
677675
if y:
678676
r_point = b"\x03" + r_octet
679677
else:
680678
r_point = b"\x02" + r_octet
681-
print("the r_point len")
682-
print(len(r_point))
683679
elif optional[:1] == b"\x04":
684680
y, empty = der.remove_octet_string(optional)
685681
r_octet = number_to_string(r, order)

0 commit comments

Comments
 (0)