imgtool: Add rust language support to ECDSA
Generate rust code for ECDSA signatures, when requested (rather than
raising an exception)
Signed-off-by: David Brown <david.brown@linaro.org>
diff --git a/scripts/imgtool/keys.py b/scripts/imgtool/keys.py
index fddfec9..4f6e6be 100644
--- a/scripts/imgtool/keys.py
+++ b/scripts/imgtool/keys.py
@@ -115,6 +115,19 @@
print("\n};")
print("const unsigned int ecdsa_pub_key_len = {};".format(len(encoded)))
+ def emit_rust(self):
+ vk = self.key.get_verifying_key()
+ print(AUTOGEN_MESSAGE)
+ print("static ECDSA_PUB_KEY: &'static [u8] = &[", end='')
+ encoded = bytes(vk.to_der())
+ for count, b in enumerate(encoded):
+ if count % 8 == 0:
+ print("\n ", end='')
+ else:
+ print(" ", end='')
+ print("0x{:02x},".format(b), end='')
+ print("\n];")
+
def sign(self, payload):
# To make this fixed length, possibly pad with zeros.
sig = self.key.sign(payload, hashfunc=hashlib.sha256, sigencode=util.sigencode_der)