imgtool: ECDSA pad signature
Until we fix the padding problem, pad the ecdsa signatures with zeros to
always be 72 bytes long. Add a 'raw_sign' method so that the unit test
can use the real signature.
Signed-off-by: David Brown <david.brown@linaro.org>
diff --git a/scripts/imgtool/keys/ecdsa.py b/scripts/imgtool/keys/ecdsa.py
index 7066e30..f541d16 100644
--- a/scripts/imgtool/keys/ecdsa.py
+++ b/scripts/imgtool/keys/ecdsa.py
@@ -89,7 +89,14 @@
with open(path, 'wb') as f:
f.write(pem)
- def sign(self, payload):
+ def raw_sign(self, payload):
+ """Return the actual signature"""
return self.key.sign(
data=payload,
signature_algorithm=ec.ECDSA(SHA256()))
+
+ def sign(self, payload):
+ # To make fixed length, pad with one or two zeros.
+ sig = self.raw_sign(payload)
+ sig += b'\000' * (self.sig_len() - len(sig))
+ return sig