aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJ08nY2019-08-21 20:48:34 +0200
committerJ08nY2019-08-21 20:48:34 +0200
commitd43c42bd9212fb9888f163c23a8fb29d15642d6c (patch)
tree3815cb8db6a1b9bd533d65194dd9cd17826d17b0
parent5ed98234f195643f94065e45a8d5d2554728b1e4 (diff)
downloadpyecsca-d43c42bd9212fb9888f163c23a8fb29d15642d6c.tar.gz
pyecsca-d43c42bd9212fb9888f163c23a8fb29d15642d6c.tar.zst
pyecsca-d43c42bd9212fb9888f163c23a8fb29d15642d6c.zip
-rw-r--r--pyecsca/ec/signature.py8
1 files changed, 4 insertions, 4 deletions
diff --git a/pyecsca/ec/signature.py b/pyecsca/ec/signature.py
index 8318c45..dbfb30d 100644
--- a/pyecsca/ec/signature.py
+++ b/pyecsca/ec/signature.py
@@ -92,8 +92,8 @@ class Signature(object):
def _do_sign(self, nonce: Mod, digest: bytes) -> SignatureResult:
z = int.from_bytes(digest, byteorder="big")
- if z.bit_length() > self.mult.group.order.bit_length():
- z >>= z.bit_length() - self.mult.group.order.bit_length()
+ if len(digest) * 8 > self.mult.group.order.bit_length():
+ z >>= len(digest) * 8 - self.mult.group.order.bit_length()
point = self.mult.multiply(int(nonce), self.mult.group.generator)
affine_point = point.to_affine() #  TODO: add to context
r = Mod(int(affine_point.x), self.mult.group.order)
@@ -121,8 +121,8 @@ class Signature(object):
def _do_verify(self, signature: SignatureResult, digest: bytes) -> bool:
z = int.from_bytes(digest, byteorder="big")
- if z.bit_length() > self.mult.group.order.bit_length():
- z >>= z.bit_length() - self.mult.group.order.bit_length()
+ if len(digest) * 8 > self.mult.group.order.bit_length():
+ z >>= len(digest) * 8 - self.mult.group.order.bit_length()
c = Mod(signature.s, self.mult.group.order).inverse()
u1 = Mod(z, self.mult.group.order) * c
u2 = Mod(signature.r, self.mult.group.order) * c