Skip to content

Commit 6a9ae3a

Browse files
committed
use number to string
1 parent e3721f6 commit 6a9ae3a

2 files changed

Lines changed: 14 additions & 13 deletions

File tree

src/ecdsa/test_pyecdsa.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -475,9 +475,9 @@ def test_sigencode_der_full_r_uncompressed(self):
475475
pub1 = priv1.get_verifying_key()
476476
data = b"data"
477477
sig = priv1.sign(data, sigencode=sigencode_der_full_r, accelerate=True)
478-
r, s = sigdecode_der_full_r(sig)
478+
r, s = sigdecode_der_full_r(sig, None)
479479
point = ellipticcurve.Point.from_bytes(priv1.privkey.public_key.generator.curve(), r)
480-
sig = sigencode_der_full_r(point, s, encoding="uncompressed")
480+
sig = sigencode_der_full_r(point, s, None, encoding="uncompressed")
481481

482482
self.assertEqual(type(sig), binary_type)
483483
self.assertTrue(pub1.verify(sig, data, sigdecode=sigdecode_der_full_r, accelerate=True))
@@ -487,12 +487,12 @@ def test_sigencode_der_full_r_compressed(self):
487487
pub1 = priv1.get_verifying_key()
488488
data = b"data"
489489
sig = priv1.sign(data, sigencode=sigencode_der_full_r, accelerate=True)
490-
r, s = sigdecode_der_full_r(sig)
490+
r, s = sigdecode_der_full_r(sig, None)
491491
point = ellipticcurve.Point.from_bytes(priv1.privkey.public_key.generator.curve(), r)
492-
sig = sigencode_der_full_r(point, s, encoding="compressed")
492+
sig = sigencode_der_full_r(point, s, None, encoding="compressed")
493493
print("print the sig length in r compressed")
494494
print(len(sig))
495-
r, s = sigdecode_der_full_r(sig)
495+
r, s = sigdecode_der_full_r(sig, None)
496496
print("right length of compressed r")
497497
print(len(r))
498498
print("right length of compressed s")
@@ -510,9 +510,10 @@ def test_sigencode_der_sig_value_with_y_boolean(self):
510510
data = b"data"
511511
sig = priv1.sign(data, sigencode=sigencode_der_sig_value_y_boolean,
512512
accelerate=True)
513+
order = priv1.privkey.public_key.generator.order()
513514
print("print the sig length in y boolean")
514515
print(len(sig))
515-
r, s = sigdecode_der_ecdsa_sig_value(sig)
516+
r, s = sigdecode_der_ecdsa_sig_value(sig, order)
516517
print("length of failing encoded y as boolean")
517518
print(len(r))
518519
print("length of s failing encoded y as boolean")

src/ecdsa/util.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,7 @@ def sigencode_string(r, s, order):
277277
return r_str + s_str
278278

279279

280-
def sigencode_der(r, s, order=None):
280+
def sigencode_der(r, s, order):
281281
"""
282282
Encode the signature into the ECDSA-Sig-Value structure using :term:`DER`.
283283
@@ -323,7 +323,7 @@ def sigencode_der_sig_value_y_boolean(r, s, order):
323323
der.encode_boolean(b))
324324

325325

326-
def sigencode_der_full_r(r, s, order=None, encoding='raw'):
326+
def sigencode_der_full_r(r, s, order, encoding='raw'):
327327
"""
328328
Encode the signature into the ECDSA-Sig-Value structure using :term:`DER`.
329329
@@ -543,7 +543,7 @@ def sigdecode_strings(rs_strings, order):
543543
return r, s
544544

545545

546-
def sigdecode_der(sig_der, order=None):
546+
def sigdecode_der(sig_der, order):
547547
"""
548548
Decoder for DER format of ECDSA signatures.
549549
@@ -576,7 +576,7 @@ def sigdecode_der(sig_der, order=None):
576576
return sigdecode_der_ecdsa_sig_value(sig_der, order)
577577

578578

579-
def sigdecode_der_full_r(sig_der, order=None):
579+
def sigdecode_der_full_r(sig_der, order):
580580
"""
581581
Decoder for DER format of ECDSA-Full-R signatures.
582582
@@ -626,7 +626,7 @@ def sigdecode_der_full_r(sig_der, order=None):
626626
return r, s
627627

628628

629-
def sigdecode_der_ecdsa_sig_value(sig_der, order=None):
629+
def sigdecode_der_ecdsa_sig_value(sig_der, order):
630630
"""
631631
Decoder for DER format of ECDSA-Sig-Value signatures.
632632
@@ -670,7 +670,7 @@ def sigdecode_der_ecdsa_sig_value(sig_der, order=None):
670670
)
671671
if optional[:1] == b"\x01":
672672
y, empty = der.remove_boolean(optional)
673-
r_octet = der.integer_to_octet_string(r)
673+
r_octet = number_to_string(r, order)
674674
print("the r_octet len")
675675
print(len(r_octet))
676676
# In point compression True is odd b"\x03", False is even b"\x02"
@@ -682,7 +682,7 @@ def sigdecode_der_ecdsa_sig_value(sig_der, order=None):
682682
print(len(r_point))
683683
elif optional[:1] == b"\x04":
684684
y, empty = der.remove_octet_string(optional)
685-
r_octet = der.integer_to_octet_string(r)
685+
r_octet = number_to_string(r, order)
686686
r_point = r_octet + y
687687
if empty != b"":
688688
raise der.UnexpectedDER(

0 commit comments

Comments
 (0)