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
This commit is contained in:
Bence Balogh 2023-07-18 15:57:52 +02:00 committed by Dávid Vincze
parent 367aefbede
commit ed8d68aff7
2 changed files with 10 additions and 1 deletions

View File

@ -41,6 +41,13 @@ class KeyClass(object):
len_format="const unsigned int {}_pub_key_len = {{}};".format(self.shortname()), len_format="const unsigned int {}_pub_key_len = {{}};".format(self.shortname()),
file=file) 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): def emit_rust_public(self, file=sys.stdout):
self._emit( self._emit(
header="static {}_PUB_KEY: &[u8] = &[".format(self.shortname().upper()), header="static {}_PUB_KEY: &[u8] = &[".format(self.shortname().upper()),

View File

@ -61,7 +61,7 @@ def gen_x25519(keyfile, passwd):
valid_langs = ['c', 'rust'] valid_langs = ['c', 'rust']
valid_encodings = ['lang-c', 'lang-rust', 'pem'] valid_encodings = ['lang-c', 'lang-rust', 'pem', 'raw']
keygens = { keygens = {
'rsa-2048': gen_rsa2048, 'rsa-2048': gen_rsa2048,
'rsa-3072': gen_rsa3072, 'rsa-3072': gen_rsa3072,
@ -152,6 +152,8 @@ def getpub(key, encoding, lang, output):
key.emit_rust_public(file=output) key.emit_rust_public(file=output)
elif encoding == 'pem': elif encoding == 'pem':
key.emit_public_pem(file=output) key.emit_public_pem(file=output)
elif encoding == 'raw':
key.emit_raw_public(file=output)
else: else:
raise click.UsageError() raise click.UsageError()