imgtool: Add raw output option
Signed-off-by: Dávid Házi <david.hazi@arm.com>
Signed-off-by: Bence Balogh <bence.balogh@arm.com>
Change-Id: Ia7f385e5e1b0471aae7693baa54e9a385ad3ae3f
diff --git a/scripts/imgtool/keys/general.py b/scripts/imgtool/keys/general.py
index 0393a9a..45cddc6 100644
--- a/scripts/imgtool/keys/general.py
+++ b/scripts/imgtool/keys/general.py
@@ -41,6 +41,13 @@
len_format="const unsigned int {}_pub_key_len = {{}};".format(self.shortname()),
file=file)
+ def emit_raw_public(self, file=sys.stdout):
+ if file and file is not sys.stdout:
+ with open(file, 'wb') as file:
+ file.write(self.get_public_bytes())
+ else:
+ sys.stdout.buffer.write(self.get_public_bytes())
+
def emit_rust_public(self, file=sys.stdout):
self._emit(
header="static {}_PUB_KEY: &[u8] = &[".format(self.shortname().upper()),
diff --git a/scripts/imgtool/main.py b/scripts/imgtool/main.py
index 5355707..896afdd 100755
--- a/scripts/imgtool/main.py
+++ b/scripts/imgtool/main.py
@@ -61,7 +61,7 @@
valid_langs = ['c', 'rust']
-valid_encodings = ['lang-c', 'lang-rust', 'pem']
+valid_encodings = ['lang-c', 'lang-rust', 'pem', 'raw']
keygens = {
'rsa-2048': gen_rsa2048,
'rsa-3072': gen_rsa3072,
@@ -152,6 +152,8 @@
key.emit_rust_public(file=output)
elif encoding == 'pem':
key.emit_public_pem(file=output)
+ elif encoding == 'raw':
+ key.emit_raw_public(file=output)
else:
raise click.UsageError()